K-POP 스타뿐만 아니라 인플루언서 및 스포츠스타들의 굿즈 등을 간단하고 쉽게 판매 등록 및 구매,교환 할 수 있도록 구축한 플랫폼입니다.
🛑 Goods-For-You 서버는 서버 비용 문제로 (23-07-05)이후로 서버 운영을 중지 했습니다. 🛑
- Naver Code Style을 적용해, 준수합니다
- Check Style 플러그인을 적용해 코드 컨벤션을 유지합니다.
- 단순히 기능 구현만을 하는것이 아닌, 현재 개발하는 서비스가 성장하여 대용량 트래픽을 견뎌야 할 상황을 고려 해 서버 구조를 설계하려 노력했습니다.
- Layered Architecture의 단점을 보완하기 위해 Hexagonal Architecture를 적용하여, 외부 환경의 변화에 애플리케이션 코드가 영향을 받지 않도록 구현하려 했습니다.
- 테스트의 중요성을 깨닫기 위해, 프로젝트에서는 테스트 커버리지를 70% 이상을 유지하기 위해, Jacoco와 Github Action을 이용해, 테스트 커버리지가 70% 이상을 유지하지 못할 시, 해당 코드는 빌드 실패하도록 Github Action을 설정했습니다.
- 유닛 테스트 코드를 꼼꼼하게 작성함으로써, 서비스의 기능이 추가되고 수정됨에 따라 생길 수 있는 사이드 이펙트를 최소화 시켰습니다.
- 테스트 커버리지를 유지하고, 테스트 코드를 작성하면서 테스트에 대해 개인적인 생각을 정리한 블로그 입니다.링크
- 프로젝트를 진행하면서 작성한 부가적인 내용들을 위키에 정리하였습니다.
- 해당 링크를 참고해주세요😊
- 서버 확장 전략 어떤걸 선택해야할까?
- 다중 서버 환경에서 사용자 로그인 구현 시 세션 관리 방법으로 어떤걸 선택해야할까?
- 인증 방식으로 세션 VS 토큰 어떤걸 선택해야 할까?
- GoodsForYou 패키지 구조에 대한 고민(포트와 어댑터)
- CAP 이론을 바탕으로 NoSQL 을 적용 할 만한 포인트 고려
- 캐싱은 언제 적용하는게 좋을까?
- SQL Injection
- Builder 패턴?
- 테스트 커버리지를 70% 이상 유지하면서 느낀점
- 도커 컴포즈 사용시 DB 초기화 문제 해결 과정
- 테스트 시, Redis Session으로 인해 생긴 문제 해결
- JMeter를 통한 부하테스트
- 상품 목록 조회 시, 페이징 처리 성능 개선
- Github Action을 통한 CI/CD를 구축함으로써, 자동으로 Push된 코드를 테스트 하고, 배포하는 과정을 구축했습니다
- Java17
- SpringBoot 3
- Gradle
- Mysql
- Mybatis
- Redis
- Docker-Compose
- Naver Cloud Platform
- 카카오 오븐으로 구성한 화면 프로토 타입입니다 상세한 내용은 Wiki를 참고해주세요
- 프로젝트를 진행하면서 작성한 유즈 케이스 입니다