1.7 KiB
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 |
|
2026-04-20 |
Clean-Architecture-TypeScript (타입스크립트와 클린 아키텍처)
📌 한 줄 통찰 (The Karpathy Summary)
타입스크립트의 강력한 타입 시스템은 클린 아키텍처의 '레이어 간 경계'를 물리적으로 강제하는 가장 완벽한 감시자다.
📖 구조화된 지식 (Synthesized Content)
- Domain Interface First:
- Use Case는 구체적인 레포지토리가 아닌, 타입스크립트
interface에만 의존하게 설계하라. 이렇게 하면 테스트 작성 시 가짜(Mock) 객체를 갈아 끼우는 것이 숨 쉬듯 쉬워진다.
- Use Case는 구체적인 레포지토리가 아닌, 타입스크립트
- Data Transfer Object (DTO) Mapping:
- DB 엔티티 타입을 UI까지 그대로 끌고 가지 마라. 레이어를 넘나들 때마다
Mapper를 통해 필요한 데이터만 추출한 전용 타입을 사용해야 '오염'을 막을 수 있다.
- DB 엔티티 타입을 UI까지 그대로 끌고 가지 마라. 레이어를 넘나들 때마다
- 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