-
Notifications
You must be signed in to change notification settings - Fork 0
About Multi Module
application 모듈 자체가 실행가능함.
application 모듈은 하나만 되고, 아래 이미지와 같이 app 모듈만 실행되고,
app이 나머지 모듈을 땡겨서 사용하는 방식
나머지 기능들을 library로 정의. app 모듈이 다른 모듈을 참조하고 있다.
App / Data / Domain / Core/ Feature
BuildSrc(버전 관리를 위해 쓰는 독립적인 모듈?)
-
App : di (하위에는 Mudule들이 들어가있음)
-
Feature : UI, viewmodel, view 들이 들어가는 곳
-
Data : Local, Remote 즉, Model임
-
repository Impl
-
서버통신 관련
-
Model -> Entity 변환하는 공간이 Data Module
-
Mapper 의 코드가 Data안에 있음
📌 Model(서버에서 가져오는 데이터 형식)
📌 Entity(가공해서 쓰는 것)
-
-
Core : Util 파일 들어감
-
Domain
-
UseCase 같은거 들어가는곳 (여기서 mapper의 코드를 가져다 씀. mapper 를 통해서 번역을 하는 느낌)
-
repository interface
-
데이터 가공용
-
순수 코틀린으로 작성되어야한다
-
Mapper의 실 사용이 일어나는 곳
-
Clean Architecture에서 얘기하는 3Layer(data/ domain / view )
이게 우리의 Feature Data Domain과 유사한 구조다.
멀티모듈을 사용하면 build.gradle 파일이 많아 지는데, 여기서 공통적으로 사용하는 코드들은 이걸 common.gradle에 정의 가능하다.