인프라

테라폼 기초 강좌 #2 HCL 핵심 문법: 블록, 인수, 리소스 주소와 변경의 세 가지 모양
5 분 소요

테라폼 기초 강좌 #2 HCL 핵심 문법: 블록, 인수, 리소스 주소와 변경의 세 가지 모양

HCL의 뼈대인 블록과 인수의 구조, aws_s3_bucket.hello 같은 리소스 주소의 의미와 리소스끼리 참조하는 문법을 정리합니다. plan 출력의 기호를 읽으며 create, update, replace라는 변경의 세 가지 모양을 구분하고, fmt와 validate로 코드를 다듬는 습관까지 다루겠습니다.

PostgreSQL 기초 강좌 #9 롤·권한·백업 기초: 운영의 최소 규율
4 분 소요

PostgreSQL 기초 강좌 #9 롤·권한·백업 기초: 운영의 최소 규율

기초 강좌의 마무리로 운영에 필요한 최소 규율을 정리합니다. 롤(role) 하나로 사용자와 그룹을 통일한 PostgreSQL의 권한 모델, 애플리케이션에 superuser를 주지 않고 최소 권한 계정을 만드는 실전 순서(GRANT와 기본 권한), public 스키마의 주의점, pg_dump·pg_restore로 하는 논리 백업과 복원 리허설의 중요성, 그리고 기초 9편의 회고와 실전 편 예고까지 다루겠습니다.

테라폼 기초 강좌 #1 IaC와 테라폼: 콘솔 클릭 운영의 한계, 설치와 첫 apply
7 분 소요

테라폼 기초 강좌 #1 IaC와 테라폼: 콘솔 클릭 운영의 한계, 설치와 첫 apply

콘솔에서 클릭으로 만든 인프라가 재현 불가, 이력 부재, 리뷰 부재로 무너지는 과정을 짚고, 원하는 상태를 코드로 선언하는 IaC가 이 문제를 어떻게 푸는지 정리합니다. CloudFormation, CDK, Pulumi 사이에서 테라폼이 갖는 위치를 비교하고, 설치부터 S3 버킷 하나를 init, plan, apply로 만들었다가 destroy로 지우는 첫 사이클까지 다루겠습니다.

PostgreSQL 기초 강좌 #8 뷰·CTE·윈도 함수: 복잡한 쿼리를 읽기 쉽게
4 분 소요

PostgreSQL 기초 강좌 #8 뷰·CTE·윈도 함수: 복잡한 쿼리를 읽기 쉽게

커진 쿼리를 구조화하는 세 가지 도구를 다룹니다. 반복되는 쿼리에 이름을 붙이는 뷰와 물리 사본인 구체화 뷰의 구분, WITH 절(CTE)로 쿼리를 단계별로 서술하는 법, 윈도 함수의 기본 구조(OVER, PARTITION BY)와 ROW_NUMBER로 그룹별 상위 N건을 뽑는 대표 패턴, 집계 함수와 윈도 함수의 차이(행이 줄지 않음), LAG로 전월 대비를 구하는 예까지 다루겠습니다.

PostgreSQL 기초 강좌 #7 JSONB: 관계형 데이터베이스에 유연함 더하기
4 분 소요

PostgreSQL 기초 강좌 #7 JSONB: 관계형 데이터베이스에 유연함 더하기

