f-lab-edu / Goods-For-You

중고 굿즈 상품을 간단하고 쉽게 판매 등록 및 구매,교환 할 수 있도록 구축한 플랫폼입니다.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Goods-For-You

K-POP 스타뿐만 아니라 인플루언서 및 스포츠스타들의 굿즈 등을 간단하고 쉽게 판매 등록 및 구매,교환 할 수 있도록 구축한 플랫폼입니다.

🛑 Goods-For-You 서버는 서버 비용 문제로 (23-07-05)이후로 서버 운영을 중지 했습니다. 🛑

🎯 프로젝트 목표

코드 컨벤션

  • Naver Code Style을 적용해, 준수합니다
  • Check Style 플러그인을 적용해 코드 컨벤션을 유지합니다.

대용량 트래픽과 고가용성을 고려한 서버 구조 설계

  • 단순히 기능 구현만을 하는것이 아닌, 현재 개발하는 서비스가 성장하여 대용량 트래픽을 견뎌야 할 상황을 고려 해 서버 구조를 설계하려 노력했습니다.

재사용과 유지보수에 용이한 구조를 설계하고 코드를 작성하려 합니다.

  • Layered Architecture의 단점을 보완하기 위해 Hexagonal Architecture를 적용하여, 외부 환경의 변화에 애플리케이션 코드가 영향을 받지 않도록 구현하려 했습니다.

테스트의 중요성

  • 테스트의 중요성을 깨닫기 위해, 프로젝트에서는 테스트 커버리지를 70% 이상을 유지하기 위해, Jacoco와 Github Action을 이용해, 테스트 커버리지가 70% 이상을 유지하지 못할 시, 해당 코드는 빌드 실패하도록 Github Action을 설정했습니다.
  • 유닛 테스트 코드를 꼼꼼하게 작성함으로써, 서비스의 기능이 추가되고 수정됨에 따라 생길 수 있는 사이드 이펙트를 최소화 시켰습니다.
  • 테스트 커버리지를 유지하고, 테스트 코드를 작성하면서 테스트에 대해 개인적인 생각을 정리한 블로그 입니다.링크

프로젝트 문서화

  • 프로젝트를 진행하면서 작성한 부가적인 내용들을 위키에 정리하였습니다.
  • 해당 링크를 참고해주세요😊

프로젝트를 진행하면서 발생한 이슈에 대한 고민과 해결 과정

Github Action을 통한 CI/CD

  • Github Action을 통한 CI/CD를 구축함으로써, 자동으로 Push된 코드를 테스트 하고, 배포하는 과정을 구축했습니다

🛠사용 기술

  • Java17
  • SpringBoot 3
  • Gradle
  • Mysql
  • Mybatis
  • Redis
  • Docker-Compose
  • Naver Cloud Platform

프로젝트 화면 구성

  • 카카오 오븐으로 구성한 화면 프로토 타입입니다 상세한 내용은 Wiki를 참고해주세요

0105114308696542

유즈 케이스

About

중고 굿즈 상품을 간단하고 쉽게 판매 등록 및 구매,교환 할 수 있도록 구축한 플랫폼입니다.

License:MIT License


Languages

Language:Java 99.9%Language:Dockerfile 0.1%