Context
매칭, 프로필, 알림, 채팅, 결제를 하나의 제품 흐름으로 운영했습니다. 성장 지표와 장애 신호를 함께 읽으며 API와 데이터 계층을 고쳤습니다.
Decisions
- 후보별 조회를 목록 단위 조회로 바꾸고, 정렬·조건에 맞는 인덱스를 설계했습니다.
- 여러 ECS 컨테이너에 흩어진 Socket.IO 연결을 Redis Pub/Sub으로 동기화했습니다.
- DB 변경과 후속 작업 등록을 Outbox로 함께 보존해 재시도와 운영 확인 경계를 분리했습니다.
Evidence boundary
약 1만 명 가입 이력과 누적 매칭 248,870건을 가진 서비스입니다. SQL 호출 13,044→9,098, DB 총 실행 시간 832→397ms는 운영 스냅샷 기반 격리 A/B에서 확인한 수치이며, 배포 전 회귀가 발견돼 운영 성과로 확대하지 않았습니다.
Stack
- Product / Backend / Mobile
- PostgreSQL / Redis
- AWS ECS / Operations