Partitioner란? partitioner는 kafka producer의 주요 개념 중 하나이다. partitioner를 알면 파티션을 더 효과적으로 쓸 수 있다. producer가 데이터를 보내면 무조건 partitioner를 통해 broker로 데이터가 전송된다. partitioner는 데이터를 topic의 어느 파티션에 넣을지 결정하는 역할을 한다. 파티션의 위치는 레코드에 포함된 메시지 키 또는 메시지 값에 따라 결정된다. producer를 사용할 때 partitioner를 따로 설정하지 않으면 UniformStickyPartitioner로 설정되는데 이 partitioner는 메시지 키가 있을 때와 없을 때 다르게 동작한다. 메시지 키의 유무 메시지 키가 있는 경우 → 메..

전체 글
이사 중 https://select-dev.tistory.comBroker, Replication, In-Sync Replica Broker, Replication, ISR(In-Sync Replica)은 kafka 운영에 있어서 아주 중요한 역할을 한다. kafka 아키텍처의 핵심인 replication(복제)은 클러스터에서 서버에 장애가 생겼을 때 kafka의 가용성을 보장하는 가장 좋은 방법이다. Kafka Broker kafka broker란 kafka가 설치되어 있는 서버 단위이다. 보통 3개 이상의 broker를 구성해 사용하는 것을 권장한다. 만약 partition이 1개이고 replication이 1인 topic이 존재하며 broker가 3대라면 3대 중 1대에 해당 topic의 정보(데이터)가 저장된다. Kafka Replication replica..
논리적 데이터 모델링 강의를 보고 정리합니다. 목차 데이터베이스 설계 단계 개념적 데이터 모델링 결과 논리적 설계 릴레이션 스키마 변환 규칙 규칙 1 - 모든 개체는 릴레이션으로 변환 규칙 2 - 다대다 관계는 릴레이션으로 변환 규칙 3 - 일대다 관계는 외래키로 표현 규칙 3.1 - 일반적인 일대다 관계는 외래키로 표현 규칙 3.2 - 약한 개체가 참여하는 일대다 관계는 외래키를 포함해 기본키 지정 규칙 4 - 일대일 관계는 외래키로 표현 규칙 4.1 - 일반적인 일대일 관계는 외래키를 서로 주고 받는다. 규칙 4.2 - 필수적으로 참여하는 개체 릴레이션만 외래키를 받는다. 규칙 4.3 - 모든 개체가 필수적으로 참여하면 릴레이션을 하나로 합친다. 규칙 5 - 다중 값 속성은 릴레이션으로 변환 기타 고..
개념적 데이터 모델링 강의를 보고 정리합니다. 목차 데이터베이스 설계 단계 요구 사항 분석 개념적 설계 개체와 속성 추출 관계 추출 E-R 다이어그램 작성 데이터베이스 설계 단계 → E-R 모델과 릴레이션 변환 규칙을 이용한 설계의 과정 설계 과정 중 오류 발견 시 이전 단계로 되돌아가 설계 내용을 변경할 수 있다. → 데이터베이스 설계 과정의 각 단계별 주요 작업과 결과물 요구 사항 분석 목적 사용자의 요구 사항을 수집하고 분석하여 개발할 데이터베이스의 용도를 파악 업무에 필요한 데이터가 무엇인지, 그 데이터에 어떤 처리가 필요한지 등을 고려 결과물 요구 사항 명세서 주요 작업 데이터베이스를 실제로 사용할 주요 사용자의 범위를 결정 사용자가 조직에서 수행하는 업무..
목차 가상화 기술 하이퍼바이저 네이티브 하이퍼바이저 호스트형 하이퍼바이저 하이퍼바이저 기반 VM 구조 도커와 기존 가상화 기술 차이 도커 컨테이너 격리 Cgroup Namespace Cgroup, Namespace 사용 가능한 이유 가상화 기술 가상화 기술 등장 이전 1대의 서버를 하나의 용도로만 사용했다. 남는 서버 공간은 그대로 방치했으며, 하나의 서버에 하나의 운영체제, 하나의 프로그램만을 운영했다. 이 방법은 안정적이나 비효율적이다. 하이퍼 바이저 기반의 가상화 등장 논리적으로 공간을 분할해 VM이라는 독립적인 가상 환경의 서버 이용이 가능해졌다. 하이퍼바이저 호스트 시스템에서 다수의 게스트 OS를 구동할 수 있게 하는 소프트웨어이며, 하드웨어를 가상화하면서 하드웨어와 각각의 VM을 모니터링하는 ..
목차 도커를 쓰는 이유 도커란? 도커 이미지와 도커 컨테이너의 정의 도커 사용 흐름 이미지로 컨테이너가 생성되는 방법 이미지가 포함하는 것 이미지로 컨테이너를 만드는 순서 도커를 쓰는 이유 가장 큰 이유는 프로그램 설치 과정을 간단하게 만들기 위함이다. 일반적으로 프로그램을 설치하려면 아래 과정을 거친다. installer 다운받기 → installer 실행 → 프로그램 설치 완료 그러나 위 과정에서 서버, 패키지 버전, 운영체제 등에 따라 많은 에러가 발생한다. 도커를 사용하면 프로그램 설치 과정을 단순하게 만들 수 있다. 도커란? 도커를 공부하기 전 컨테이너가 무엇인지 아는 것이 먼저이다. 일반적으로 컨테이너를 떠올려보면 아래와 같은 이미지일 것이다. 컨테이너는..
목차 데이터 모델링 2단계 데이터 모델링 데이터 모델 데이터 모델링과 데이터 모델의 관계 데이터베이스 설계 개체-관계 모델(E-R Model) 개체 속성 관계 속성의 분류 단일값 속성, 다중값 속성 단순 속성, 복합 속성 유도 속성 널(Null) 속성 키 속성 관계의 유형 일대일(1:1) 관계 일대다(1:n) 관계 다대다(n:m) 관계 관계의 참여 특성 관계의 종속성 논리적 데이터 모델 관계 데이터 모델 계층 데이터 모델 네트워크 데이터 모델 데이터 모델링(Data Modeling) 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터 베이스로 옮기는 변환 과정으로 데이터베이스 설계의 핵심 과정이다. 현실 세계의 데이터를 바로 변환하기는 어렵기 때문에 2단계 데이터 모델링이 등장한다. 2단계 데이터 모델링..
목차 용어 정의 데이터베이스 시스템 사용자 데이터 언어 데이터 정의어 데이터 조작어 데이터 제어어 데이터베이스 관리 시스템 3단계 데이터베이스 구조 외부 단계 개념 단계 내부 단계 3단계 데이터베이스 구조의 매핑 데이터 독립성 시스템 데이터베이스 시스템 카탈로그 데이터 디렉토리 데이터베이스 시스템 아키텍쳐 용어 정의 DB 시스템을 공부하기 전 용어를 정리한다. 데이터(Data) 알려진 사실(fact)로서 의미를 가지면서 기록될 수 있는 것 데이터베이스(DB; Database) 특정한 의미를 갖는 관련있는 데이터의 집합 데이터베이스 관리 시스템(DBMS; Database Management System) 데이터베이스의 생성과 관리를 담당하는 소프트웨어 패키지 데이터베이스 시스템(DBS; Database S..
설치 전 Homebrew를 사용해 Git을 설치하므로 Homebrew가 설치되어 있지 않다면 아래 포스팅을 참고해 설치해야 한다. Homebrew 설치하기 [Mac] macOS에서 개발 환경 구축 전 Homebrew 설치하기 macOS용 패키지 관리자 Homebrew 설치하기 select-dev-from.tistory.com 설치 Terminal에서 아래 명령어를 실행하면 설치가 완료된다. brew install git config 설정 설치가 완료되면 config 설정이 필요하다. Terminal에서 아래 명령어를 입력한다. 자신의 계정명과 이메일 주소를 입력하면 된다. git config --global user.name "계정명" git config --global user.email 이메일 주소 ..
오류 처음 git을 설치하고 clone 명령어를 사용했는데 아래와 같은 오류가 발생했다. 찾아보니 Github에서 인증 방식을 personal access token 사용으로 변경하면서 발생한 오류이다. personal access token을 생성하고 password를 입력할 때 생성한 token을 입력해주면 된다. token 생성 Settings 클릭 왼쪽 맨 밑에 Developer settings 클릭 왼쪽에서 Personal access tokens의 Tokens (classic) 선택 후 Generate new token의 Generate new token (classic)을 선택한다. Note와 Expiration은 마음대로 설정 후 아래처럼 체크한다. 생성하는 token으로 접근 가능한 것들..