Files
2nd/AI/Clean-Architecture-TypeScript.md
T

1.7 KiB

id, category, confidence_score, tags, last_reinforced
id category confidence_score tags last_reinforced
P-REINFORCE-AI-CLEANARCH-TS 10_Wiki/💡 Topics/Software Architecture 0.99
TypeScript
Clean Architecture
Type Safety
Mapping
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)