Skip to content

커머스 도메인에서 발생하는 다양한 이슈와 성능 개선(쿼리튜닝, 캐싱), 가용성, 클린코드를 학습한 프로젝트

Notifications You must be signed in to change notification settings

devtaebong/commerce-market

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

commerce-market

마켓플레이스 형태의 커머스 프로젝트입니다. 서버 관련 학습에 집중하기 위해 클라이언트는 카카오 오븐을 이용해 프로토타입으로 제작했습니다.

자세한 구현 내용은 Pull Requests에서 확인해주시면 감사하겠습니다.

프로젝트 구조

프로젝트구조

사용 기술 및 개발환경

Java11, Spring Boot 2.x, Gradle, JPA, Redis, MySQL, OAuth 2.0, Docker, Jenkins, Naver Cloud Platform

프로젝트 주요 관심사

  • 관심사를 분리하여 코드의 유지보수성을 향상시키기 위해 노력했습니다.
  • 대용량 트래픽의 상황을 가정하여 서버 성능을 개선하기 위해 노력했습니다.
  • 성공하는 테스트 뿐만 아니라, 실패 테스트를 작성하여 테스트 커버리지를 향상시켰습니다.
  • 특정 기술을 도입하는데 명확한 이유와 근거를 기반으로 하였습니다.
  • 기술에 적용된 다양한 디자인 패턴을 학습하여 객체지향 원리를 이해하기 위해 노력했습니다.

기술적 이슈와 해결과정

브랜치 전략

브랜치 전략은 Git-flow를 사용했습니다. Git-flow에는 항상 유지되는 메인 브랜치(main, develop)와 일정 기간 동안 유지되는 보조 브랜치(feat, release, hotfix)로 총 5가지 종류의 브랜치가 있습니다.

해당 프로젝트는 서비스 운영을 목적의 목적이 아니었기 때문에 develop, release, hotfix와 같이 불필요한 브랜치를 사용하지 않고 feat 브랜치를 직접 main 브랜치로 병합하는 방식을 사용했습니다.

또한 병합 과정에서 rebase를 사용하여 커밋 트리를 단순화시켰습니다. 자세한 내용은 wiki를 참고해주시면 감사하겠습니다.

DB ERD

ERD ERD 설계 과정

유스케이스 다이어그램

유스케이스다이어그램

유스케이스 설명

화면 프로토타입

화면프로토콜 drawio

About

커머스 도메인에서 발생하는 다양한 이슈와 성능 개선(쿼리튜닝, 캐싱), 가용성, 클린코드를 학습한 프로젝트

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%