본문으로 건너뛰기

ADR-005: 데이터베이스

상황 (Context)

사주 정보, 사용자 프로필, 매칭 기록, 채팅 메시지 등 대량의 데이터를 저장해야 한다. 빠른 쿼리와 높은 신뢰성이 필요하며, 초기에는 수십만 행 수준의 데이터를 다룬다.

의사결정 (Decision)

AWS RDS (PostgreSQL) 선택

  • PostgreSQL 14 이상
  • Multi-AZ 자동 페일오버
  • 자동 백업 (7일 보관)
  • 읽기 복제본 추가 (분석/대시보드용)
  • 초기 인스턴스: db.t3.micro (프리티어)

근거 (Rationale)

  1. 신뢰성: AWS RDS의 자동 관리 & 자동 백업
  2. 확장성: 읽기 복제본으로 나중에 읽기 부하 분산 가능
  3. 비용: 초기 프리티어, 성장 시 스케일 업 용이
  4. ACID 준수: 금융/사용자 데이터 안정성 보장

결과 (Consequences)

✅ 긍정

  • 높은 가용성 (99.95%)
  • 자동 백업으로 장애 복구 용이
  • 기본 모니터링 포함

⚠️ 위험

  • 관리 비용 (경우에 따라 자체 운영보다 비쌀 수 있음)
  • VPC 설정 복잡도
  • 대용량 쿼리 시 비용 증가

스키마 설계 원칙

  • 사주 정보: 완전히 정규화 (중복 저장 안 함)
  • 채팅: 파티셔닝 고려 (월 단위)
  • 인덱스: 쿼리 패턴 분석 후 최소 필요분만 생성

출시 전 확인사항

  • RDS 인스턴스 프로비저닝 (W1)
  • 자동 백업 설정 및 복구 테스트
  • 보안 그룹 설정 (EC2에서만 접근)
  • 느린 쿼리 로깅 활성화
  • 주간 스냅숏 검증

상태: ✅ 승인됨 | 최종 수정: 2026-06-25