프로젝트 배경
1.문제점 및 프로젝트 배경
1)쇼핑몰의 일반적인 문제점
-단순한 CRUD 중심의 백엔드 구조는 유지보수나 확장에 불리
-로그인/장바구니/주문 같은 핵심 기능의 트랜잭션 오류 처리 미흡
2) 이미지 관리 및 API 문서 부재
-상품 이미지 관리가 파일 수준에 머무르고,
-협업에 필요한 API 명세서가 없어 프론트와 통합 어려움
2.프로젝트목표
-실사용 가능한 애견용품 쇼핑몰 백엔드 구조 구현
-트랜잭션 안전성과 유지보수 가능한 서비스 계층 분리
-Swagger 기반 API 문서 자동화
-로그인/인증부터 장바구니·주문·재고까지 전체 흐름 구현
3.개발 주안점
-RESTful API 원칙에 맞는 라우팅 및 리소스 설계
-Spring Security 기반 로그인, 인증, 권한 분리
-장바구니 → 주문 흐름의 트랜잭션 처리와 재고 관리
-Swagger 문서 자동화로 협업 효율 증대
-이미지 업로드 및 저장 기능 구현 (ItemImage)
-서비스 계층 분리를 통한 비즈니스 로직 집중 설계
1)쇼핑몰의 일반적인 문제점
-단순한 CRUD 중심의 백엔드 구조는 유지보수나 확장에 불리
-로그인/장바구니/주문 같은 핵심 기능의 트랜잭션 오류 처리 미흡
2) 이미지 관리 및 API 문서 부재
-상품 이미지 관리가 파일 수준에 머무르고,
-협업에 필요한 API 명세서가 없어 프론트와 통합 어려움
2.프로젝트목표
-실사용 가능한 애견용품 쇼핑몰 백엔드 구조 구현
-트랜잭션 안전성과 유지보수 가능한 서비스 계층 분리
-Swagger 기반 API 문서 자동화
-로그인/인증부터 장바구니·주문·재고까지 전체 흐름 구현
3.개발 주안점
-RESTful API 원칙에 맞는 라우팅 및 리소스 설계
-Spring Security 기반 로그인, 인증, 권한 분리
-장바구니 → 주문 흐름의 트랜잭션 처리와 재고 관리
-Swagger 문서 자동화로 협업 효율 증대
-이미지 업로드 및 저장 기능 구현 (ItemImage)
-서비스 계층 분리를 통한 비즈니스 로직 집중 설계
프로젝트 성과
Spring Security 기반 인증 시스템 구축
회원가입/로그인/로그아웃 기능과 사용자 권한 분리를 통해 보안이 강화된 인증 시스템 구현 완료.
장바구니–주문 흐름 전환 로직 완성
장바구니 상품을 주문으로 전환 시 재고 차감과 트랜잭션 관리 포함한 실사용 시나리오 구현 완료.
Swagger 기반 API 명세서 제공
프론트와의 협업 및 테스트를 위한 자동 문서화 처리 완료. 요청/응답 모델을 Swagger UI로 제공.
핵심 기능

회원 인증 및 보안 처리
Spring Security 기반 로그인/로그아웃 및 회원가입 기능 구현. 인증 토큰 기반 요청 처리 및 권한 분리 적용.

상품 관리 및 이미지 업로드
상품 등록, 수정, 삭제 및 이미지 업로드 기능 구현. 이미지 파일은 별도 엔티티(ItemImage)로 관리.

장바구니 → 주문 전환 처리
장바구니에 담은 상품을 주문으로 전환 시 재고 처리 및 주문 상태 관리 포함한 트랜잭션 처리 구현.

Swagger API 문서 자동화
Swagger 적용으로 모든 API에 대한 자동 문서화 처리. API 테스트 및 프론트 개발 협업을 용이하게 함.
진행 단계
개발
2024.02.
Spring Boot 기반 REST API 서버 개발
JPA를 통한 DB 연동 및 도메인 모델 구현
로그인/인증/권한 처리, 재고 로직 및 장바구니 흐름 구현
JPA를 통한 DB 연동 및 도메인 모델 구현
로그인/인증/권한 처리, 재고 로직 및 장바구니 흐름 구현
테스트 및 디버깅
2024.03.
Postman으로 API 시나리오별 테스트 수행
비정상 케이스 및 예외 처리 확인
Swagger UI 테스트 및 데이터 연동 검증
비정상 케이스 및 예외 처리 확인
Swagger UI 테스트 및 데이터 연동 검증
런칭
2020.04.
기능 완료 후 로컬 및 서버에 배포 테스트
프론트와 통합 테스트 후 상호 작동 확인
예외 처리 및 성능 튜닝 (캐싱 적용 포함)
프론트와 통합 테스트 후 상호 작동 확인
예외 처리 및 성능 튜닝 (캐싱 적용 포함)
프로젝트 상세
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을 사용한 로깅 구현
