본문 바로가기

Backend

[패캠] 패스트캠퍼스X야놀자 미니프로젝트

728x90

KPT 기간 보완사항

  • 무한 스크롤
  • 찜 기능
  • 마이페이지 조회
  • 리뷰 조회
    • 성능개선
  • 페이지네이션

페이지 구현 예시

개요

■ 프로젝트명

 

■ 기간, 참여인원

  • 11/20(월) ~ 12/01(금)
  • FE 5명 BE 4명

 

■ 목적

  • 숙박 예약 서비스를 완성 및 협업

아키텍처

 

구현 환경

 

 

 

 

 

 

협업

  • Discord
  • Agile - Scrum

 

Git

  • Git-Flow 사용

 

Commit log

Feat : 새로운 기능 추가
Fix : 버그 수정
Style : 코드 스타일 수정 (세미 콜론, 인덴트 등의 스타일적인 부분만)
Refactor : 코드 리팩토링 (더 효율적인 코드로 변경 등)
Design : CSS 등 디자인 추가/수정
Comment : 주석 추가/수정
Docs : 내부 문서 추가/수정
Test : 테스트 추가/수정
Chore : 빌드 관련 코드 수정, 개발 환경 관련 설정(과거 Env)
Move : 파일 및 폴더명 수정(과거 Rename)
Remove : 파일 삭제

Branch Naming

feature/#이슈번호_간단 설명(주제)

 

ERD

 

API

■ 로그인 API

  • 회원가입
http://localhost:8080/auth/signup
 

  • 로그인
http://localhost:8080/auth/login
 

  • 로그아웃
http://localhost:8080/auth/logout
 

  • 리프레쉬 토큰
http://localhost:8080/auth/refreshAccessToken
 

■ 마이페이지 API

  • 마이페이지
http://localhost:8080/user
 

  • 마이페이지 - 주문내역 상세
http://localhost:8080/user/details/{orderId}
 

■ 숙소 API

  • 전체 숙소 조회
http://localhost:8080/products
 

  • 개인화 용 숙소 조회
http://localhost:8080/products
 
  • 카테고리 별 숙소 조회
http://localhost:8080/products?category={카테고리 코드}
 
  • 지역별 숙소 조회
http://localhost:8080/products?areacode={지역코드}
 
  • 지역별 & 카테고리 별 숙소 조회
http://localhost:8080/products?category={카테고리 코드}&region={지역코드}
 

■ 상품 API

  • 개별 상품 요약 조회
http://localhost:8080/products/{accommodation_id}
 

  • 상품 요약 조회
http://localhost:8080/products/summary
 

  • 개별 상품 상세페이지 조회
http://localhost:8080/products/{accommodation_id}/{product_id}
 

■ 주문 API

  • 상품 주문하기
http://localhost:8080/orders
 

■ 장바구니 API

  • 장바구니 상품 전체 조회
http://localhost:8080/carts
 

  • 장바구니에 상품 추가
http://localhost:8080/carts/{product_id}
 

  • 장바구니에 상품 삭제
http://localhost:8080/carts/{cartItem_id}
 

■ 리뷰 API

  • 내 리뷰 조회
http://localhost:8080/reviews
 

  • 숙소 리뷰 조회
http://localhost:8080/reviews/{accommodationId}
 

  • 리뷰 작성
http://localhost:8080/reviews
 

  • 리뷰 수정
http://localhost:8080/reviews/{review_id}
 

  • 리뷰 삭제
http://localhost:8080/reviews/{review_id}
 

 

패키지 구조

