[Project] 공개 식별자와 도메인 흐름 정리
업데이트:
개요
API 서버의 핵심 흐름을 다시 정리했다.
처음에는 단순히 항목과 값을 저장하면 될 줄 알았다.
하지만 실제 사용 흐름을 생각해보니 그룹, 대상, 항목, 배정, 결과 계산이 각각 필요했다.
흐름 정리
전체 흐름은 다음과 같이 정리했다.
그룹 생성
-> 대상 입력
-> 항목 입력
-> 항목별 대상 배정
-> 결과 계산
처음에는 단순한 이름만 저장하면 될 것 같았다.
하지만 이후에는 계정이나 기준 데이터와 연결될 수 있는 부분도 있었다.
그래서 지금 당장 필요한 MVP와 이후 확장 가능성을 함께 고려해야 했다.
내부 id와 외부 id
외부 API에서 내부 id가 그대로 노출되는 부분도 점검했다.
처음에는 bigint id를 그대로 쓰는 것이 편했다.
조회도 쉽고 구현도 단순하다.
하지만 외부에 내부 id가 그대로 드러나는 것은 좋지 않았다.
그래서 외부로 나가는 id는 모두 공개 식별자로 바꾸는 방향을 잡았다.
internal id: BIGINT
external id: prefix_random
내부 DB에서는 bigint를 유지한다.
관계 설정이나 조회 성능 측면에서는 이쪽이 단순하다.
다만 API 경계 밖에서는 공개 식별자만 사용한다.
정리
이번 정리를 하며 API 설계에서 식별자는 생각보다 중요하다고 느꼈다.
단순히 값 하나를 숨기는 문제가 아니라, API의 외부 계약을 어떻게 가져갈지와 연결된다.
DB 내부 모델
API 외부 모델
이 둘을 분리해두면 내부 구현이 바뀌어도 외부 API는 덜 흔들릴 수 있다.
댓글남기기