본문 바로가기

공부72

[시작하세요 도커/쿠버네티스] 이미지와 컨테이너 이미지와 컨테이너 이미지와 컨테이너는 도커 엔진에서 사용하는 기본 단위 도커 이미지 가상머신으로 따지면 생성할 때 필요한 iso 파일과 유사한 개념 이미지는 여러 개의 계층으로 된 바이너리 파일로 존재하며 컨테이너 생성 시 읽기전용으로 사용된다. 도커 이미지의 이름은 기본적으로 다음 형태와 같다. [저장소 이름] / [이미지 이름] : [태그] 저장소 여기서 저장소는 이미지가 저장된 장소를 의미한다. 이를 명시하지 않은 경우 도커 기본 이미지 저장소인 Docker Hub의 공식 이미지임을 뜻한다. 따라서 별도의 이미지 저장소를 사용하는 것이 아니라면 이를 생략해도 무방하다. 이미지 이름 말 그대로 해당 이미지의 이름 이름을 통해 해당 이미지가 어떤 역할을 하는지 파악할 수 있다. 이는 저장소처럼 생략할 .. 2021. 9. 5.
[시작하세요 도커/쿠버네티스] 도커란? 도커란? 리눅스 컨테이너에 여러 기능을 추가함으로써 애플리케이션을 컨테니어로서 좀 더 쉽게 사용할 수 있게 만들어진 오픈소스 프로젝트 도커와 관련된 프로젝트로는 도커 컴포즈, 도커 허브 등이 존재하지만 여기서는 도커 엔진을 위주로 서술한다. 도커가 왜 필요할까? 기존 가상화 기술은 Host OS위에 하이퍼바이저를 띄우고 그 위에 여러 개의 Guest OS(가상머신)를 설치해 사용하던 방식 허나 시스템 자원을 가상화하며 독립된 공간을 생성하는 작업은 하이퍼바이저를 반드시 거쳐야하므로 일반 환경에 비해 성능의 손실이 발생하게 된다. 또한, 가상 머신은 결국 또 하나의 OS 전체를 사용하기 위해 그에 필요한 모든 라이브러리, 커널 등을 포함하므로 이미지의 크기가 굉장이 크기 때문에 애플리케이션 배포를 위해 가.. 2021. 8. 14.
Kafka의 파티션 Kafka에는 브로커(서버)가 있고 메시지가 전달되는 기준인 토픽이 다수 개 존재하며 한 토픽 내부에도 여러 파티션으로 나뉘어져 각각의 파티션에 메시지들이 저장되고 전달된다. 위 사진의 0이 들어있는 큐를 보면 토픽1 내부의 파티션 중 하나와 매칭이 되어 있는 것을 볼 수 있다. 이와 같이 파티션은 하나의 큐와 같은 형태로 동작하고 각 큐(파티션)은 내부의 메시지에 오프셋을 달아 메시지의 순서를 관리하고 전달한다. 그렇기 때문에 토픽 내 파티션이 많을수록 더욱 많은 메시지의 병렬처리가 가능해지기 때문에 파티션의 수는 Kafka의 병렬처리 단위라고도 말할 수 있다. 허나 Throughput(처리량)이 증가함에 따라 발생하는 Trade-off도 당연 존재한다. 1) 파일 핸들러의 증가 각 파티션 별로 담당하.. 2020. 10. 21.
Kafka는 무엇일까요 Kafka는 아파치 재단이 스칼라로 개발한 오픈 소스 메시지 브로커 프로젝트이다. 이 프로젝트는 실시간 데이터 피드를 관리하기 위해 통일된, 높은 처리량, 낮은 지연시간을 지닌 플랫폼을 제공하는 것이 목표이다. - 위키백과 Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications. - Kafka Docs 위키와 공식 문서를 종합해보았을 때 대략적으로 실시간/스트리밍 데이터를 고성능으로 처리하고.. 2020. 10. 13.
스프링 에러 : class doesn't contain matching constructor for autowiring 스프링 부트 공부 중 갑자기 나타난 이 에러 'class doesn't contain matching constructor for autowiring' 나는 예제와 똑같이 잘 따라가고 있는데 대체 왜 오류가 뜨지? 라는 생각과 함께 역시 또 버전이 바뀌면서 코드가 바뀌었는지를 확인하고 에러 메세지를 자세히 보니 'No default constructor found;' 라는 문구가 적혀있다. 바로 그냥 해당 객체의 default constructor를 만들어주니 문제 해결 어딜가나 버전 문제가 가장 무섭다 지금 공부하는 예제도 TDD 코드 작성을 JUnit4로 했는데 나는 JUnit5로 하고 있어서 assertThat이나 @Before같은 과거 유물들을 사용하기 위해선 열심히 구글링하면서 대체할 코드들을 .. 2020. 6. 19.
기사 필기 합격!! 오늘 드디어 밀리고 밀리던 기사 필기 시험을 볼 수 있었다. 면접보랴 학교 기말 준비하랴 바빠서 기사에는 신경거의 못쓰고 모의고사 위주로 돌렸는데 다행히 면접 준비하면서 CS 열심히 공부했던게 많이 도움된 것 같다!! 합격 확정은 아니지만 일단 가채점 기준으로 80/80/100/90/90이 나왔으니 심각하게 밀려쓴게 아니라면 안정적인 합격 컷... 이제 남은건 기말 시험과 프로젝트만 해치우면 된다 ㅠㅠ 2020. 6. 6.
머지 소트 퀵소트와 마찬가지로 O(nlogn)의 시간 복잡도를 가진 친구 하지만 In-place update로 구현할 경우 같은 공간 내에서 교환을 해야하기 때문에 더 많은 시간적 비용이 소모된다. 따라서 임시 배열을 동적 할당해주거나 아니면 정렬하고자 하는 배열과 같은 크기의 임시 배열을 선언해 out-place update로 시행한다 2020. 6. 2.
반응형