/sell-everything

[NHN 클라우드 합격/신입] Spring Framework 기반 중고 거래 서비스 플랫폼

Primary LanguageJava



❓ Sell-Everything

  • 구매자와 판매자의 매칭을 통해 중고 물품을 거래하는 중고 물품 거래 서비스 플랫폼입니다.
  • 백엔드 개발에 좀 더 집중하기 위해, 서비스의 UI는 카카오 오븐 프로토타입으로 대체하였습니다.
  • 단순한 기능 개발보다, 분산 서버 환경에서 일어날 수 있는 다양한 이슈를 해결하며 서버의 성능을 개선하고, 유지보수성 높은 프로그램을 작성하기 위해 고민하며 개발하였습니다.

🏗️ System Architecture

server-architecture


✏️ 프로젝트 주요 관심사

  • 객체지향 특성과, 설계 원칙을 적용하여 낮은 결합도 & 높은 응집도를 가진 프로그램 설계
  • 백엔드 환경에서 발생할 수 있는 성능 저하 요소 분석 및 코드 개선을 통한 성능 튜닝
  • 테스트 자동화 및 지속적 배포/통합 프로세스를 적용하여 애자일 기반 프로젝트 진행
  • 이슈 기반의 일감 관리와 Pull-Request & 코드리뷰 기반의 점진적 프로그램 개발
  • 커밋 메시지 컨벤션을 적용하여 읽기 쉬운 작업 이력 생성
  • Git-flow를 적용한 전략적 브랜치 관리

📽️ Application UI


🌐 기술 및 개발 환경

  • IntelliJ
  • Spring Boot
  • Maven
  • MySQL
  • MyBatis
  • Redis
  • JUnit
  • Jenkins

🤔 프로젝트 진행 중 고민한 Technical Issues

  1. 분산 서버 환경의 세션 정합성 관리
  2. Redis 캐시를 통해 읽기 성능 향상하기
  3. 그래서 DispatcherServlet이 대체 뭐하는 녀석이죠?
  4. Docker를 이용해 스프링부트 앱 배포하기

📜 Wiki

3. Schema

4. ERD