데이터베이스 기초 (3) - JOIN
INNER JOIN과 LEFT JOIN의 차이를 PostgreSQL 게시판 예제로 실습합니다. JOIN과 GROUP BY를 결합해 글별 댓글 수를 집계하면서 count(*)와 count(column)의 차이를 확인하고, 다대다 관계를 junction table로 설계해 tag 기능을 만듭니다.
INNER JOIN과 LEFT JOIN의 차이를 PostgreSQL 게시판 예제로 실습합니다. JOIN과 GROUP BY를 결합해 글별 댓글 수를 집계하면서 count(*)와 count(column)의 차이를 확인하고, 다대다 관계를 junction table로 설계해 tag 기능을 만듭니다.
PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, CHECK, DEFAULT 제약을 오류 예제로 확인하고, 정규화가 갱신 이상을 어떻게 막는지 게시판 사례로 설명합니다. 요구사항에서 users, posts, comments 세 table을 도출해 시리즈 표준 schema와 seed data를 완성합니다.
relational model의 table, row, column과 기본 타입, NULL의 의미를 정리하고 PostgreSQL에서 SELECT, INSERT, UPDATE, DELETE 기본기를 실습합니다. WHERE, ORDER BY, LIMIT, OFFSET, DISTINCT와 LIKE, IN, BETWEEN 사용법도 함께 다룹니다.
SQL과 관계형 데이터베이스를 기초 문법부터 설계, 성능, 동시성, 운영까지 다루는 데이터베이스 기초 시리즈의 0편입니다. 아홉 편의 전체 구성과 실습 환경, 시리즈를 마쳤을 때의 도달 기준을 정리합니다. 실습은 PostgreSQL 18 Docker container와 psql 기준이며 MySQL 8.4와의 차이도 각 편에서 다룹니다.
어텐션만으로 시퀀스를 처리하는 self-attention과 Query·Key·Value, 멀티헤드와 위치 인코딩, 잔차 연결과 Layer Norm으로 이루어진 Transformer 블록, 그리고 순차성을 없애 RNN을 대체하고 LLM의 토대가 된 과정을 정리하며 시리즈를 마치는 딥러닝 기초 (16)편입니다.
Kafka가 생산자와 소비자를 분리하는 방식을 정리합니다. broker, topic, partition, consumer group, offset의 구조와 Docker 기반 첫 실행, console 도구 최소 예제, 운영 관행과 자주 밟는 함정을 다룹니다.
인코더-디코더 RNN이 문장 전체를 벡터 하나에 압축하며 생기는 정보 병목에서 출발해, 디코더가 인코더의 모든 상태를 필요한 곳에 집중해 참조하는 어텐션이 그 병목을 어떻게 푸는지를 정리한 딥러닝 기초 (15)편입니다.
replication과 acks로 유실을 막는 조합, retention과 디스크 계획, advertised listener 함정, 관리형 서비스 선택까지 Kafka 운영의 기초를 정리하고 시리즈를 마무리합니다.
RNN의 기울기 소실을 구조로 푸는 LSTM의 셀 상태와 세 게이트(망각·입력·출력)가 장기 기억을 어떻게 흐르게 하는지, 이를 단순화한 GRU, 그리고 여전히 남는 순차 처리의 한계를 정리한 딥러닝 기초 (14)편입니다.
confluent-kafka로 JSON 이벤트를 보내는 producer와 poll 루프로 읽는 consumer를 작성합니다. flush와 delivery callback, auto commit과 at-least-once까지 코드로 확인합니다.