사용자가 설정한 지역의 이벤트와 행사를 추천해주는 서비스 입니다.
백엔드 로직에 집중하기 위해서 화면은 프로토타입으로 설계하였으며
REST API 서버로 대용량 트래픽을 고려한 애플리케이션으로 개발하였습니다.
보다 더 자세한 사항은 WIKI 에서 확인이 가능합니다.
- Spring Boot
- Java 8
- MySQL
- Mybatis
- Maven
- Redis
- Naver cloud platform
- Google cloud platform
- AWS S3
- Firebase
- Docker
- nGrinder
- intellij IDEA
화면설계에 대한 kakao oven 프로토타입 디자인과 Usecase를 보실 수 있습니다. API에 대한 상세하게 설명해두었으며 기술적인 문제에 부딪혀 해결한 이야기에 대한 개인 테크블로그의 주소도 포함되어있습니다.
- click!
▶️ Usecase - click!
▶️ WIKI Home - click!
▶️ 이슈해결을 정리한 테크블로그 Posts by 이지은(Jane) - click!
▶️ 이슈해결을 정리한 테크블로그 Posts by 최윤정(Yo0oN) - click!
▶️ API 상세스펙 - click!
▶️ PR규칙
✔️ 대용량 트래픽의 상황에서 지속적인 서버 성능을 개선하기 위해 노력하였습니다.
✔️ 클린코드를 위한 꾸준한 코드 리팩토링을 진행 중입니다.
✔️ 이유와 근거가 명확한 기술의 사용을 지향합니다.
✔️ 객체지향적 개념을 이해하고 이를 코드에 녹여내어 의미있는 설계를 지향하였습니다.
✔️ 성공만 하는 테스트 보단 실패할 만한 단위 테스트를 작성하였습니다.
✔️ 반복적인 작업은 자동화하여 개발의 효율을 높이기 위해 노력하였습니다.
Git-Flow 브랜치 전략에 따라 기능별로 브랜치를 나누어 작업하고 있고 모든 브랜치에 대해 pull request를 통한 리뷰 완료 후 Merge를 하고 있습니다.
✅ master : 제품으로 출시될 수 있는 브랜치를 의미합니다.
✅ develop : 다음 출시 버전을 개발하는 브랜치입니다. feature에서 리뷰완료한 브랜치를 Merge하고 있습니다.
✅ feature : 기능을 개발하는 브랜치
✅ release : 이번 출시 버전을 준비하는 브랜치
✅ hotfix : 출시 버전에서 발생한 버그를 수정하는 브랜치
- 우아한 형제들 기술블로그 "우린 Git-flow를 사용하고 있어요"
https://woowabros.github.io/experience/2017/10/30/baemin-mobile-git-branch-strategy.html
- 신규개발 건은
develop
을 base로feature/#이슈번호
의 브랜치명으로 생성 후 작업한 다음 PR을 날립니다. - 아직 개발 진행 중이라면
In Progress
라벨을 달고, 코드리뷰가 필요한 경우Asking for Review
라벨을 답니다. 리뷰 후 리팩토링이 필요하다면 추가로refactoring
라벨을 달아 진행합니다. - 모든 PR은 반드시 지정한 리뷰어에게 코드리뷰를 받아야만 합니다.
- 리뷰어 중 1명 이상의
Approve
를 받아야Merge pull request
를 할 수 있습니다. commit
을 할 때마다 Jenkins CI가 자동으로 실행되며 단위테스트, 통합테스트에 모두 통과되어야Merge pull request
가 가능합니다.
빌드와 테스트를 자동화 하여 개발 효율성을 높일 수 있도록 젠킨스를 활용하였습니다. 아래의 주소를 통해 젠킨스 status 확인이 가능합니다.
✔️ Jane096's Jenkins : http://34.64.107.105:8081/
✔️ Yo0oN's Jenkins : http://34.64.243.124:8082/
✅ 네이버에서 개발한 오픈소스 플랫폼인 nGrinder를 이용해 성능테스트를 진행 중입니다.
DB 테이블 설계: https://docs.google.com/spreadsheets/d/19-vpLojODE6La68Jk_XspwSI7-4wW4TMxH7wVmMMXQU/edit?usp=sharing