1. Docker? - 어떤 문제를 해결하기 위해 만들어진 컨테이너 기반의 오픈소스 가상화 플랫폼 도커의 특징 - 도커가 설치되어 있다면 어디서든 컨테이너를 실행할 수 있음 - 오픈소스기 때문에 특정 회사나 서비스에 종속적이지 않음 - 쉽게 개발서버를 만들 수 있고 테스트 서버 생성도 간편함 컨테이너란? - 프로그램을 빌드/실행할 때 그 어떤 기기에서든 똑같은 환경을 조성할 수 있도록 도와주는 패키징 서비스 서로 다른 프로그램이지만 컨테이너라는 공통된 형태로 만들어져서 어디서든 이 컨테이너를 실행할 수 있다. 예) AWS, Google Cloud, Azure ... 이런 컨테이너는 Dockerfile을 만든 후 이미지로 저장시켜야지 컨테이너를 구동할수 있습니다. Dockerfile은 컨테이너를 어떻게 만..
Scope Function Scope Function은 객체 컨텍스트 내에서 코드 블록을 실행할 수 있게 하는 함수입니다. Lambda Expression이 있는 개체에서 Scope Function을 호출하면 임시 범위가 형성됩니다. 이 범위 내에서는 이름 없이 개체에 access할 수 있습니다. 이 Scope Function에는 let, run, with, apply, also 이렇게 5가지가 존재하는데 하나씩 살펴보도록 하겠습니다. Function selection Scope Function의 lambda expression 내부의 컨텍스트 객체는 실제 이름 대신 짧은 참조로 사용할 수 있습니다. 각 Scope Function이 컨텍스트 객체에 access 하는 두 가지 방법 중 하나를 사용합니다. ..
1. Kafka? 대용량, 대규모 메시지 데이터를 빠르게 처리하도록 개발된 메시징 플랫폼 Source Application -> Kafka로 데이터를 전송 (데이터 포맷 제한이 없음) Kafka -> arget Application로 데이터를 가져옴 목적 : Source Application 과 Target Application의 결합도를 낮추기 위함 확장성과 고가용성을 위해 설계 Producer와 Consumer는 라이브러리로 되어있어서 Application으로 구현 가능 2. Topic 데이터가 들어갈 수 있는 공간 하나의 토픽은 여러개의 파티션으로 구분 가능 1) 파티션이 한 개인 경우 2) 파티션이 여러개인 경우 (1) 키가 Null이고 기본 파티셔너 사용할 경우 -> 라운드 로빈(Round ro..
1. 조건문 (if) val number = 0 val result = if (number > 0) "양수값" else if (number 수행할 문장 } when (x) { 1 -> print("x == 1") 2 -> print("x == 2") else -> {// 블록은 자유 print("x는 1, 2가 아닙니다.") } } 만약 일치되는 조건을 한번에 여러 개 표현하려면 쉼표(,)를 이용 when (x) { 0, 1 -> print("x == 0 or x == 1") else -> print("기타") } 또한, in 연산자를 이용해 범위도 지정할 수 있습니다. when (x) { in 1....
1. Null 1 - 1. Null을 허용한 변수 검사 - 변수에 null을 허용하려면 자료형 뒤에 물음표(?) 기호를 명시해야 합니다. fun main() { var str : String? = "Hello Kotlin" str = null println("str : $str") } 1 - 2. 세이프 콜(?.)과 non-null 단정 기호(!!.)를 활용하여 null을 허용한 변수 사용 그냥 length를 사용할 경우 빨간줄이 뜨며 아래와 같이 뜰 것입니다. 데이터 타입에 ?를 쓰게 되면 세이콜이나 non-null 단정기호만 이용가능 합니다. 세이프 콜(?.) - null이 할당되어 있을 가능성이 있는 변수를 검사하여 안전하게 호출하도록 도와주는 기법 - null이 아닌 경우 그대로 실행이 되고 nu..
NHN 신입사원 교육 네 번째 회고 마지막 교육(2021/03/22 ~ 2021/03/26) 장애 신속 대응 이번 주는 장애를 신속적으로 대응하기 위한 방법들을 설치하고 알아갔습니다. nSight나 watchdog 등을 설정해서 우리가 만들어낸 프로젝트에 이상이 있는지 없는지 체크해나갔습니다. 한 번은 밤 11시쯤에 healthCheck의 오류로 인해 watchdog이 울려서 모든 운영진 분들께 알림이가 당황했습니다. 그때 노트북 옆에 있어서 바로 신속하게 처리하고 해결했습니다. 만약 실제 서비스가 이렇게 에러가 떠서 알림이 온다면... 상상만 해도 두렵습니다. 그리고 발표 준비를 하는 중에 누군가가 임의로 저희 서버에 이상한 파일을 심어놔서 디스크가 터지는 일이 있었습니다. 하지만 저희는 그것도 모르고..