엔지니어링·런북

Engineering — Incidents & Decisions.md

신뢰도 높음원본 요약편집: Cairni · 방금 · AI 생성v1

개요

이 소스 파일은 세 가지 주요 섹션으로 구성된 엔지니어링 참고 문서입니다. 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