-
Notifications
You must be signed in to change notification settings - Fork 0
1. Domain
Moony-H edited this page Feb 28, 2023
·
12 revisions
도메인은 어느 라이브러리에도 의존성을 가지지 않고(심지어 안드로이드 라이브러리도!) 순수 코틀린 코드로 이루어진 layer입니다.
이 앱이 어떤 일을 할 것인지를 결정하는 비즈니스 로직을 포함하고 있습니다.
이 Domain은 optional로서 구현이 필요 하지 않은 프로젝트가 있을 수 있습니다. 아래는 안드로이드에서 권장하는 아키텍쳐 가이드 입니다.
Android Architecture Guide
출처: https://developer.android.com/topic/architecture?hl=ko
위의 그림처럼 필수는 아니며 앱을 동작하는데 필요한 로직들이 많지 않는다면 구현을 안하는 것이 좋을 것 같습니다.
이번 프로젝트도 복잡한 로직이 없어 Domain Layer가 필요하지 않지만, 예시를 위해 작성하였습니다.
제가 정의한 클래스들을 구분하기 위해 접미어에 특정 키워드를 붙여 정의하였습니다.
도메인 레이어에서는 아래와 같은 규칙이 있습니다.
- Query
api에 요청을 할 때 필요한 Parameter입니다.
- Body
api에 요청한 후 응답의 body값 입니다.
- Info
api와는 별개로 프로젝트 전체를 통틀어 사용할 데이터 타입을 정의한 클래스입니다.
- UseCase
비즈니스 로직을 포함하고 있는 클래스입니다. 데이터를 받아서 무엇을 할지 결정합니다.
- Repository
데이터를 받아오기 위한 창구 역할을 하는 클래스입니다.
이렇게 컨벤션을 정한 다음 아래와 같이 패키지를 구성하였습니다.