PostgreSQL이 NoSQL의 자리까지 넘보게 만든 JSONB를 다룹니다. json과 jsonb의 차이(jsonb가 기본값인 이유), 값 꺼내기 연산자(->, ->>, #>>)와 존재·포함 연산자(?, @>)의 사용법, JSONB 검색을 받치는 GIN 인덱스, 갱신(jsonb_set)의 특성, 그리고 가장 중요한 "어디까지 컬럼으로 두고 어디부터 JSONB에 넣는가"의 설계 경계까지 다루겠습니다.

PostgreSQL 기초 강좌 #6 트랜잭션과 MVCC: 동시성의 기본 원리
4 분 소요

PostgreSQL 기초 강좌 #6 트랜잭션과 MVCC: 동시성의 기본 원리

여러 접속이 같은 데이터를 동시에 만질 때 PostgreSQL이 일관성을 지키는 방식을 다룹니다. BEGIN·COMMIT·ROLLBACK의 기본과 원자성, MVCC(다중 버전 동시성 제어)의 핵심인 "읽기는 쓰기를 막지 않는다", UPDATE가 실제로는 새 버전 행을 만든다는 사실과 dead tuple의 예고, 기본 격리 수준 Read Committed의 의미와 함정, Repeatable Read·Serializable을 올려 쓰는 경우까지 다루겠습니다.

PostgreSQL 기초 강좌 #5 EXPLAIN 읽는 법: 실행 계획으로 쿼리 진단하기
4 분 소요

PostgreSQL 기초 강좌 #5 EXPLAIN 읽는 법: 실행 계획으로 쿼리 진단하기

쿼리가 느린 이유를 추측이 아니라 실행 계획으로 확인하는 방법을 다룹니다. EXPLAIN과 EXPLAIN ANALYZE의 차이(후자는 실제 실행), 계획 트리를 안쪽부터 읽는 순서, Seq Scan·Index Scan·Index Only Scan·Bitmap Scan의 의미, cost와 actual time·rows의 추정치와 실측치 비교, 추정이 크게 어긋날 때의 처방(ANALYZE), 그리고 BUFFERS로 읽기량을 보는 습관까지 다루겠습니다.

PostgreSQL 기초 강좌 #4 인덱스는 언제 사용되는가
4 분 소요

PostgreSQL 기초 강좌 #4 인덱스는 언제 사용되는가

조회를 빠르게 만드는 인덱스를 PostgreSQL 기준으로 다룹니다. B-tree 인덱스가 조회를 바꾸는 구조, 인덱스를 만들었는데도 사용되지 않는 대표 원인들(선행 컬럼 불일치, 컬럼에 함수 적용, 자료형 불일치, 낮은 선택도), 쓰기 성능과 저장 공간이라는 비용, 그리고 "느린 쿼리의 WHERE·JOIN·ORDER BY를 보고 만든다"는 실무 순서까지 다루겠습니다.

PostgreSQL 기초 강좌 #3 조인과 집계: 읽기 쿼리의 실무 감각
4 분 소요

PostgreSQL 기초 강좌 #3 조인과 집계: 읽기 쿼리의 실무 감각

읽기 쿼리의 실무 8할을 차지하는 조인과 집계를 다룹니다. INNER와 LEFT 조인의 선택 기준과 LEFT 조인 결과를 WHERE로 걸러 INNER로 만들어 버리는 고전적 실수, GROUP BY와 HAVING의 역할 구분, 집계와 조인이 섞일 때의 중복 집계 함정, 서브쿼리와 조인의 갈림길, 그리고 그룹별 최신 1건을 뽑는 PostgreSQL다운 방법(DISTINCT ON)까지 다루겠습니다.

PostgreSQL 기초 강좌 #2 자료형과 테이블 설계: 무엇으로 저장할 것인가
5 분 소요

PostgreSQL 기초 강좌 #2 자료형과 테이블 설계: 무엇으로 저장할 것인가

PostgreSQL 설계의 절반은 자료형 선택입니다. 문자열은 text 하나로 충분한 이유, 돈 계산에서 numeric이 필수인 이유, 시각 저장의 표준인 timestamptz와 timestamp의 함정, 기본 키 전략(bigint IDENTITY vs UUID, 그리고 uuidv7), NOT NULL·CHECK·외래 키로 데이터 무결성을 DB 층에서 지키는 설계, enum과 배열을 쓸 곳까지 다루겠습니다.

PostgreSQL 기초 강좌 #1 PostgreSQL이란: 널리 쓰이는 데이터베이스가 된 이유, 설치와 psql 첫 사용
4 분 소요

PostgreSQL 기초 강좌 #1 PostgreSQL이란: 널리 쓰이는 데이터베이스가 된 이유, 설치와 psql 첫 사용

PostgreSQL이 신규 프로젝트의 기본 데이터베이스가 된 배경부터 시작합니다. 표준 준수와 풍부한 자료형, 확장 생태계(pgvector·PostGIS), 관대한 라이선스라는 선택의 이유, 도커로 로컬에 띄우는 가장 빠른 설치, psql 접속과 메타 명령(\l, \dt, \d)의 기본기, 첫 테이블을 만들고 넣고 조회하는 한 사이클, 그리고 강좌 전체의 지도까지 다루겠습니다.

LLM 환각(할루시네이션): 원인과 실전 대응책
5 분 소요

LLM 환각(할루시네이션): 원인과 실전 대응책

LLM이 그럴듯한 거짓을 자신 있게 생성하는 환각 현상을 정리합니다. 다음 토큰 확률 예측이라는 동작 원리에서 환각이 필연적으로 나오는 이유, 사실 오류·출처 날조·코드 API 환각 같은 유형, RAG와 인용 강제, 도구 사용, 구조화 출력 검증, 평가 파이프라인까지 실무에서 환각을 줄이는 수단들, 그리고 완전히 없앨 수 없다는 전제 위에서 사람 검토 지점을 설계하는 운영 관점까지 다룹니다.