2025. 2. 11. 08:20ㆍKotlin Project/초성마켓
https://github.com/KwonGeneral/chosungmarket.git
GitHub - KwonGeneral/chosungmarket: 초성마켓
초성마켓. Contribute to KwonGeneral/chosungmarket development by creating an account on GitHub.
github.com
이번 포스트에서 다룰 내용은 '초성마켓' 프로젝트의 전체적인 구조에 대해서 다룰까 합니다.
* 해당 프로젝트는 android stuido, kotlin, 라이브러리 등 모두 최신 버전을 사용했습니다.
클린 아키텍처를 차용했으며, data & domain & presenter 총 3개의 레이어가 핵심입니다. common은 공용 유틸이나 type을 다루고 있으며, di는 의존성 역전에 관한 코드를 다루고 있습니다. 참고로 이번 프로젝트에서는 koin을 사용했습니다.
이번 프로젝트에서는 백엔드를 따로 구축하지 않고, Firebase의 Firestore만을 사용해서 DB를 구현하고 이용했습니다.
- quizList: 퀴즈 목록
- userList: 유저 목록
- userList>{userId}>quizGroupList: 퀴즈 그룹 목록
- userList>{userId}>quizResultList: 퀴즈 결과 목록
현재 DB 구조는 위와 같이 구성했습니다.
data 레이어는 위와 같이 구성되어있습니다. db 패키지에는 Firestore와 연결하기 위한 클래스와 내부 DB가 있으며, mapper 패키지에는 클라이언트의 model과 Firestore의 data를 상호 변환하기 위한 코드를 다루고 있습니다.
repository 패키지는 domain 레이어에서 정의한 인터페이스를 구현하는 구현체 코드가 있습니다.
domain 레이어는 위와 같이 구성되어있습니다. model 패키지는 정의한 인터페이스에서 필요한 data class를 다루고 있습니다. repository 패키지에는 프로젝트의 시나리오에 필요한 인터페이스를 정의한 코드가 담겨있습니다.
usecase 패키지에는 시나리오 & 비즈니스 로직이 담긴 코드를 다루고 있습니다.
presenter 레이어는 위와 같이 구성되어있습니다. page 패키지에는 시나리오에 따른 페이지 UI와 ViewModel 코드가 담겨있습니다. widget 패키지에는 프로젝트 UI에서 공통적으로 사용할 위젯이 담겨져있습니다.
route 패키지에는 라우터 코드가 있는데, 해당 프로젝트에서는 라우트를 한 곳에서 집중 관리하기 위해 따로 만들어서 사용하고 있습니다.
이번 포스트는 현재까지 개발한 프로젝트 구조를 간단하게 설명한 글입니다~
다음 포스트는, 제가 몇 개월만에 다시 Kotlin으로 개발하고, 또 Compose 등 새로운 지식을 습득하면서 검색하고 공부했던 지식들을 간단하게 글로 작성해보겠습니다~!
'Kotlin Project > 초성마켓' 카테고리의 다른 글
[Kotlin Project] 초성마켓 - 디자인 탐색 (0) | 2025.02.20 |
---|---|
[Kotlin Project] 초성마켓 - 명예의 전당 개발 (0) | 2025.02.19 |
[Kotlin Project] 초성마켓 - 홈, 퀴즈 페이지 개발 (0) | 2025.02.10 |
[Kotlin Project] 초성마켓 - 로그인 페이지 개발 (0) | 2025.02.07 |
[Kotlin Project] 초성마켓 - 클린 아키텍처 적용: DI (0) | 2025.02.07 |