데이터베이스 문서화는 인간의 규율에 의존할 때 실패한다
Source: Dev.to
Problem
이론적으로는 데이터베이스 문서화가 간단합니다.
하지만 실제 프로젝트에서는 거의 그렇지 않습니다. 스키마는 빠르게 진화하고, 요구사항은 변하며, 핫픽스가 발생합니다. 팀이 신경 쓰지 않아서가 아니라 수동 동기화가 규모에 맞지 않기 때문입니다. 어느 순간 ERD는 진실의 원천이 아니라 과거의 스냅샷이 됩니다.
Solution
내게 더 잘 맞았던 방법은 모델 자체를 완전히 바꾸는 것이었습니다: 문서를 유지 관리하는 대신 실제 모델에서 문서를 생성하고, 프로젝트와 함께 버전 관리했습니다. 마치 코드처럼 말이죠. 이 아이디어는 결국 ForgeSQL이라는 시각적 모델링 도구로 발전했습니다. 여기서 다이어그램은 부가적인 것이 아니라 다음을 생성하는 원천이 됩니다:
- 실제 SQL
- 실제 Docker 환경
- GitHub에 버전 관리된 아티팩트
“업데이트해야 할 다이어그램”은 없습니다. 현실과 일치하는 하나의 모델만 있으면 됩니다.
Discussion
다른 팀들은 오늘날 어떻게 이 문제를 해결하고 있나요? 데이터베이스 다이어그램이 여전히 프로덕션을 정확히 반영한다는 것을 실제로 보장해 주는 방법은 무엇인지 궁금합니다.