[ADR][가상] 아키텍처 의사 결정 기록: Feature 모듈에서 UI 모듈 분리 결정
07 May 2023
Contents:
Feature 모듈과 UI 모듈 분리 결정
작성일 : 2023-05-07
작성자 : 안정민
상태
- 수락됨(Accepted)
배경
- 프로젝트의 규모가 커지고, 다양한 기능 및 UI 컴포넌트가 추가되어 코드의 복잡성이 증가함
- 각 Feature 모듈 내에서 UI와 로직 코드가 섞여있어 가독성과 유지보수성이 떨어짐
- 각 Feature별 UI를 별도의 모듈로 분리하여 사용하려 함
결정
Feature 모듈에서 UI를 별도의 모듈로 분리하여 사용하기로 결정
이유
- 모듈화를 통해 코드의 가독성과 유지보수성을 향상시킬 수 있음
- UI와 비즈니스 로직을 분리함으로써 각 부분에 대한 책임이 명확해짐
- 독립된 UI 모듈을 통해 테스트가 용이해짐
결과 및 영향
Feature 모듈에서 UI를 별도의 모듈로 분리하면 다음과 같은 결과를 기대할 수 있습니다.
- UI와 비즈니스 로직을 명확하게 분리되어 개별적으로 관리할 수 있어 코드의 가독성이 증가하고, 유지보수가 용이해짐.
- 모듈 간의 책임이 명확해짐.
- 독립된 독립된 UI 모듈은 필요한 의존성만 가져 빌드 시간 감소를 통해 Preview 기능을 활용할 수 있음. 이를 통해 다양한 상태를 테스트하는 것이 용이해짐
- 비즈니스 로직의 테스트 코드 작성이 용이해짐
다음과 같은 사항에 대해 보완해야합니다.
- UI를 별도로 분리한 예제 코드 작성
- Tuist 템플릿 작성
- 원활한 Preview 환경 구축
결론
- 프로젝트의 규모가 커지고, Feature별로 코드가 복잡해질 경우, UI를 별도의 모듈로 분리하여 사용하는 것이 가독성, 유지보수성, 개발 시간 단축에 긍정적인 영향을 미칠 것으로 판단됨