분류 전체보기

    Kafka: Kafka Broker 내부 구조

    Kafka: Kafka Broker 내부 구조

    Confluent Kafka Course 읽고 정리하기카프카는 데이터와 메타데이터를 분리해서 다룬다.카프카 클러스터 내 기능은 Data Plane과 Control Plane으로 나뉜다.Control Plane: 카프카 클러스터의 메타데이터 관리를 처리한다.Data Plane: 카프카에서 읽고 쓰는 전체 데이터를 다룬다.카프카 브로커 내부 구조카프카에서 클라이언트 요청은 Produce, Fetch request 두 분류로 나뉜다.Produce Request: 데이터 배치를 특정 토픽에 쓰도록 요청Fetch Request: 카프카 토픽에서 데이터를 가져오는 요청두 요청 모두 동일한 단계를 거친다.Producer Request파티션 할당프로듀서가 레코드를 전송할 준비가 되면, 파티셔너를 이용해 레코드에 할당할..

    자비스 앤 빌런즈 (삼쩜삼) 개발자 공채 챌린지 후기

    자비스 앤 빌런즈 (삼쩜삼) 개발자 공채 챌린지 후기

    “삼쩜삼”으로 잘 알려진 자비스 앤 빌런즈 하반기 공개 채용 챌린지를 참가하면서 느낀점을 정리해보려한다. 일반 채용 프로세스는 “서류 - 과제 테스트 - 1차 기술면접 - 2차 컬쳐핏 면접 - 3차 C-Level (임원면접)”로 되어있기는 했는데 프로그래머스에서 진행한 공채 챌린지 전형은 면접이 몇 번인지는 모르겠다. 나는 코딩 테스트 - 과제 테스트 - 1차 면접까지만 진행하고 채용 절차가 마무리 되었다. 코딩 테스트 우선 코딩 테스트. 코딩 테스트의 난이도 자체는 별로 어렵지 않았던 것 같다. “간단한 구현 2문제, BFS 1문제, 덱을 이용한 구현 1문제”로 총 4문제가 출제되었다. 시간은 3시간이었지만 얼추 2시간만에 다 풀고 나왔던 것 같다. 문제를 풀면서 시간이 남아서 리팩토링과 주석을 달아 ..

    트랜잭션의 본질 (DB 스터디 7주차)

    트랜잭션의 본질 (DB 스터디 7주차)

    "관계형 데이터베이스 실전 입문 - 오쿠노 마키아"를 읽으며 매주 스터디 진행 목표 트랜잭션의 기본을 파악 RDB에서 트랜잭션을 사용해 데이터 정합성을 보장하는 방법 14.1 트랜잭션 데이터를 올바르게 보장하기 위해 고안된 방법 실제 애플리케이션 개발에서는 관계형 모델(정규화)와 트랜잭션을 모두 구현해야 데이터의 정합성을 보장 가능 트랜잭션의 기능 트랜잭션이 필요한 상황 DB 서버에 여러 개의 클라이언트로부터 동시에 엑세스가 발생하는 경우 DB 서버 or 애플리케이션이 갱신 처리 도중에 중단되어 데이터 부정합이 발생하는 경우 ex) 은행 계좌 입/출금 처리 잔액 100만원, A 트랜잭션은 30만원 입금 처리, B 트랜잭션은 20만원 출금 처리 트랜잭션 A 잔액 조회 : 100만원 트랜잭션 B 잔액 조회 ..

    웹 응용프로그램을 위한 데이터 구조 (DB 스터디 6주차)

    웹 응용프로그램을 위한 데이터 구조 (DB 스터디 6주차)

    "관계형 데이터베이스 실전 입문 - 오쿠노 마키아"를 읽으며 매주 스터디 진행 목표 대규모 엑세스를 감당해야하는 애플리케이션은 RDB를 이용해서는 성능의 한계를 직면한다. 데이터 모델을 유지하면서 물리적인 한계에 대응하는 법을 알아본다. 12.1 캐시라는 개념 캐시가 사용되는 곳 CPU 캐시 메모리 TLB(Translation Lookaside Buffer, 가상 메모리의 논리 주소와 물리 주소 매핑하는 캐시 메모리) 디스크 캐시, 파일 시스템 캐시 브라우저 콘텐츠 캐시, DNS 캐시 DB 버퍼 풀 등 캐시는 확실한 장점과 단점을 갖기 때문에 확실하게 성능을 향상시킬 수 있을 때 적용하는 것이 바람직하다. 캐시의 장점 캐시의 본질은 비용이 많이드는 작업을 비용이 낮은 동일한 행위로 처리하는 작업 높은 비..

    인덱스 설계 전략 (DB 스터디 5주차)

    인덱스 설계 전략 (DB 스터디 5주차)

    11.1 인덱스의 동작 인덱스와 색인은 비슷 색인이 커지는 경우 키워드를 찾는데 시간이 걸림 색인 : 키워드가 문자 순서로 정렬돼 있고 해당 키워드가 있는 페이지의 번호가 기록되어 있다. RDB의 인덱스 RDB의 인덱스는 일반적으로 B+트리로 구성 B+트리는 데이터(인덱스의 값)가 저장된 리프 노드 + 리프 노드까지의 경로 역할을 하는 논리프 노드 탐색 경로의 출발점은 루트 노드 논리프 노드에는 자식 노드가 보유한 값 중에 최솟값이 저장 자식 노드는 페이지 ID에 대한 포인터가 저장 인덱스의 노드 수 = 테이블의 행 수 인덱스의 왼쪽과 검색 범위 B+트리는 등가 비교와 범위 검색(Between)에 사용 가능 LIKE 절 검색의 경우 와일드카드 위치에 따라 검색이 달라지므로 전방 일치를 권장한다. B+트리..