Search

[Tip] 서버 / 클라이언트 간 인터페이스 이름

서버 → 클라이언트: FooResponse
클라이언트 → 서버: FooRequest
예시: PostOrderDetailRequest → Post / Order / Detail / Request (주문 상세에 대한 정보를 서버로 요청할 때 사용하는 인터페이스)
모양이 같다고 다 같은 타입으로 쓰지 않음 → 구조적 동일성과 시맨틱을 분리하여, 변경에 열려 있도록 함
구조적 동일성과 시맨틱을 분리함: 서버로 보낼 때 쓰는 PostOrderRequest와 서버에서 받아온 개별 Order 타입이 동일한 구조를 갖고 있다고 해서, Order를 모든 곳에 쓰지 않음 → type alias를 사용해서 타입에 의도를 보존해 둠
export type GetOrderDetailResponse = Order;
TypeScript
복사
서버 인터페이스(Response)와 클라이언트 인터페이스(Entity) 개념을 분리하여 변경 유연성 확보
export interface ItemEntity {} export interface ItemsResponse { items: ItemEntity[]; }
TypeScript
복사