모든 글

조직 현실까지 고려한 데이터 관계 설계

단순한 관계에서 시작하되 실제 요구사항 변경, 의사결정 습관과 일정 제약을 관찰해 데이터 관계 설계에 반영합니다.

출처 및 AI 안내: 이 글은 제미니의 개발실무 유튜브를 기반으로 작성되었습니다. gpt-5.6-sol 모델을 사용해 생성·편집했습니다.

상품과 카테고리를 처음에는 1대1 또는 1대N으로 만들었는데 나중에 N대N으로 바뀌었다. 그렇다면 처음부터 열어 두는 편이 맞았을까? 보통은 아니다. 현재 요구가 뒷받침한다면 1대1이나 1대N에서 시작하는 것을 기본으로 선호한다.

현재 상품 하나가 카테고리 하나에 속한다면 그 규칙부터 모델링한다. 미래 가능성은 거의 모든 설계에 해당하므로 추가 구조를 매번 정당화할 수 없다.

상상이 아니라 조직에서 나온 증거라면 이야기가 달라진다. 같은 의사결정자가 스펙을 반복해서 뒤집었거나 여러 프로젝트가 출시 직전에 방향을 바꾸는 일을 겪었을 수 있다. 회사와 기획팀, 조직장의 행동도 소프트웨어가 배달되는 환경의 일부다.

출시 3주 전이면 계산이 달라진다

의사결정자가 경쟁사 제품을 써보고 그 동작대로 바꾸자고 해 막판에 요구가 달라진 사례가 있었다. 한 사례에서는 그 요청이 출시를 약 3주 앞두고 들어왔다.

이런 일이 반복됐다면 관계를 미리 열어 두는 선택도 현실적이다. 도메인의 미래를 맞혔다는 뜻이 아니다. 요구사항이 만들어지는 관찰된 패턴과, 막판 변경에 일정이 함께 늘지 않는 현실에 대응한 것이다.

실제로 속한 조직을 설계 변수에 넣는다

기본값은 1대1이나 1대N이고 제품이 요구할 때 N대N으로 바꾸는 것이다. 예외는 로컬 조직이 같은 관계를 늦게 뒤집어 온 증거가 충분하고 고정 일정의 비용이 클 때 설명할 수 있다. 큰 회사 안에서도 팀과 본부마다 의사결정 방식이 달라 답이 달라질 수 있다.

그 맥락을 막연한 ‘유연성’ 뒤에 숨기지 않는다. 이 조직에서 관계가 막판에 반복해서 바뀌었기 때문에 넓은 모델을 택했다고 설명한다. 실무 설계에는 다이어그램의 카디널리티뿐 아니라 요구사항을 만드는 사람과 일정도 들어간다.