본문 바로가기

전체 글134

[Kafka] 토픽 Naming Convention 고민 TL;DR https://cnr.sh/essays/how-paint-bike-shed-kafka-topic-naming-conventions 을 참고한 글입니다. [namespace]-[application name]-[topic type]-[version numbers] 조합을 추천합니다. 개요 카프카 클러스터를 운영하다보면 수많은 토픽을 생성하게 된다. 토픽 이름은 변경할 수 없기 때문에 카프카 도입을 고려하고 있다면 Naming Convention에 대한 고민을 먼저 해보는 것이 좋다. 주의 1. 토픽 이름은 한번 지정하면 바꿀 수 없다 토픽 이름은 변경 불가능한 값이다. 즉 한번 컨벤션을 정하면 수정하기 어렵다. 카프카를 운영하면서 다양한 케이스의 토픽을 생성하게 될 것임으로 최대한 범용적인 이름.. 2023. 3. 9.
[KSR] 카프라 스키마 레지스트리(Kafka Schema Registry) 란? Kafka Schema Registry?Kafak 클러스터를 통해 전달되는 데이터 스키마를 관리하는 독립적인 애플리케이션Confluent Server 를 사용하는 경우 Enterprise License 이며, 그렇지 않으면 Community License이다. https://docs.confluent.io/platform/current/installation/license.html#community-license구조 프로듀서컨슈머스키마 레지스트리카프카 클러스터장점1. 시스템 장애 방지기본적으로 카프카 메시지 형태에는 강제성이 없다.무슨 말이냐면 위 A형태의 메시지를 보내다가 갑자기 B형태로 보내는 것이 가능하다는 말이다.소수의 사용자만 카프카 토픽을 소비한다면 큰 문제가 아닐 수 있다. 문제는 실제 카프.. 2023. 3. 9.
개발자 이모티콘 추천 지인이 개발자 이모티콘을 출시했다. 평소에 라인을 주로 사용하는데 재미있을 것 같아서 공유한다. 동글동글 도이는 개발자 : 대추쌈장 - 네이버 OGQ마켓 동글동글 도이는 개발자 스티커입니다. 공기팟과 사원증, 그리고 회색 후드티는 도이와 한몸같은 시그니처입니다. | 동글동글 도이는 개발자 : 대추쌈장 - 네이버 OGQ마켓 ogqmarket.naver.com 도이는 개발자 – LINE 스티커 | LINE STORE 귀여운 도이는 개발자입니다. 도이는 항상 회색후드를 입고 사원증, 공기팟을 하고 다닙니다. store.line.me 2023. 1. 21.
Git hook pre-commit .git/hooks/prepare-commit-msg #!/bin/sh BRANCH=`git branch | grep '^\*' | cut -b3-` FILE=`cat "$1"` echo "$BRANCH $FILE" > "$1" .git/hooks/pre-commit #!/bin/bash find vendor -name ".git*" -type d | while read i do if [ -d "$i" ]; then DIR=`dirname $i` rm -fR $i git rm -r --cached $DIR > /dev/null 2>&1 git add $DIR > /dev/null 2>&1 fi done You can do it with a combination of the prepare-commit-ms.. 2021. 4. 16.
Relation 관계 타입의 유형, 사상 원소수 4가지 사상 원소수 (mapping cardinality) – 관계의 분류 기준 1) 1 : 1 (일 대 일) fx : x → y and fy : y → x marriage : bridegroom ↔ bride 2) 1 : n (일 대 다) fx : x → y or fy : y → x (but not both) mothership : mother → children 3) n : 1 (다 대 일) fx : x → y or fy : y → x (but not both) position : professor → department 4) n : m (다 대 다) fx : x → y fy : y → x (neither) enrollment : student ↔ course Mapping cardinality – 상한(m.. 2021. 4. 4.
Entity, Relationship, Attribute ER 모델( Entity Relation Model ) ER 모델은 요구사항으로부터 얻어낸 정보들을 개체(Entity), 애트리뷰트(Attribute), 관계성(Relation)으로 기술하는 데이터 모델을 말합니다. 위에서 개체 타입은 Studuent, 속성은 Student_no, 관계는 Takes 이다. 개체는 여러개 있을 수 있다. 1. 개체( Entity ) 개체란 단독으로 존재하는 객체를 의미하며, 동일한 객체는 존재하지 않습니다. 예를 들어, 학생 정보가 학번, 이름, 학년이 있을 때, 3개의 정보가 모두 같은 학생이 오직 한 명이면 이를 개체라고 합니다. 즉, 학생 한명이 개체가 되는 것입니다. 이 개체들의 집합을 Entity Type이라고 합니다. 여기서는 Student, Course가 되겠.. 2021. 4. 4.
데이터 모델링 과정 요약 1. 요구 조건 수집 - 정적 정보 구조 요소: 개체, 애트리뷰트, 관계성, 제약 조건 - 동적 DB 처리 요구조건: 트랜잭션 유형, 실행 빈도 - 범 기관적 제약 조건: 경영 목표, 정책 2. 요구 조건 분석(Requirement analaysis) 잠정적인 사용자(활용처) 식별 사용자가 의도하는 DB의 용도 파악 모델링보다는 업무 분석에 가까움 누가쓰는지 파악 Out: 요구 조건 명세(requirement specification) 명세하는 이유 공식 문서로 해야하는 경우? 다른 회사에게 컨펌 받기 위해서 보호 수단 개념적 설계만하고 다른곳으로 옮기는 경우도 있음. key man? 요구사항 분석 과정 1) 수집 쉽지 않고, 준다고 하더라도 충분하지 않음 요청하는 사람들 이야기를 들은 후에는 직접적으로.. 2021. 4. 4.
데이터 모델링의 단계에 대해 간략히 알아보자 단계 데이터 모델링의 단계이다. 데이터 모델링은 데이터 중심 접근 방법(data-driven approach)을 사용한다. - 개념적 설계부터 물리적 단계를 모델링이라고한다. - 개념적, 논리적 설계 모두 데이터 모델이 필요하지만, 보통 논리적 설계의 데이터 모델을 데이터 모델이라고 부른다. 1. 개념적 설계 (Conceptual Design) 현실 세계에서 처리해야 할 데이터가 무엇인지 생각한다. 사람이 이해할 수 있는 형태이다. DBMS 상관없이 설계한다. 개념 모델링까지는 DBMS 는 정해지지 않는다. 업무에 관련된 개념적 구조를 정한다. 수강 정보가 있어야 한다. 주의 할 것은 데이터베이스 추상화 3-layer 의 개념적 단계와, 모델링 단계의 개념적 설계는 완전 다르다. 트랜잭션 모델링 2. 논.. 2021. 4. 4.
파일 시스템, 모델링, 관계형 DB 용어 비교 파일 시스템, 모델링, 관계형 DB의 용어가 헷갈려 정리해보고자 한다. 파일 시스템 데이터베이스 모델링 관계형 데이터베이스 파일(File) 엔터티(Entity) 테이블(Table) 레코드(Recode) 튜플(Tuple) 행(Row) 키(Key) 유일값(Identifier) 기본키(Primary Key), Unique 필드(Field) 어트리뷰트(Attribute) 컬럼(Column) 근데 필드는 레코드의 한 조각을 나타내고, 컬럼은 속성자체를 나타내는 것 같아서 차이가 있는 것 같다. 파일 시스템 데이터베이스 모델링 관계형 데이터베이스 2021. 4. 4.
데이터 모델링 접근 방법 데이터 모델링 접근 방법 데이터 모델링 접근 방법은 여러가지가 있다. 이 방법들은 병행적으로 추진되어야 한다. 1. 정보 시스템 생명 주기 리조트를 짓자는 요구 발생 1. 수요 제기 A 그룹이 강원도 해안가에 리조트를 건축하기로 마음을 먹음 2. 요구사항 수집 및 분석 타당한지, 어떤식으로 건축하는게 좋을지 분석 리조트를 지어서 회사에 이득이 되는가?를 정량화된 수치기반으로 결정 3. 설계 - 방은 몇개가 있어야하는지? -> 100개 - 공항에서와의 거리가 중요한지? -> 중요하다 - 타겟은 누구인지? -> 비즈니스 맨 4. 구현 2. data-driven approach (데이터 중심 접근 방법) 3. 처리 중심 방법 (processing-driven approach) 2021. 4. 4.