더스윙 기술 블로그 · 2026. 01. 30.
작은 수정이 전체를 깨뜨리기 시작했을 때: 옐로우버스 DB 재설계 이야기
AI 엔지니어링 브리핑
옐로우버스는 일정 변경이 시스템 전체로 번지는 문제를 해결하기 위해 데이터를 쌓아 보존하고, 서로 다른 일정 영역을 분리하며, 필요한 데이터만 그때그때 만드는 방식으로 데이터베이스를 다시 설계했습니다.
문제 & 배경
- 문제 & 배경: 운행일정이 수정될 때마다 여러 조각으로 나뉘고 미래의 탑승일정을 모두 미리 만들어 둔 구조까지 서로 강하게 연결되어 있어, 작은 변경도 수많은 데이터의 삭제·재생성으로 이어졌습니다.
기술 & 해결책
- 기술 & 해결책: 기존 데이터를 덮어쓰지 않고 변경 내용을 새 기록으로 추가하면서 우선순위가 높은 기록을 현재 값으로 사용하고, 탑승일정은 운행일정의 실제 기록 대신 변하지 않는 논리적 식별자를 참조하며, 실제 필요할 때만 탑승일정의 세부 데이터를 생성했습니다.
교훈 & 주의점
- 교훈 & 주의점: 변경 이력을 보존하고 영역 간 연쇄 수정을 끊으며 불필요한 미래 데이터를 만들지 않으면 일정 변경 비용과 오류 위험을 크게 줄일 수 있지만, 초기 설계가 이후 운영 비용과 확장성을 좌우하므로 도메인의 변화 방식을 충분히 고려해야 합니다.
함께 읽을 글
내용이 비슷해요내용이 비슷한 글을 먼저 보여드려요. 같은 문제나 해결책을 다룬다는 뜻은 아니에요.