전체 글
-
NCP(Naver Cloud Platform)와 Jenkins -1) 서버 구축기술 이야기/CI&CD 2020. 10. 27. 23:11
NCP를 이용한 Jenkins 서버 구축 서버 생성 이미지 타입에서 Application 선택 후, Jenkins 이미지 체크 인증키 설정 특이 사항은 없음 ACG(방화벽) 설정 기존 ACG 설정이 있다면 이용해도 괜찮다. 이번 서버 구축에서는 필요한 주소만 추가하면서 여는 연습을 하기 위해 새로 생성 Public IP 설정 Jenkins 상태 확인 명령어 Jenkins 프로세스 기동 및 중지 service jenkins start service jenkins stop service jenkins status 상태 확인 ~> 실행 중인 것을 확인할 수 있음 웹 브라우저로 Jenkins 접속 공인IP:18080 초기 접속화면으로 위와 같은 화면을 확인할 수 있다. 초기 패스워드는 터미널에서 확인할 수 있다..
-
뮤텍스와 세마포어CS 지식/운영체제 2020. 10. 21. 19:39
뮤텍스와 세마포어 2020/08/17 - [CS 기초 지식] - 멀티 스레드의 임계 구역과 뮤텍스, 세마포어 멀티 스레드의 임계 구역과 뮤텍스, 세마포어 임계 구역과 뮤텍스, 세마포어 임계 영역 한개의 연산을 둘 이상의 쓰레드가 동시에 실행할 경우 발생할 수 있는 코드 블록 쓰레드 안에 있는 코드 블록이 임계 영역이 된다. 따라서, 문제가 발 zin0-0.tistory.com 뮤텍스 쓰레드의 동시 접근을 허용하지 않고, Mutex를 이용해서 특정 변수로 접근하는 쓰레드를 차단하면, 나머지 쓰레드는 대기줄에 기다리게하는 기법 뮤텍스를 사용한 쓰레드가 뮤텍스를 반환하면, 대기줄에 있는 순서대로 쓰레드가 뮤텍스를 생성해서 잠금 ~> 순환 뮤텍스 잠금 후에 해제를 하지 않으면, 잠금 함수는 블로킹 상태에서 빠져..
-
Deadlock & StarvationCS 지식/운영체제 2020. 10. 21. 19:38
Deadlock과 Starvation 데드락(Deadlock, 교착상태) 둘 이상의 쓰레드가 lock 획득을 기다리는데, 이 lock을 잡고있는 쓰레드도 똑같이 다른 lock을 기다리며 서로 블록상태에 놓이는 것을 의미한다. 즉 무한 대기상태에 빠지는 것을 교착상태라고 한다. 교착 상태 발생의 필요 충분 조건 상호배제 - 한번에 한개의 프로세스만 공유자원 사용 점유와 대기 - 최소 하나 자원을 점유하고 다른 프로세스에 할당되어 사용되는 자원을 추가로 점유하기 위해 대기하는 프로세스가 존재 비선점 - 다른 프로세스에 할당된 자원은 사용이 끝나기 전까지 뺏을 수 없음 환형 대기 - 공유자원과 사용하기 위해 대기하는 프로세스가 원형으로 구성되어 대기해야함 예방 기법 위의 4가지 필요충분 조건을 부정하면 된다...
-
프로세스와 스레드CS 지식/운영체제 2020. 10. 21. 19:35
프로세스와 스레드 2020/08/17 - [CS 기초 지식] - 프로세스와 스레드 프로세스와 스레드 프로세스와 스레드 프로세스 사전적 의미 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 OS에서 메모리 영역을 할당받아 실행되는 독립적인 프로그램의 인스턴스 OS로부터 시스템 자원 zin0-0.tistory.com 저번에 정리한 내용이 부족한 것 같아서 추가적으로 정리해본다. 프로세스 보조 기억장치에 기억되는 프로그램은 실행되기를 기다리는 명령어와 정적 데이터의 묶음이다. 이 프로그램의 명령어와 정적 데이터가 메모리에 적재되면 프로세스가 된다. 즉, 실행 중인 프로그램이란 의미가 된다. 다른 말로 풀면 OS에게 메모리 영역을 할당받아 실행되는 독립적인 프로그램의 인스턴스, OS로부터 시스템 자원을 할당..
-
String vs (StringBuilder vs StringBuffer) (JAVA)Java & Spring/자바 2020. 10. 20. 20:35
StringBuffer vs StringBuilder (vs String) String 불변(immutable)의 속성을 가짐 (StringBuilder와 StringBuffer는 mutable) string을 더하기 연산(+)을 하면 새로운 메모리 영역을 가리키게 변경 더해지기 전 기존 문자열은 나중에 GC에 의해 사라짐 즉, 새로운 String 인스턴스가 생성되는 것 StringBuilder vs StringBuffer 가장 큰 차이점은 동기화(Synchronized)의 유무이다. StringBuilder 성능은 StringBuffer보다 좋지만, 동기화를 지원하지 않기 때문에, 싱글 쓰레드 환경에서 활용하는 것이 좋음 StringBuffer 동기화(Synchronized)를 지원하여 멀티 쓰레드 환..
-
Final 키워드 (JAVA)Java & Spring/자바 2020. 10. 20. 20:34
final keyword class, method, 변수 앞에 final을 선언하여 각각의 특징을 갖는다. final class => 다른 클래스에서 상속 불가 final method => 다른 메소드에서 오버라이딩 불가 final variable => immutable 상수 값으로 선언 ~> 새로 할당할 수 없는 변수 finally try-catch , try-catch-resource 구문을 사용할 때, 정상 작동과 에러 발생의 경우 모두 포함해서 마무리 해야하는 작업이 있을 때, 해당하는 코드를 작성하는 코드블록 finalize() GC에 의해 호출되는 함수 ~> 절대 호출해서는 안되는 함수 Object 클래스에 정의되어 있으며, GC 발생 시점이 불분명하기 때문에 이 메소드가 실행된다는 보장은 없..
-
동기화(Synchronized)Java & Spring/자바 2020. 10. 20. 20:24
동기화 자바에서 동기화(synchronized) 구현하는 방식 두 가지 동기화(synchronized) 여러 개의 스레드가 하나의 자원을 사용할 때, 현재 데이터를 사용하고 있는 스레드를 제외한 나머지 스레드들을 데이터에 접근할 수 없도록 막는 개념 synchronized 키워드를 남발하면 프로그램 성능 저하 구현 방법 synchronized method 방법 메소드 앞에 synchronized 키워드를 붙여주면 간단하게 사용 가능 public synchronized myMethod(type param) { // ... } synchronized block 방법 파라미터에 공유할 객체를 넣어서 사용 synchronized (공유 객체) { // ... } public void exMethod() { //..
-
Annotation(어노테이션)Java & Spring/자바 2020. 10. 20. 20:09
Annotation Annotation은 본래 주석이란 뜻이지만, 현재는 주석과 달리 주석처럼 코드에 달아서 클래스에 특별한 의미를 부여하거나 기능을 주입하는 기능을 가지고 있다. 런타임 시 특정 기능을 실행하도록 정보 제공 3 종류 Built-in annotation JDK에 내장되어 있으며 @Override가 대표적인 예시 Meta annotation 어노테이션에 대한 정보를(동작 대상과 시점 결정) 나타내기 위한 어노테이션 @Target이나 @Retention과 같은게 대표 예시 Custom Annotation 개발자가 직접 만드는 어노테이션 Meta annotation을 활용해서 만들 수도 있음 스프링 프레임워크에서 주로 의존성 주입(@Autowired)과 역할 정의(@service과 같은 것)에..