프로젝트 한 줄 설명
"배달의 민족은 어떻게 대규모 트래픽과, 대용량 데이터를 다루고 있을까" 배달의 민족과 같은 배달 서비스 플랫폼을 모티브로 만든 API 서버 토이 프로젝트입니다.
프로젝트 소스 코드
프로젝트 전체 구성도 ( Architecture )
프로젝트 목표
•
배달의 민족과 같은 배달 서비스를 PC 웹 버전으로 구현해 내는 것을 목표로 합니다.
•
단순 기능 구현이 아닌, 동시성 이슈, 분산 서버 환경, 그리고 대용량 트래픽 처리 등을 고려하여 개발합니다.
•
객체지향의 원칙을 준수하고, 이론적 근거와 본인만의 철학을 토대로 코드를 작성합니다.
•
어떤 기술을 사용하든, 단순히 구현만 할 줄 아는 것이 아니라, 원리를 이해하고 개발합니다.
•
새롭게 접한 기술이나, 중요한 기술은 반드시 문서화(블로그) 하여 정리합니다.
•
네이버 클라우드를 활용하여, 실제로 서버에 적용 시켜 보는 것을 목표로 합니다.
개발 주요 로직 & 주요 이슈 해결 목록
프로젝트 중점 사항
•
서버의 확장성 고려
•
버전 관리
•
logback 을 활용하여 log 관리
•
문서화
•
Redis Cache 를 활용하여 조회 기능 구현
•
동시성 이슈를 고려하며 기능 구현
•
Nginx 을 활용한 로드 밸런싱 환경 구축
•
JMeter 를 활용한 성능 테스트
•
로그인 서비스 추상화
•
AOP 를 활용하여 로그인 체크 기능 구현
•
HandlerMethodArgumentResolver 와 WebConfig 를 활용하여 현재 로그인중인 유저 정보 가져오기 구현
•
결제 서비스 추상화
•
Redis Session 활용
•
Redis Session 과 Cache 서버 분리
•
AWS S3 를 활용한 이미지 파일 관리
•
테스트 코드 작성
•
Docker 컨테이너 활용
•
Transactional 의 원리를 이해하고, 주문 및 결제 로직 구현