1. 유지보수성 : 모듈화된 시스템 구조와 명확한 계층 구분으로 코드 변경이나 유지보수가 용이해집니다. 특정 부분을 수정하더라도 해당 부분과 직접적으로 관련된 영역만 수정하면 되므로 전체 시스템에 영향을 미치는 리스크가 줄어듭니다.
2. 확장성 및 유연성 : 각 계층이 분리되어 있고, 의존성 규칙을 따르기 때문에 새로운 요구사항에 따라 시스템을 쉽게 확장하고 변경할 수 있습니다. 새로운 기능 추가나 기존 기능 변경 시에도 다른 부분에 미치는 영향을 최소화할 수 있습니다.
3. 테스트 용이성 : 모듈 간의 명확한 경계와 인터페이스를 통해 단위 테스트, 통합 테스트 등이 용이해집니다. 의존성 역전 원칙을 따르면 테스트하기 쉬운 코드를 작성할 수 있습니다.
4. 비즈니스 중심성 : 클린 아키텍처는 비즈니스 로직이 시스템의 핵심이 되도록 유도합니다. 비즈니스 요구사항을 더 잘 반영하며, 시스템을 설계할 때 비즈니스 가치를 중심으로 고려할 수 있습니다.
5. 기술적 부채 감소 : 초기에 추가 작업이 필요하지만 시스템 전반의 코드 품질을 향상시키고 기술적 부채를 줄여줍니다. 따라서 시스템의 장기적인 유지보수 및 확장성을 향상시킵니다.
6. 도구 독립성 : 각 계층의 경계를 명확하게 하여 다양한 도구와 프레임워크를 도입하거나 교체할 수 있습니다. 이로써 시스템은 특정 기술에 종속되지 않고 미래의 변경에 대비할 수 있습니다.
7. 팀 협업 개선 : 각 계층의 명확한 역할과 책임으로 인해 팀 간 협업이 향상될 수 있습니다. 서로의 업무를 더 명확하게 이해하고 분담할 수 있습니다.
8. 변경 관리 용이성 : 시스템 내부의 변경이 다른 부분에 미치는 영향을 예측하기 쉬워져서 변경 관리가 용이해집니다.
'프로그래밍 > Clean Architecture' 카테고리의 다른 글
Android에 Clean Architecture 도입하기 (0) | 2023.08.29 |
---|---|
Clean Architecture에 대한 개인적인 생각 (0) | 2023.08.29 |
Clean Architecture 도입시 고려할 점 (0) | 2023.08.29 |
Clean Architecture 단점 (0) | 2023.08.29 |
Clean Architecture 정의 (0) | 2023.08.29 |