처음엔 이런 생각을 했습니다.
시간 없는데 그냥 코드 작성부터 해서 테이블 만들고 수정하면 되지 않나?
처음엔 빠르게 진행되는 것처럼 보였습니다.
User 테이블 만들고
Post 테이블 만들고
Comment 테이블 추가하고
엥? 좋아요는 어디 넣지?
그리고 곧 이런 상황들이 찾아왔습니다
ERD를 안 그린 대가는 나중에 구조적 혼란으로 돌아왔습니다.
많이들 이렇게 생각합니다.
ERD = 문서용, 형식적인 산출물
하지만 실제로 느낀 목적은 달랐습니다.
관계를 시각화해서 사고 비용을 줄이는 도구
ERD는 코드를 대신하는 게 아니라 코드보다 먼저 생각을 정리하는 수단입니다.
관계가 강제됩니다
도메인 이해가 빨라집니다
수정 비용이 줄어듭니다
ERD 단계에서 수정하면
선 하나 지우는 것으로 끝
DB/코드 단계에서 수정하면
마이그레이션
데이터 보정
API 수정
테스트 수정
초기 설계 비용보다 사후 수정 비용이 훨씬 크다는 걸 직접 경험했습니다.
솔직히 안 그려도 되는 경우도 있다고 생각합니다.
이전에 여러 번 구현해봤고 구조가 머릿속에 이미 완성돼 있다면 ERD를 그리는 게 오히려 비용일 수 있습니다.
이런 경우엔 머릿속 구조로도 충분히 가능합니다.
이번 경험을 통해 ERD는 필수 문서가 아니라 필수 사고 과정이라는 걸 느꼈습니다.
빨리 만들고 싶으면 안 그릴 수 있습니다. 하지만 잘 만들고 싶다면 그려야 한다고 생각합니다.
대부분의 경우 나중에 고치느니 미리 그리는 게 비용·시간·스트레스 모든 면에서 낫습니다.
긴 글 읽어주셔서 감사합니다.