프로젝트 배경
1.문제점 및 프로젝트 배경
1) 캠핑용품 쇼핑몰 특성상 발생하는 문제
-계절성, 카테고리 다양성으로 인한 상품 관리 복잡성
-장바구니/재고 처리에서 동시성 이슈 발생 가능성
2) 일반적인 쇼핑몰 기능 외 확장 필요
-이미지 업로드, 재고/상태관리 등 비즈니스 로직 요구도 높음
2.프로젝트 목표
-캠핑용품에 특화된 쇼핑몰 API 백엔드 구현
-인증/보안/트랜잭션을 고려한 실무 수준 설계
-Swagger 문서화 및 캐싱을 통한 성능 확보
3.개발 주안점
-RESTful API 원칙에 따른 리소스 설계
-Spring Security 기반 인증/권한 제어
-상품 이미지 업로드 및 저장 기능 완비
-트랜잭션 기반의 주문 및 재고 처리 로직
-Swagger 적용을 통한 API 명세 자동화
-비즈니스 계층 분리 및 확장성 고려한 구조 설계
1) 캠핑용품 쇼핑몰 특성상 발생하는 문제
-계절성, 카테고리 다양성으로 인한 상품 관리 복잡성
-장바구니/재고 처리에서 동시성 이슈 발생 가능성
2) 일반적인 쇼핑몰 기능 외 확장 필요
-이미지 업로드, 재고/상태관리 등 비즈니스 로직 요구도 높음
2.프로젝트 목표
-캠핑용품에 특화된 쇼핑몰 API 백엔드 구현
-인증/보안/트랜잭션을 고려한 실무 수준 설계
-Swagger 문서화 및 캐싱을 통한 성능 확보
3.개발 주안점
-RESTful API 원칙에 따른 리소스 설계
-Spring Security 기반 인증/권한 제어
-상품 이미지 업로드 및 저장 기능 완비
-트랜잭션 기반의 주문 및 재고 처리 로직
-Swagger 적용을 통한 API 명세 자동화
-비즈니스 계층 분리 및 확장성 고려한 구조 설계
프로젝트 성과
전체 쇼핑몰 흐름을 아우르는 백엔드 구축
회원가입부터 장바구니, 주문, 재고관리까지 전체 기능 흐름을 하나의 백엔드 서비스로 완성.
이미지 업로드 기능 도입
캠핑용품 상품 등록 시 이미지 업로드 및 관리 기능을 구현하여 사용자 경험 개선.
Swagger 기반 API 명세 완성
Swagger를 통해 전체 API 문서 자동화 및 테스트 UI 제공, 개발자 간 협업을 원활하게 지원.
핵심 기능

회원 인증 및 권한 제어
Spring Security를 기반으로 회원가입, 로그인/로그아웃 및 사용자 권한별 접근 제어 기능 구현.


상품 관리 및 이미지 업로드
상품 등록, 수정, 삭제 기능과 함께 이미지 업로드 및 다중 이미지 관리 기능 구현(ItemImage 엔티티 사용).

장바구니 기능 및 주문 처리
장바구니에 담은 상품을 주문으로 전환하는 로직 구현. 트랜잭션 관리와 재고 차감 기능 포함.
진행 단계
개발
2023.11.
JPA 기반 DB 연동 및 엔티티 구현
RESTful API 컨트롤러 및 서비스 계층 구현
인증, 장바구니, 주문 전환, 재고 처리 개발
RESTful API 컨트롤러 및 서비스 계층 구현
인증, 장바구니, 주문 전환, 재고 처리 개발
테스트 및 디버깅
2023.12.
Postman을 통한 API 기능 테스트
Swagger UI 기반 테스트
예외 처리 시나리오 테스트 수행
Swagger UI 기반 테스트
예외 처리 시나리오 테스트 수행
런칭
2024.01.
로컬/테스트 서버에 배포 후 프론트와 통합 테스트
Swagger 문서 정비 및 최종 배포
성능 향상을 위한 캐싱 적용 및 로깅 정비
Swagger 문서 정비 및 최종 배포
성능 향상을 위한 캐싱 적용 및 로깅 정비
프로젝트 상세
1. 프로젝트 구조
- Spring Boot를 기반으로 한 프로젝트 설정
- Gradle을 사용한 의존성 관리
2. 데이터베이스 연동:
- JPA (Java Persistence API)를 사용한 데이터베이스 접근
- Spring Data JPA를 활용한 리포지토리 구현
- 주요 엔티티: Member, Item, Order, Cart, CartItem, OrderItem, ItemImage
3. 보안:
- Spring Security를 이용한 인증 및 권한 관리
- 회원가입, 로그인, 로그아웃 기능 구현
4. RESTful API 개발:
- 상품 관리 (등록, 조회, 수정, 삭제)
- 주문 처리 (주문 생성, 조회, 취소)
- 장바구니 기능 (추가, 조회, 삭제, 주문 전환)
5. 비즈니스 로직:
-서비스 계층에서 트랜잭션 관리
-상품 재고 관리
-주문 상태 관리
6. 파일 업로드:
-상품 이미지 업로드 및 관리 기능
7. API 문서화: Swagger 를 사용한 API 문서 자동화
8. 성능 최적화: 캐싱
9/ 로깅: SLF4J와 Logback을 사용한 로깅 구현
- Spring Boot를 기반으로 한 프로젝트 설정
- Gradle을 사용한 의존성 관리
2. 데이터베이스 연동:
- JPA (Java Persistence API)를 사용한 데이터베이스 접근
- Spring Data JPA를 활용한 리포지토리 구현
- 주요 엔티티: Member, Item, Order, Cart, CartItem, OrderItem, ItemImage
3. 보안:
- Spring Security를 이용한 인증 및 권한 관리
- 회원가입, 로그인, 로그아웃 기능 구현
4. RESTful API 개발:
- 상품 관리 (등록, 조회, 수정, 삭제)
- 주문 처리 (주문 생성, 조회, 취소)
- 장바구니 기능 (추가, 조회, 삭제, 주문 전환)
5. 비즈니스 로직:
-서비스 계층에서 트랜잭션 관리
-상품 재고 관리
-주문 상태 관리
6. 파일 업로드:
-상품 이미지 업로드 및 관리 기능
7. API 문서화: Swagger 를 사용한 API 문서 자동화
8. 성능 최적화: 캐싱
9/ 로깅: SLF4J와 Logback을 사용한 로깅 구현
