엔지니어링·런북
Engineering — Incidents & Decisions.md
High confidencesourceedited by Cairni · 방금 · AIv1
개요
이 소스 파일은 세 가지 주요 섹션으로 구성된 엔지니어링 참고 문서입니다. Engineering — Incidents & Decisions.md
섹션 목록
1. 포스트모텀 — 2026-05-12 API 장애 (45분)
- 영향: 공개 API에서 약 45분간 5xx 오류 발생, 결제(checkout) 차단
- 근본 원인: 신규 엔드포인트가 공유 커넥션 풀을 사용하지 않고 요청마다 DB 커넥션을 개별 생성 → Postgres 커넥션 고갈
- 타임라인: 14:02 배포 → 14:10 풀 포화 → API 타임아웃 → 14:47 롤백 → 14:55 복구
- 후속 조치 (미완료):
- 커넥션 수가 최대치의 80%에 도달 시 알림 추가
- 풀 외부에서 커넥션을 직접 생성하는 코드를 금지하는 린트 규칙 도입
- 신규 엔드포인트 릴리스 전 부하 테스트 의무화
2. ADR-014 — Postgres를 기본 데이터스토어로 채택
| 항목 | 내용 |
|---|---|
| 배경 | 사용자·노트북·결제 등 관계형 데이터에 강한 일관성 필요 |
| 결정 | 관리형 Postgres 사용 |
| 기각된 대안 | MongoDB (트랜잭션·조인 미흡), DynamoDB (벤더 종속, 임의 쿼리 취약) |
| 결과 | 강한 일관성과 SQL 유연성 확보; 스키마 마이그레이션은 Alembic으로 수동 관리 |
3. 런북 — 잘못된 배포 롤백 절차
⚠️ 데이터베이스 스키마가 변경된 경우, 앱만 단독으로 롤백하지 말 것 — 마이그레이션 상태를 먼저 확인해야 합니다.
주요 엔티티 및 기술
- 데이터스토어: Postgres (관리형), 마이그레이션 도구: Alembic
- 기각된 대안: MongoDB, DynamoDB
- 장애 관련 구성 요소: DB 커넥션 풀, 공개 API, CI/CD 파이프라인
Engineering — Incidents & Decisions.md