Atlas 사례 개요
Atlas 사례를 읽기 전에 최소한으로 알아야 할 것들. 깊은 제품 설명이 아니라, 하네스 맥락을 잡기 위한 최소 컨텍스트다.
Atlas가 하는 일 제품 맥락
Atlas는 문서를 열고, 편집하고, 저장하고, 인덱싱하는 데스크탑 앱이다. 로컬 파일을 다루고, 검색과 태그 기능이 있다.
계층 구조 layered architecture
핵심 용어
| 용어 | 의미 |
|---|---|
| UseCase | 하나의 사용자 시나리오를 처리하는 Application 계층 객체 |
| Command | UseCase에 전달되는 입력 데이터 객체 |
| IDocumentRepository | Document 저장/조회를 위한 인터페이스 (Domain 계층 정의) |
| FileDocumentRepository | IDocumentRepository의 Infrastructure 구현체 |
| Store | UI 상태를 보관하고 변경 이벤트를 발행하는 객체 |
| Bridge | UI ↔ Application 간 통신 인터페이스 |
DI 구성 composition root
구현체 선택은 Composition Root(앱 시작 시점)에서만 일어난다.
// Composition Root
services.AddScoped<IDocumentRepository, FileDocumentRepository>();
services.AddScoped<IOpenDocUseCase, OpenDocUseCase>();Application 계층 코드는 IDocumentRepository만 알고, FileDocumentRepository는 절대 직접 참조하지 않는다.
이 구조를 머릿속에 두고 각 우회 패턴을 읽으면, 어떤 경계가 어디서 무너지는지 바로 보인다.
→ Atlas 패턴 묶음으로 계속