├── main
│   ├── java
│   │   └── com
│   │       └── ybe
│   │           └── tr1ll1on
│   │               ├── AppStartupRunner.java
│   │               ├── Tr1ll1onApplication.java
│   │               ├── domain
│   │               │   ├── accommodation
│   │               │   │   ├── controller
│   │               │   │   │   └── AccommodationController.java
│   │               │   │   ├── dto
│   │               │   │   │   ├── request
│   │               │   │   │   │   └── AccommodationRequest.java
│   │               │   │   │   └── response
│   │               │   │   │       └── AccommodationResponse.java
│   │               │   │   ├── model
│   │               │   │   │   ├── Accommodation.java
│   │               │   │   │   ├── AccommodationFacility.java
│   │               │   │   │   ├── AccommodationImage.java
│   │               │   │   │   └── Category.java
│   │               │   │   ├── repository
│   │               │   │   │   ├── AccommodationFacilityRepository.java
│   │               │   │   │   ├── AccommodationImageRepository.java
│   │               │   │   │   ├── AccommodationMapper.java
│   │               │   │   │   ├── AccommodationRepository.java
│   │               │   │   │   └── CategoryRepository.java
│   │               │   │   └── service
│   │               │   │       └── AccommodationService.java
│   │               │   ├── cart
│   │               │   │   ├── controller
│   │               │   │   │   └── CartController.java
│   │               │   │   ├── dto
│   │               │   │   │   ├── request
│   │               │   │   │   │   ├── AddCartItemRequest.java
│   │               │   │   │   │   └── CartRequest.java
│   │               │   │   │   └── response
│   │               │   │   │       ├── AddCartItemResponse.java
│   │               │   │   │       └── CartResponse.java
│   │               │   │   ├── exception
│   │               │   │   │   ├── CartIdNotFoundException.java
│   │               │   │   │   ├── CartIdNotFoundExceptionCode.java
│   │               │   │   │   ├── CartItemIdNotFoundException.java
│   │               │   │   │   ├── CartItemIdNotFoundExceptionCode.java
│   │               │   │   │   ├── ProductNotExistException.java
│   │               │   │   │   ├── ProductNotExsitExceptionCode.java
│   │               │   │   │   ├── UserAlreadyHasCartException.java
│   │               │   │   │   ├── UserAlreadyHasCartExceptionCode.java
│   │               │   │   │   ├── UserNotFoundException.java
│   │               │   │   │   └── UserNotFoundExceptionCode.java
│   │               │   │   ├── model
│   │               │   │   │   ├── Cart.java
│   │               │   │   │   └── CartItem.java
│   │               │   │   ├── repository
│   │               │   │   │   ├── CartItemRepository.java
│   │               │   │   │   └── CartRepository.java
│   │               │   │   └── service
│   │               │   │       ├── CartService.java
│   │               │   │       └── CartServiceImpl.java
│   │               │   ├── likes
│   │               │   │   ├── controller
│   │               │   │   │   └── LikeController.java
│   │               │   │   ├── dto
│   │               │   │   │   └── LikeDTO.java
│   │               │   │   ├── error
│   │               │   │   │   └── LikeError.java
│   │               │   │   ├── model
│   │               │   │   │   └── Likes.java
│   │               │   │   ├── repository
│   │               │   │   │   └── LikeRepository.java
│   │               │   │   └── service
│   │               │   │       └── LikeService.java
│   │               │   ├── order
│   │               │   │   ├── controller
│   │               │   │   │   └── OrderController.java
│   │               │   │   ├── dto
│   │               │   │   │   ├── request
│   │               │   │   │   │   ├── OrderItemRequest.java
│   │               │   │   │   │   └── OrderRequest.java
│   │               │   │   │   └── response
│   │               │   │   │       ├── OrderItemResponse.java
│   │               │   │   │       └── OrderResponse.java
│   │               │   │   ├── exception
│   │               │   │   │   ├── OrderException.java
│   │               │   │   │   ├── OrderExceptionCode.java
│   │               │   │   │   ├── OrderItemNotFoundException.java
│   │               │   │   │   └── OrderNotFoundException.java
│   │               │   │   ├── model
│   │               │   │   │   ├── OrderItem.java
│   │               │   │   │   └── Orders.java
│   │               │   │   ├── repository
│   │               │   │   │   ├── OrderItemRepository.java
│   │               │   │   │   └── OrderRepository.java
│   │               │   │   └── service
│   │               │   │       └── OrderService.java
│   │               │   ├── product
│   │               │   │   ├── controller
│   │               │   │   │   └── ProductController.java
│   │               │   │   ├── dto
│   │               │   │   │   ├── request
│   │               │   │   │   │   └── AccommodationRequest.java
│   │               │   │   │   └── response
│   │               │   │   │       ├── AccommodationDetailResponse.java
│   │               │   │   │       ├── AccommodationFacilityResponse.java
│   │               │   │   │       ├── AccommodationImageResponse.java
│   │               │   │   │       ├── ProductFacilityResponse.java
│   │               │   │   │       ├── ProductImageResponse.java
│   │               │   │   │       ├── ProductResponse.java
│   │               │   │   │       └── ProductSummaryListResponse.java
│   │               │   │   ├── exception
│   │               │   │   │   ├── ProductException.java
│   │               │   │   │   └── ProductExceptionCode.java
│   │               │   │   ├── model
│   │               │   │   │   ├── Product.java
│   │               │   │   │   ├── ProductFacility.java
│   │               │   │   │   ├── ProductImage.java
│   │               │   │   │   └── ProductInfoPerNight.java
│   │               │   │   ├── repository
│   │               │   │   │   ├── ProductFacilityRepository.java
│   │               │   │   │   ├── ProductImageRepository.java
│   │               │   │   │   ├── ProductInfoPerNightRepository.java
│   │               │   │   │   └── ProductRepository.java
│   │               │   │   └── service
│   │               │   │       └── ProductService.java
│   │               │   ├── review
│   │               │   │   ├── controller
│   │               │   │   │   └── ReviewController.java
│   │               │   │   ├── dto
│   │               │   │   │   ├── request
│   │               │   │   │   │   ├── ReviewCreateRequest.java
│   │               │   │   │   │   └── ReviewUpdateRequest.java
│   │               │   │   │   └── response
│   │               │   │   │       ├── ProductReviewListResponse.java
│   │               │   │   │       ├── ReviewCreateResponse.java
│   │               │   │   │       ├── ReviewDeleteResponse.java
│   │               │   │   │       ├── ReviewUpdateResponse.java
│   │               │   │   │       └── UserReviewListResponse.java
│   │               │   │   ├── exception
│   │               │   │   │   ├── AccommodationNotFoundException.java
│   │               │   │   │   ├── ReviewAlreadyWrittenException.java
│   │               │   │   │   ├── ReviewExceptionCode.java
│   │               │   │   │   └── ReviewNotFoundException.java
│   │               │   │   ├── model
│   │               │   │   │   └── Review.java
│   │               │   │   ├── repository
│   │               │   │   │   └── ReviewRepository.java
│   │               │   │   └── service
│   │               │   │       └── ReviewService.java
│   │               │   └── user
│   │               │       ├── controller
│   │               │       │   ├── AuthController.java
│   │               │       │   └── UserController.java
│   │               │       ├── dto
│   │               │       │   ├── request
│   │               │       │   │   ├── LoginRequest.java
│   │               │       │   │   └── SignUpRequest.java
│   │               │       │   └── response
│   │               │       │       ├── LoginResponse.java
│   │               │       │       ├── MyPageDetailResponse.java
│   │               │       │       ├── MyPageListResponse.java
│   │               │       │       └── SignUpResponse.java
│   │               │       ├── exception
│   │               │       │   ├── EmailAlreadyExistsException.java
│   │               │       │   ├── InValidUserException.java
│   │               │       │   └── InValidUserExceptionCode.java
│   │               │       ├── model
│   │               │       │   ├── User.java
│   │               │       │   └── UserFacility.java
│   │               │       ├── repository
│   │               │       │   └── UserRepository.java
│   │               │       └── service
│   │               │           ├── AuthService.java
│   │               │           └── UserService.java
│   │               ├── global
│   │               │   ├── common
│   │               │   │   ├── AreaCode.java
│   │               │   │   └── Payment.java
│   │               │   ├── config
│   │               │   │   ├── AuthConfig.java
│   │               │   │   ├── MybatisConfig.java
│   │               │   │   └── OpenApiConfig.java
│   │               │   ├── constants
│   │               │   │   └── ApiConstants.java
│   │               │   ├── date
│   │               │   │   ├── exception
│   │               │   │   │   ├── InValidDateException.java
│   │               │   │   │   └── InValidDateExceptionCode.java
│   │               │   │   └── util
│   │               │   │       └── DateUtil.java
│   │               │   └── exception
│   │               │       ├── ExceptionCode.java
│   │               │       ├── ExceptionResponseDTO.java
│   │               │       ├── TrillionException.java
│   │               │       ├── TrillionExceptionCode.java
│   │               │       └── TrillionExceptionHandler.java
│   │               └── security
│   │                   ├── common
│   │                   │   └── Authority.java
│   │                   ├── config
│   │                   │   ├── JwtSecurityConfig.java
│   │                   │   └── SecurityConfig.java
│   │                   ├── constants
│   │                   │   └── JwtConstants.java
│   │                   ├── dto
│   │                   │   └── TokenDto.java
│   │                   ├── exception
│   │                   │   ├── InvalidTokenException.java
│   │                   │   ├── NotTokenException.java
│   │                   │   ├── SecurityExceptionCode.java
│   │                   │   └── UserNotFoundException.java
│   │                   ├── jwt
│   │                   │   ├── JwtAccessDeniedHandler.java
│   │                   │   ├── JwtAuthenticationEntryPoint.java
│   │                   │   ├── JwtAuthenticationProvider.java
│   │                   │   ├── JwtAuthenticationSuccessHandler.java
│   │                   │   ├── JwtFilter.java
│   │                   │   └── JwtTokenProvider.java
│   │                   ├── model
│   │                   │   └── UserPrincipal.java
│   │                   ├── service
│   │                   │   └── CustomUserDetailsService.java
│   │                   └── util
│   │                       └── SecurityUtil.java
│   └── resources
│       ├── application.yml
│       └── mapper
│           └── AccommodationMapper.xml
728x90