-
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가 필요하지 않지만, 예시를 위해 작성하였습니다.
제가 정의한 클래스들을 구분하기 위해 접미어에 특정 키워드를 붙여 정의하였습니다.
도메인 레이어에서는 아래와 같은 규칙이 있습니다.
api에 요청을 할 때 필요한 Parameter입니다.
api에 요청한 후 응답의 body값 입니다.
api와는 별개로 프로젝트 전체를 통틀어 사용할 데이터 타입을 정의한 클래스입니다.
비즈니스 로직을 포함하고 있는 클래스입니다. 데이터를 받아서 무엇을 할지 결정합니다.
데이터를 받아오기 위한 창구 역할을 하는 클래스입니다.
이렇게 컨벤션을 정한 다음 아래와 같이 패키지를 구성하였습니다.