모노레포 의존 방향은 client와 server가 shared 계약만 참조하게 둔다
client와 server가 shared 타입을 함께 쓰면 요청·응답 계약은 한곳에서 관리하되, shared가 양쪽 구현을 알아서는 안 된다.
화면, 라우팅, fetch contract를 담당한다.
요청 처리, 데이터 접근, 런타임 검증을 담당한다.
DTO, enum, ApiResult 같은 합의된 타입만 둔다.
| 구분 | 의미 | 판단 |
|---|---|---|
| 의존 방향 | client/server → shared | shared는 양쪽을 모른다. |
| 빌드 순서 | shared 먼저 | 참조 타입이 먼저 만들어져야 한다. |
| 경계 위험 | 도메인 로직 공유 | 결합도가 커지므로 구현은 각 패키지에 둔다. |
핵심 공유 타입은 편하지만 shared는 양쪽이 함께 알아야 하는 계약만 담아야 결합이 커지지 않는다.