---
id: P-REINFORCE-AI-CLEANARCH-TS
category: "[[10_Wiki/💡 Topics/Software Architecture]]"
confidence_score: 0.99
tags: [TypeScript, Clean Architecture, Type Safety, Mapping]
last_reinforced: 2026-04-20
---

# [[Clean-Architecture-TypeScript]] (타입스크립트와 클린 아키텍처)

## 📌 한 줄 통찰 (The Karpathy Summary)
> 타입스크립트의 강력한 타입 시스템은 클린 아키텍처의 '레이어 간 경계'를 물리적으로 강제하는 가장 완벽한 감시자다.

## 📖 구조화된 지식 (Synthesized Content)
- **Domain Interface First**:
    - Use Case는 구체적인 레포지토리가 아닌, 타입스크립트 `interface`에만 의존하게 설계하라. 이렇게 하면 테스트 작성 시 가짜(Mock) 객체를 갈아 끼우는 것이 숨 쉬듯 쉬워진다.
- **Data Transfer Object (DTO) Mapping**:
    - DB 엔티티 타입을 UI까지 그대로 끌고 가지 마라. 레이어를 넘나들 때마다 `Mapper`를 통해 필요한 데이터만 추출한 전용 타입을 사용해야 '오염'을 막을 수 있다.
- **Branded Types for ID**:
    - `UserId`, `OrderId`를 단순한 `string`이 아닌 고유 타입으로 정의하여, 실수로 유저 ID 칸에 주문 ID를 넣는 실수를 컴파일 타임에 잡아낸다.

## ⚠️ 모순 및 업데이트 (RL Update)
- 과도한 'Mapping'은 런타임 성능과 개발 시간을 소모한다. 도메인과 데이터 계층의 모양이 90% 이상 일치한다면, 무리하게 분리하기보다 `Pick`이나 `Omit` 유틸리티 타입을 활용하여 유연하게 대응하는 것이 실용적이다.

## 🔗 지식 연결 (Graph)
- Related: [[TypeScript_Type_Safety]] , [[React_State_Management_Strategy]]
- Foundation: [[Clean-Architecture-Implementation]]
