Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: 리드미에 리팩토링 이후 추가된 기능 목차 추가 #143

Merged
merged 1 commit into from
Dec 15, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
177 changes: 171 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,10 @@
- [💾 DB 설계](#-DB-설계)
- [📡 API 설계](#-API-설계)
- [4. CI/CD](#4-cicd)
- [5. 에러 해결](#5-에러-해결)
- [6. 회고](#6-회고)
- [7. API 문서](#7-API-문서)
- [5. 리팩토링 이후 추가된 기능](#5-리팩토링-이후-추가된-기능)
- [6. 에러 해결](#6-에러-해결)
- [7. 회고](#7-회고)
- [8. API 문서](#8-API-문서)

---

Expand Down Expand Up @@ -287,7 +288,171 @@ gradle bootJar

---

## 5. 에러 해결
## 5. 리팩토링 이후 추가된 기능
### 1. 즐겨찾기

#### ① 즐겨찾기 등록 기능

회원은 숙소를 즐겨찾기(찜) 할 수 있다.

#### ② 즐겨찾기 목록 조회 기능

회원은 본인이 즐겨찾기(찜) 한 숙소 목록을 조회할 수 있다.

페이지네이션이 가능하다.

#### ③ 즐겨찾기 취소 기능

회원은 숙소에 대한 즐겨찾기(찜)을 취소할 수 있다.

### 2. 숙소

#### ① 숙소 검색 시, 수용인원에 따른 검색 추가

숙소 검색 시, 숙박할 인원에 따른 숙소 검색이 가능해졌습니다.

#### ② 숙소 검색 시, 성수기, 비수기, 평일, 주말에 따라 가격 표시 다르게 조회

현재 날짜에 따라, 가격이 다르게 조회될 수 있게 변경했습니다.

#### ② 숙소 상세 검색 시, 성수기, 비수기, 평일, 주말에 따라 가격 표시 다르게 조회

현재 날짜에 따라, 가격이 다르게 조회될 수 있게 변경했습니다.

### 3. 예약 선점

#### ① 예약 선점 로직 수정

기존

- 예약 선점이 가능한지 검증
- 검증 결과가 true일 경우, 예약 선점 —> 선점한 레디스 키 만료기한 : ‘숙박 마지막일’ 일시
- 그러나 결제 완료되지 않거나, 브라우저 창을 닫는 경우 선점이 취소되야 합니다.

변경

- 예약 선점시 결제가 완료되지 않거나 브라우저가 종료된 경우,자동으로 선점이 취소될 수 있도록 만료기한을 30분으로 변경했습니다. → 예약 결제시 만료기한을 ‘숙박 마지막일’로 재설정하도록 수정

### 4. 예약 주문

#### ① 예약 주문 페이지에서 필요한 숙소/객실 정보 리스트 조회 API 추가

주문/결제 페이지에서 기존에 FE끼리 주고 받던 데이터를 백엔드에 요청해 조회하도록 API를 추가 구현했습니다.

#### ② 예약 주문 API Request Body 수정

예약 주문 API Request Body를 수정했습니다. (불필요한 요청값 제거 + 장바구니 식별자 필드(cartId) 추가)

#### ③ 예약 주문 로직에서 선점 레디스 키 만료기한 재설정 하도록 수정

기존의 예약 선점 서비스 로직이 변경됨에 따라 예약 주문 저장 로직이 변경되었습니다.

예약 저장 서비스 로직에서 선점했던 레디스 키의 만료기한을 ‘체크아웃’ 기한까지로 재설정합니다.

#### ④ 예약 주문 완료 시 예약 완료된 장바구니 아이템을 삭제하는 로직 추가

예약 주문 API Request Body에 cartId 정보를 추가로 받아 예약 주문 로직에서 정상적으로 예약이 저장된 경우 해당 장바구니 아이템을 삭제하는 로직을 추가 구현했습니다.

### 5. 별점

#### ① 별점 등록 가능 기한(만료기한) 검증 로직 추가

별점 등록 가능 기한을 체크아웃 이후 2주내로 제한한다는 요구사항이 추가됨에 따라 별점 등록시 등록이 가능한 기간인지 검증하는 로직을 추가했습니다.

---

### 4. Open API 추가 데이터 활용

#### ① 숙소 옵션, 부대시설 데이터 추가 활용

<details>
<summary>숙소 옵션</summary>
<div markdown="1">

- 개실 내 취사 여부
- 주차시설 여부
- 픽업 서비스 여부
- 식음료장
- 문의 및 안내
-
</div>
</details>

<details>
<summary>숙소 부대시설</summary>
<div markdown="1">

- 바비큐장 여부
- 뷰티시설 정보
- 식음료장 여부
- 자전거 대여 여부
- 캠프파이어 여부
- 휘트니스 센터 여부
- 노래방 여부
- 공동 샤워실 여부
- 공동 PC실 여부
- 사우나실 여부
- 스포츠 시설 여부
- 세미나실 여부

</div>
</details>


#### ② 객실 이미지, 옵션 데이터 추가 활용

<details>
<summary>객실 이미지</summary>
<div markdown="1">

- 객실 이미지 URL

</div>
</details>

<details>
<summary>객실 옵션</summary>
<div markdown="1">

- 목욕 시설 여부
- 욕조 여부
- 홈시어터 여부
- 에어컨 여부
- TV 여부
- PC 여부
- 케이블 설치 여부
- 인터넷 여부
- 냉장고 여부
- 세면도구 여부
- 소파 여부
- 취사 용품 여부
- 테이블 여부
- 드라이기 여부

</div>
</details>

<details>
<summary>객실 가격</summary>
<div markdown="1">

- 비수기 주중 최소 가격
- 비수기 주말 최소 가격
- 성수기 주중 최소 가격
- 성수기 주말 최소 가격

</div>
</details>

#### ③ 변경된 API

1. 숙소 전체 및 검색 조회 API 변경 (위와 같은 데이터가 추가 응답됩니다.)
2. 객실 조회 API 변경
3. 장바구니 조회 API 변경

---

## 6. 에러 해결

### 📌 주요 에러

Expand Down Expand Up @@ -372,7 +537,7 @@ gradle bootJar
> ![](src/main/resources/image/wrapper-error-2.png)
>

## 6. 회고
## 7. 회고
<details>
<summary>정의정</summary>
<div markdown="1">
Expand Down Expand Up @@ -433,7 +598,7 @@ gradle bootJar
</div>
</details>

## 7. API 문서
## 8. API 문서

※ Spring REST Docs로 문서화했습니다.

Expand Down