MySQL 선택 이유
- 도입 배경
MOMO는 사용자-모임-참가자-결제 간 복잡한 관계형 데이터를 관리해야 했습니다. 결제 처리와 모임 참가 확정 등 중요한 비즈니스 로직에서 ACID 트랜잭션 보장이 필수적이었고, 6주 개발 기간과 6명 팀 구성에서 빠른 학습과 Spring Boot와의 원활한 통합이 필요했습니다.
- 선택지
- NoSQL (MongoDB, DynamoDB)
- 빠른 개발 초기 속도와 스키마 유연성
- 모임-참가자-결제 간 복잡한 관계 표현 어려움
- 여러 컬렉션 간 ACID 트랜잭션 지원 제한적
- PostgreSQL
- 강력한 SQL 표준 준수와 고급 기능 지원
- 6주 프로젝트에서 고급 기능 학습 시간 부족
- 튜닝과 모니터링에 더 많은 전문 지식 필요
- MySQL
- Spring Boot와 완벽한 통합
- ACID 트랜잭션과 외래 키 제약조건으로 데이터 일관성 보장
- AWS RDS 환경에서 안정적 운영과 자동 백업 지원
- 직관적인 SQL 문법과 풍부한 생태계
- 최종 결정
NoSQL은 복잡한 관계형 데이터 특성에 부적합하고 ACID 트랜잭션 보장이 어려워 제외했습니다. PostgreSQL은 프로젝트 규모와 팀 경험 수준 대비 과도한 복잡성으로 제외했습니다. 따라서 MySQL로 결정했습니다.