숨고 팀 블로그 | Tech
RDB -> NoSQL로의 마이그레이션 도전기
AI 엔지니어링 브리핑
숨고는 복잡한 MariaDB 구조 때문에 요청서 기능을 빠르게 확장하기 어려워, 데이터를 MongoDB로 옮겨 조회와 개발을 단순하게 만들었습니다.
문제 & 배경
- 문제 & 배경: 요청서 하나를 조회할 때 7~10개 테이블을 연결해야 했고, 기능을 추가할 때마다 스키마와 쿼리가 복잡해져 성능 저하와 잦은 배포 부담이 생겼습니다.
기술 & 해결책
- 기술 & 해결책: 기존 RDB를 기준 데이터로 유지하면서 MongoDB에 이중으로 기록하고, 변경이 적은 정보와 자주 바뀌는 메타데이터를 두 컬렉션으로 나눈 뒤 과거 데이터를 옮기고 API의 조회를 단계적으로 전환했습니다.
교훈 & 주의점
- 교훈 & 주의점: 주요 API 응답 속도가 약 90% 개선되고 조인이 단일 컬렉션 조회로 단순해졌지만, 데이터베이스 간 ID와 시간대가 달라 생기는 불일치를 막기 위해 참조 키와 UTC 기준을 일관되게 관리해야 합니다.
함께 읽을 글
내용이 비슷해요내용이 비슷한 글을 먼저 보여드려요. 같은 문제나 해결책을 다룬다는 뜻은 아니에요.