- 당근마켓, 번개장터와 같은 중고상품 거래 플랫폼 오이마켓을 개발하는 토이프로젝트
- 웹 UI는 카카오 오븐으로 대체하여 프론트엔드 부분은 생략하고 백엔드에 초점을 맞춰 개발에 집중
- 단순 기능 구현 뿐 아니라 코드의 재사용성 및 유지보수성을 고려하여 구현하는 것을 목표로 개발
- 현재까지 학습한 서버사이드 렌더링 기술이 아닌 실제 프론트와의 협업을 고려하여 개발
- 확장성을 위한 객체지향의 기본 원리 DIP, OCP 준수
- Spring framework의 IOC/DI , AOP의 활용
- 라이브러리 및 기능 추가 시 이유있는 선택과 사용 목적 고려
- key-value 형태로 구성된 JSON으로 모든 데이터 통신
- Runtime Exception 예외처리 선정과 그 종류에 따른 Http Status 응답 고려
- 대용량 트래픽을 고려한 로그인 기능 구현
- 리소스를 고려한 의미있는 도메인 설계 - Restful API
- 부하 분산 및 장애대응을 위한 MySQL 쿼리 요청 분기(Replication) 및 Redis Master - Slave 환경구축
- 다중서버 환경 구축 및 그에 따른 CI/CD 구축
Category | Content |
---|---|
Language | Java 11 |
Framework | Spring Boot 2.5.7 |
RDBMS | MySQL 8.0.x |
SQL Mapper | Mybatis |
Session Server | Redis |
Web Server | Nginx |
CI/CD | Jenkins |
Container | Docker |
Build Tool | Gradle 7.3 |
API Documentation | Springfox OpenAPI 3.0 |
Boilerplate Code Library | Lombok |
IDE | IntelliJ IDEA |
👉 cucumber-market ProtoType UI 카카오 오븐 링크
👉 전체 아키텍처 링크
👉 MySQL 아키텍처 링크
👉 Redis 아키텍처 링크
👇 Springfox(Swagger) 미리보기
👉 각 기능별 비지니스 로직
👉 각 기능별 Use Case
👥 사용자
- 회원가입, 탈퇴
- 로그인, 로그아웃
- 마이페이지, 정보수정
- 판매물품 등록, 수정, 삭제
- 물품 검색기능
- 상품찜 기능
- 비밀 댓글로 1:1채팅기능
💂♂️ 관리자
- 전체회원 조회
- 기존회원 관리자 등록
- 카테고리 관리