Skip to content
This repository has been archived by the owner on Aug 13, 2022. It is now read-only.

[퓨처위즈 합격, 초봉 4000 이상] 헬스 같이 할 동네 친구 매칭 시켜주는 서비스

Notifications You must be signed in to change notification settings

f-lab-edu/healthmate-finder

Repository files navigation

💪 healthmate finder 'Helparty'

"나의 헬스 친구 Helparty"

운동을 하는 사람들은 모두 헬스장을 가야겠다는 생각을 하지만 발이 떨어지지 않는 경험을 한 적이 있을 겁니다. 그리고 이럴 때 나랑 같이 다닐 친구가 있다면 좋을 텐데라고 혼자 생각하고 말았을 겁니다. 그래서 만들었습니다. 헬스 같이 할 동네 친구 매칭 시켜주는 서비스 'Helparty' 입니다!

프로젝트의 전체적인 구조

프로젝트 구조도 (2)

DB ERD

helparty erd

프로젝트 목표

  • 성능을 생각하면서 효율적인 코드를 작성하도록 노력하였습니다.
  • 객체지향 원칙을 따르며 확장성 있는 코드를 작성하고자 하였습니다.
  • 대용량 트래픽을 감당할 수 있는 인프라를 구축하고 안정적인 서비스를 만들고자 노력했습니다.
  • 협업을 한다는 가정하에 다른 사람들이 쉽게 알아볼 수 있도록 코드 작성하는 것에 유의하였습니다.
  • 고립된 테스트 코드 작성으로 다른 코드에 의존적이지 않은 테스트를 진행하였습니다.

사용 기술

  1. Java 11
  2. Spring Boot
  3. JUnit
  4. MySQL
  5. MyBatis
  6. Redis
  7. Jenkins
  8. Naver Cloud

프로젝트 중점 사항

  • GitFlow를 이용한 병렬적 개발 방식
  • 코드의 목적을 쉽게 알 수 있는 메서드 네이밍
  • 객체지향 코드 작성법으로 확장성 유지
  • 작성된 Layer에 고립시켜 의존적이지 않은 단위 테스트 작성
  • 반복되는 로직을 핵심 로직으로부터 분리 (feat. AOP, ArgumentHandlerResolver, Interceptor)
  • 젠킨스를 사용한 CI/CD 환경 구축
  • 하나의 클라우드 서버에 하나의 어플리케이션을 사용하여 높은 확장성 유지
  • 많은 사람들에 의해 중복될 페이지 조회에 Redis cache를 사용하여 성능 개선
  • Redis의 Session Server를 사용하여 Session 정합성 유지
  • Log4J2를 로그로 사용하여 서버의 부담 최소화
  • NginX의 Reverse-Proxy를 이용한 로드밸런싱 구현
  • DB Replication을 구현하여 DB 성능 향상
  • MySql쿼리의 실행계획 분석 후 쿼리튜닝을 통한 성능 향상

이슈 해결 과정

화면설계

kakao oven -https://ovenapp.io/view/ZmMg4lnHw2iVSxfO0UwY1NzTOkWoNsiZ/liSyR

Helparty 프로토타입

기능 정의

깃헙 플로우

About

[퓨처위즈 합격, 초봉 4000 이상] 헬스 같이 할 동네 친구 매칭 시켜주는 서비스

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published