풀스택 TS 경계

프로젝트 책임과 계약

모노레포에서도 모든 코드를 공유하지 않습니다. client, server, shared, test, deploy의 경계를 먼저 정하면 변경 영향이 작아집니다.

client

화면과 사용자 상태

라우팅, 컴포넌트, 폼 상태, 브라우저 전용 API는 클라이언트 패키지에 둡니다.

server

도메인 실행과 저장소

인증, DB 접근, 외부 서비스 연동, 트랜잭션은 서버 내부 책임으로 닫습니다.

shared

양쪽이 합의한 타입

DTO, enum, API 결과 래퍼처럼 런타임 구현이 아닌 계약만 공유합니다.

ops

테스트와 배포 경계

단위 테스트는 가까이, E2E와 배포 설정은 실행 환경 단위로 분리합니다.

import 방향

shared는 client와 server를 알지 못하게 두어 순환 의존을 막습니다.

검증 위치

외부 입력은 API 경계에서 검증한 뒤 도메인 타입으로 좁힙니다.

변경 단위

자주 바뀌는 구현은 공유하지 않고 소유 패키지 안에 둡니다.