logo


"배달의 민족은 어떻게 대규모 트래픽과, 대용량 데이터를 다루고 있을까"

배달의 민족과 같은 배달 서비스 플랫폼을 모티브로 만든 API 서버 토이 프로젝트입니다.



🏍️ 프로젝트 목표

  • 배달의 민족과 같은 배달 서비스를 PC 웹 버전으로 구현해 내는 것을 목표로 합니다.

  • 단순 기능 구현이 아닌, 동시성 이슈, 분산 서버 환경, 그리고 대용량 트래픽 처리 등을 고려하여 개발합니다.

  • 객체지향의 원칙을 준수하고, 이론적 근거와 본인만의 철학을 토대로 코드를 작성합니다.

  • 어떤 기술을 사용하든, 단순히 구현만 할 줄 아는 것이 아니라, 원리를 이해하고 개발합니다.

  • 새롭게 접한 기술이나, 중요한 기술은 반드시 문서화( 블로그 ) 하여 정리합니다.

  • 네이버 클라우드를 활용하여, 실제로 서버에 적용시켜 보는 것을 목표로 합니다.


🏍️ 개발 주요 로직 & 주요 이슈 해결 목록

클릭 시, 개발 내용을 정리한 개인 블로그 내용으로 이동합니다.


🏍️ 프로젝트 중점사항

  • 서버의 확장성 고려
  • 버전 관리
  • logback 을 활용하여 log 관리
  • 문서화
  • Redis Cache 를 활용하여 조회 기능 구현
  • 동시성 이슈를 고려하며 기능 구현
  • Nginx 을 활용한 로드 밸런싱 환경 구축
  • JMeter 를 활용한 성능 테스트
  • 로그인 서비스 추상화
  • AOP 를 활용하여 로그인 체크 기능 구현
  • HandlerMethodArgumentResolver 와 WebConfig 를 활용하여 현재 로그인중인 유저 정보 가져오기 구현
  • 결제 서비스 추상화
  • Redis Session 활용
  • Redis Session 과 Cache 서버 분리
  • AWS S3 를 활용한 이미지 파일 관리
  • 테스트 코드 작성
  • Docker 컨테이너 활용
  • Transactional 의 원리를 이해하고, 주문 및 결제 로직 구현

🏍️ 프로젝트 전체 구성도

image


🏍️ 사용 기술 스택

image


🏍️ DB ERD

image


🏍️ Use Case

USE CASE 확인하기