이 프로젝트는 네고왕 선착순 이벤트를 참고하여 개발된 서비스로, 선착순 쿠폰 발행 및 사용 기능을 중점적으로 다루고 있습니다.
- 고가용성 선착순 쿠폰 발행 및 사용 서비스를 구현하는 것이 목표입니다.
- 객체지향 원칙에 준수하며 유지 보수 용이한 코드를 작성하는 것을 목표로 합니다.
- Slice Test를 활용하여 각 모듈의 기능을 단위별로 테스트하는 것이 목표입니다.
- 대규모 트래픽에도 데이터 정합성을 유지하고 서비스 안정성을 보장하는것이 목표입니다.
✅ master : 릴리스 버전을 관리하는 메인 브랜치
✅ develop : 개발이 진행되는 통합 브랜치
✅ feature : 새로운 기능을 개발하는 브랜치
✅ hotfix : 실제 프로덕션에서 발생한 버그를 수정하는 브랜치
Reference : 우아한 형제들 기술블로그 : gitFlow
1000만건의 데이터를 대상으로 쿼리최적화 with. 복합인덱스, 커버링인덱스
쿼리 최적화를 했지만 부족하다면, Parallel Stream을 사용해보자
쿠폰 발급에 대한 동시성 처리 (1) - synchronized, pessimisti Lock, optimistic Lock
쿠폰 발급에 대한 동시성 처리 (2) - MySQL의 NamedLock, Redis의 분산락(Lettuce, Redisson)
NCP환경에서 Jenkins와 Docker로 CICD Pipeline 구축하기
@RequestBody는 어떻게 바인딩 되는걸까? (with. 디버깅 과정)
Request에 대한 validation과 Exception 처리에 대한 고찰
DATETIME vs TIMESTAMP 둘 중 어느것이 더 나을까?
private 메소드를 테스트하려 했지만, 문제는 테스트 코드 로직이었다.
Junit 테스트 중 Lock wait timeout exceeded 에러 발생
테스트코드도 코드이므로 합성을 통해 중복을 없애자
- feat : 새로운 기능 추가
- fix : 버그 수정
- docs : 문서 수정
- style : 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
- refactor : 코드 리팩토링
- test : 테스트 코드, 리팩토링 테스트 코드
- chore : 빌드 업무 수정, 패키지 매니저 수정