프로젝트 한줄 설명
- PM - 최민성
- Designer - 김성규
- Android - 오준택, 최창익, 이오형
- Backend - 오성진, 최민성
스크럼 회의록
- 2020/03/18
- 2020/03/25
- 2020/03/28
- 2020/03/31
API
View Demo · Report Bug · Request Feature
To get a local copy up and running follow these simple steps.
이 앱은 Clean Architecture 패턴으로 총 3개의 레이어로 구성되있습니다.
- Domain
- Data
- Presentation
UI 관련 패키지인 Presentation은 MVVM으로 설계했습니다. 우리는 유지보수 및 추후 확장성을 고려한 아키텍쳐를 선택했습니다. 의존성을 분리하고 모듈화를 위해 ViewModel을 활용한 MVVM 패턴을 적용했습니다. MVVM의 구성요소는 다음과 같습니다.
ViewModel이 사용할 데이터를 Usecase로부터 받아와서 맵핑합니다.
사용자 인터페이스를 담당합니다.
View와 Model을 DataBinding하며 Observable과 Notify를 통해 View에게 데이터 변경을 통지합니다.
Clean Architecture는 Presentation, Domain, Data 레이어로 구성됩니다. 이들 레이어는 위의 원형 그림에서 보다시피, 안으로만 의존성을 향합니다. 위 그림에 의하면, Presentation 레이어는 Activity/ Frgment/ UI Component, ViewModel을 가지고 있습니다. 화면을 보여주거나 액션을 받습니다. 플랫폼과 Domain 레이어에 의존적입니다. Domain 레이어는 비즈니스 로직을 처리합니다. Domain 레이어는 Usecase와 Entity를 가지고 있습니다. Usecase는 사용자가 화면을 조작하는 기능단위입니다. Domain 레이어는 원에서 가장 안쪽에 있으므로 다른 레이어에 대해 의존성이 없습니다. Data 레이어는 도메인에 필요한 모든 데이터를 조작하기 위한 레이어입니다. Repository와 DataSource를 가지고 있습니다. DataSource는 다시 내부 저장소에서 가지고 오는 LocalDataSource와 외부 API에서 가지고 오는 RemoteDataSource로 나뉩니다. Data 레이어는 Domain 레이어에 의존적입니다.
DI 프레임워크로 Koin을 사용했습니다. 코틀린을 위한 DI 라이브러리로 순수 코틀린만으로 작성되었으며 어노테이션 프로세싱 및 리플렉션을 사용하지 않기 때문에 Dagger에 비해 상대적으로 더 가볍습니다. 우리의 프로젝트의 크기가 크지 않기 때문에 Koin을 선택했습니다.
기본적으로 GitFlow 방식으로 프로젝트를 진행한다.
- Fork the Project
- Create your Feature Branch by dev branch (
git checkout -b feature/myFeature dev
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
MIT License
Copyright (c) 2020 김성규 오준택 이오형 최창익 오성진 최민성
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- 김성규 - [email protected]
- 오준택 - [email protected]
- 이오형 - [email protected]
- 최창익 - [email protected]
- 오성진 - [email protected]
- 최민성 - [email protected]
Project Link: project name