데이터 소유권 모델 정의로 팀 간 혼선 해결
목차
동료 팀과 공유하는 데이터에 대해 명확한 소유 모델을 정의하고, 이를 문서에 기록했다. .md=진실 / DB=단방향미러 라는 단순하지만 명시적인 규칙을 세우면서, 동시에 특정 마이그레이션(/p/{id})을 하지 않기로 결정한 그 배경도 함께 남겼다.
왜 이런 문서가 필요했나
프로젝트가 커지다 보니 여러 팀이 같은 데이터를 다루게 됐는데, 각 팀이 그 데이터를 어느 정도로 신뢰하고 사용할지에 대해 명확한 합의가 없었다. 어떤 팀은 "DB에 있는 게 진실"이라고 생각했고, 또 다른 팀은 "마크다운 문서가 항상 최신"이라고 믿고 있었다. 결과적으로:
- 누가 이 데이터를 수정해도 괜찮은지 불명확함
- 데이터가 둘 다 존재할 때 어느 걸 믿을지 혼란스러움
- 버그 리포트나 설계 리뷰에서 "정확한 현황이 뭐냐"는 논의가 반복됨
이런 상황이 반복되면 결국 조직 전체의 결정 속도가 떨어진다.
명확히 정의한 모델
그래서 이번에 명시한 규칙은 이렇다:
| 구분 | 역할 | 수정 가능 여부 | 신뢰도 |
|---|---|---|---|
| 마크다운(.md) | 진실의 원천 | 제한적(검토 후) | 최고 |
| DB | 단방향 미러 | 읽기 전용 | 보조 |
마크다운을 "진실"로 삼은 이유는 버전 관리(Git), 코드 리뷰 프로세스, 감사 추적이 전부 마크다운에 남기 때문이다. DB는 성능이나 실시간 조회를 위해 필요하지만, 어디까지나 마크다운을 동기화한 사본일 뿐이다.
이렇게 정의하면:
- 정보 갱신은 항상 마크다운 우선 → 그다음 DB 싱크
- 데이터 불일치 발견 시 마크다운을 기준으로 수정
- 누구든 "뭐가 진짜냐?"고 물었을 때 답이 명확함
/p/{id} 미전환 결정을 기록한 이유
마찬가지로 마이그레이션 계획도 있었는데(특정 경로를 새로운 패턴으로 전환하는 작업), 이번에 "아직 전환하지 않기로 했다"는 결정을 명시적으로 문서에 남겼다. 이게 중요한 이유:
- 누군가는 "왜 아직도 저 옛날 패턴을 쓰나?" 라고 물을 수 있고
- 새로 합류한 팀원은 "이거 리팩토링해도 되나?" 하고 시간을 쓸 수 있고
- 6개월 뒤 본인도 "이거 미룬 이유가 뭐더라?" 하고 다시 생각할 수 있다
그런 낭비를 줄이려면 의사결정 자체와 그 배경(기술적 제약, 우선순위, 트레이드오프)을 기록하는 게 팀 투자 대비 가장 높은 ROI다.
작은 문서화가 큰 신뢰를 만든다
이번 작업은 코드 한 줄도 고치지 않았다. 단지 "이게 진실이고, 저건 미러고, 저 결정은 안 할 거고" 라는 걸 명확히 썼을 뿐이다. 하지만 이 몇 줄이:
- 동료 팀이 구현할 때 헷갈리지 않게 함
- 코드 리뷰에서 "진짜 이 접근이 맞나?" 는 논의를 줄임
- 6개월 뒤 나 자신도 그때의 맥락을 빠르게 복원할 수 있게 함
특히 아키텍처나 데이터 모델 같은 주제는 "왜?"를 놓치면 나중에 누군가는 틀린 방향으로 개선하려다가 낭비를 본다. 명확한 문서 한 장이 그런 엔트로피를 막는다.
🛒 이 글과 어울리는 추천 상품
*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.
댓글 0
첫 댓글 달아줘.