-
Notifications
You must be signed in to change notification settings - Fork 1
Modulization
bmsk edited this page May 23, 2023
·
3 revisions
카자잇의 모듈화에 대한 위키입니다.
먼저 모듈화를 통해 얻고자 하는 목표를 확실히 정의해야 했습니다. 모듈화는 코드의 재사용성, 관리성, 의존성 분리 등을 통해 프로젝트의 가독성과 유지 관리를 개선할 수 있습니다. 따라서 이러한 이점을 최대한 활용하려면 각 모듈이 어떤 기능을 담당할지, 어떤 의존성을 가질지 미리 계획해야 합니다.
+------+
| app |
+--+---+
|
+--v---+
| data |
+--+---+
|
+----------+----------+
| |
+---v---+ +-----v----+
|network| | database |
+---+---+ +-----+----+
| |
+----------+----------+
|
+---v---+
| model |
+-------+
모듈 간의 관계를 도식화한 것입니다. 이러한 모듈 구성은 "Clean Architecture" 패턴을 따르고 있습니다
- "app" 모듈은 프레젠테이션 계층을 나타냅니다. 이곳에서는 UI와 사용자 상호작용을 처리합니다. 이 모듈은 다른 모듈에 의존하며, 이를 통해 사용자 인터페이스를 통한 데이터 표시와 사용자 입력 처리를 수행합니다.
- "domain" 모듈은 비즈니스 로직을 처리하며, 이를 위해 "data" 모듈에 의존합니다.
- "data" 모듈은 데이터를 제공하며, 이를 위해 "network" 모듈과 "database" 모듈에 의존합니다.
- "network" 모듈과 "database" 모듈은 각각 네트워크 통신과 데이터베이스 액세스를 처리하며, 이를 위해 "model" 모듈에 의존합니다. "model" 모듈에서는 이들 모듈에서 사용하는 데이터 모델이 정의됩니다.
Android Studio에서는 새로운 모듈을 만드는 것이 매우 간단합니다. 'File' > 'New' > 'New Module...'을 선택하여 새 모듈을 만들 수 있습니다. 각 모듈은 자체 build.gradle 파일을 가지며, 이 파일에서는 해당 모듈의 의존성과 빌드 설정을 관리합니다.
새로운 모듈이 생성되면 기존 코드를 적절한 모듈로 이동해야 합니다. 이 과정은 주로 클래스와 리소스 파일을 적절한 위치로 드래그 앤 드롭하는 것으로 이루어집니다. 의존성 관리하기: 모듈화는 의존성 관리를 복잡하게 만들 수 있습니다. 일부 모듈은 다른 모듈에 의존할 수 있으며, 이러한 의존성은 각 모듈의 build.gradle 파일에서 관리됩니다. 특히 공통적으로 사용되는 라이브러리는 공통 모듈에 위치시키는 것이 좋습니다.
모듈화 후에는 기능이 올바르게 동작하는지 확인하기 위해 충분한 테스트가 필요합니다. 모듈화는 코드의 구조를 크게 바꾸므로, 이 과정에서 예상치 못한 문제가 발생할 수 있습니다.