Skip to content

1. Domain

Moony-H edited this page Feb 28, 2023 · 12 revisions

Domain


도메인은 어느 라이브러리에도 의존성을 가지지 않고(심지어 안드로이드 라이브러리도!) 순수 코틀린 코드로 이루어진 layer입니다.

이 앱이 어떤 일을 할 것인지를 결정하는 비즈니스 로직을 포함하고 있습니다.

시작

이 Domain은 optional로서 구현이 필요 하지 않은 프로젝트가 있을 수 있습니다. 아래는 안드로이드에서 권장하는 아키텍쳐 가이드 입니다.



Android Architecture Guide



android architecture guide

출처: https://developer.android.com/topic/architecture?hl=ko


위의 그림처럼 필수는 아니며 앱을 동작하는데 필요한 로직들이 많지 않는다면 구현을 안하는 것이 좋을 것 같습니다.

이번 프로젝트도 복잡한 로직이 없어 Domain Layer가 필요하지 않지만, 예시를 위해 작성하였습니다.



Convention과 패키지


제가 정의한 클래스들을 구분하기 위해 접미어에 특정 키워드를 붙여 정의하였습니다.

도메인 레이어에서는 아래와 같은 규칙이 있습니다.



Query

api에 요청을 할 때 필요한 Parameter입니다.

Body

api에 요청한 후 응답의 body값 입니다.

Info

api와는 별개로 프로젝트 전체를 통틀어 사용할 데이터 타입을 정의한 클래스입니다.

UseCase

비즈니스 로직을 포함하고 있는 클래스입니다. 데이터를 받아서 무엇을 할지 결정합니다.

Repository

데이터를 받아오기 위한 창구 역할을 하는 클래스입니다.



이렇게 컨벤션을 정한 다음 아래와 같이 패키지를 구성하였습니다.



스크린샷 2023-03-01 오전 12 31 21

Clone this wiki locally