1. 서론
웹 애플리케이션이 복잡해질수록 코드베이스가 거대해진다. 구조가 명확하지 않으면 유지보수와 확장성이 곧장 무너진다. 이 문제를 해결하기 위해 프론트엔드에도 클린 아키텍처를 도입한다. 클린 아키텍처는 코드의 가독성, 테스트 용이성, 재사용성을 크게 높여준다.
2. 클린 아키텍처란 무엇인가
클린 아키텍처는 소프트웨어를 계층으로 분리하고, 의존성을 내부에서 외부로만 흐르게 제한하는 설계 철학이다. 로버트 C. 마틴(“Uncle Bob”)이 제안했고, 핵심은 비즈니스 로직(도메인)을 UI나 DB 같은 외부 요소로부터 완전히 격리하는 것이다.
3. 왜 프론트엔드에 클린 아키텍처가 필요한가
- 확장성: 기능 추가 시 영향 범위를 최소화할 수 있다.
- 유지보수성: 버그 원인이 드러나기 쉽고 코드 읽기가 편해진다.
- 테스트 용이성: 순수 비즈니스 로직을 쉽게 단위 테스트할 수 있다.
- 협업 효율: 역할과 책임이 명확해져 각 팀원이 맡은 영역에 집중할 수 있다.
4. 클린 아키텍처의 핵심 원칙
4-1) 의존성 규칙(Dependency Rule)
- *안쪽 계층(inner layer)**은 **바깥쪽 계층(outer layer)**에 의존하지 않는다.