대한민국의 주요 편의점 상품을 한 곳에 모아😋
- 편의점 제품에 대한 리뷰 게시판을 제공합니다. 해당 게시판에 본인이 소비한 편의점 제품에 대한 리뷰를 남길 수 있습니다. 다른 유저들은 해당 리뷰에 대해 댓글을 달 수 있습니다.
- CU, GS25, Seven-Eleven, Ministop, Emart24 편의점의 이번 달 행사상품을 실시간으로 제공합니다.
- 사용자의 위치 기반으로 본인에게 가장 가까운 편의점을 알려줍니다.
- 편의점 상품으로 만든 레시피 게시판을 제공합니다. 사용자들은 해당 게시판에서 본인이 편의점 상품을 조합해 만든 음식 레시피 상세 정보를 업로드할 수 있습니다.
- 이메일: dnr2144@gmail.com
- 개발 기간: 2021.09.03 ~ 2021.11.25
- Github
- Client: https://github.com/dnr2144/cs_moa-back
- Backend: https://github.com/dnr2144/csmoa-back
- Android
- Kotlin: 1.5.10
- Gradle: 7.0.3
- Minimum SDK: 26
- Target SDK: 30
- Java: 1.8 SE
- Kotlin: 1.5.10
- Android Studio: 4.2.1
- SpringBoot
- SpringBoot: 2.5.6
- Java: 11
- Gradle:
- Django: 3.2.7
- MySQL: 8.0.26
- Client
- Android
- Retrofit(Network Communication)
- Kotlin
- JUnit(Test)
- Coroutine
- ViewModel + LiveData(MVVM)
- Data Store(Local Device NoSQL)
- SQLite3(Local Device RDB)
- Kakao Map
- Backend
- Nginx(Reverse Proxy Server)
- Junit(Test)
- MySQL(RDB)
- Spring Boot(API Server)
- JDBC Template
- Firebase Storage
- OAuth2.0 + JWT(Login)
- Django
- Selenium
- Beautiful Soup
본 프로젝트에서는 안드로이드 비즈니스 로직 개발 / API Server 개발 / Infra / 기획 및 설계를 담당했습니다.
프로젝트 구조는 다음과 같습니다.
Github Action에서 제공하는 Django Server를 이용해, CU, GS25, Seven-Eleven, Ministop, Emart24 웹 페이지에서 행사 상품 정보를 날마다 가져온 후 가공해서 RDB에 넣는다.
- Github Action의 Cron 기능을 사용해서 매일 9시마다 5개 편의점에서 데이터를 가져와서 가공한 후, MySQL RDB에 업데이트됩니다.
Android Application에서 요청한 데이터를 JSON으로 response한다.
구조는 다음과 같습니다.
- Config: project congifuration을 관리.
- BaseException: custom exception message를 관리한다.
- Util: 자주 사용하는 util 기능을 모듈화해 관리한다.
- API
- Controller: API를 관리.
- Service: domain에 정의한 비즈니스 로직 호출 순서를 관리.
- repository: domain + JDBC Template을 관리.
- DTO: request/response dto를 관리.
구글/카카오 oauth provider를 사용해 불필요한 회원가입 프로세스를 제거. JWT Token을 사용해 Authorization Header 기반 인증 시스템을 구현.
구조는 다음과 같습니다.
- 이름/이메일/사진 3가지 정보만 oauth provider에 요청해, token 유출에 따른 보안 문제를 최소화했습니다.
로컬 로그인, 구글 로그인, 카카오 로그인을 할 수 있습니다. 로컬 로그인을 할 경우에는 회원가입을 해야합니다.
사용자가 편의점 제품을 리뷰를 작성하고, 해당 리뷰에 댓글 및 대댓글을 달 수 있는 제품 리뷰 게시판입니다.
현재 대한민국 주요 편의점에서 행사 하고 있는 제품 리스트를 보여주고, 상세 정보 페이지에서는 해당 제품 상세 정보 및 비슷한 제품 추천 서비스를 제공합니다.
편의점에서 파는 제품을 조합해 만든 레시피를 다른 유저와 공유할 수 있는 꿀조합 레시피 게시판입니다.
사용자 프로필 정보를 수정할 수 있습니다. 보안을 위해 수정할 수 있는 정보는 프로필 이미지와 닉네임으로 한정했습니다.