Skip to content

방탈출카페 소개 및 리뷰사이트(열려라참깨) 리팩토링 개인 프로젝트

Notifications You must be signed in to change notification settings

maemae22/escape-room

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

  열려라 참깨 : 방탈출카페 소개 및 리뷰 서비스


방탈출카페 소개 및 리뷰 서비스입니다.
이 프로젝트는 기존 팀 프로젝트였던 '열려라 참깨' 프로젝트에서
제가 맡았던 부분 위주로 클린 코드 작성에 집중하여 리팩토링해본 개인 프로젝트입니다.

개발 기간 : 2023.05 ~ 2023.06
개발 인원 : 1명 (개인 프로젝트)
Code (Github) : https://github.com/maemae22/escape-room
블로그 : https://maemae22.tistory.com/category/escape-room
API 명세서 : https://documenter.getpostman.com/view/24197132/2s93eeQ9MA

개발 환경

언어 : Java 11
프레임워크 : Spring Boot 2.7.11, Spring Data JPA, QueryDSL
DB : MySQL 8.0.32 (Amazon RDS)
IDE : IntelliJ
Tools : Git, GitHub, GitKraken, DBeaver, Postman

Project Architecture

구현 기능

1. 카페 검색

- @RequestParam의 required 속성을 false로 설정하여, 지역(loc) 리스트와 검색어(keyword) 중 입력받은 것으로만 동적으로 쿼리를 생성하여 검색함
- 파라미터로 받은 keyword가 빈 문자열(혹은 null)이 아닐 경우, name like '%keyword%' 으로 where 검색 조건 추가됨
- 파라미터로 받은 loc(List)가 null이거나 비어있지 않을 경우, location in ('loc1', 'loc2')으로 where 검색 조건 추가됨
- 예시 : https://www.openthedoor.site:8080/cafe/search?loc=홍대&loc=건대&keyword=비밀
- 상세 설명 : https://maemae22.tistory.com/107

(1) 카페 검색 - 지역 검색

(2) 카페 검색 - 키워드 검색

2. 테마 검색

- 검색 조건 : 지역(location), 장르(genre), 난이도(difficult), 활동성(activity), 추천인원(peopleNum), 키워드(keyword)로 검색 가능.
                     지역, 장르, 난이도, 활동성의 경우 복수 선택 검색 가능
                     쿼리스트링으로 입력된 경우에만 검색 조건으로 추가하여 동적으로 쿼리를 생성하여 검색함
- 정렬(sorting) : 리뷰 높은 순, 이름 순(name), 지역 순(location) 정렬 중 선택 가능, 선택 안할 시 기본값은 리뷰 높은 순 정렬
- 예시 : https://www.openthedoor.site:8080/theme/search?activity=보통&difficult=3&genre=공포&genre=스릴러&sorting=location
- Code : #50

3. 테마 상세페이지

(1) 테마 상세 정보

(2) 이 업체의 다른 테마

- 테마 상세페이지에서 우측 배너로 현재 테마와 동일한 업체의 다른 테마 중 2개를 랜덤으로 보여줌
- 만약 이 업체의 다른 테마가 2개 미만일 경우, 해당 개수만큼만 반환함
- 리뷰 평균 점수의 소수점 반올림 처리 : Expressions.template() 메서드를 사용하여 ROUND 함수를 적용함
- 예시 : https://www.openthedoor.site:8080/theme/others?id=53

3-1. 테마 상세페이지 내 리뷰 CRUD

(1) 리뷰 작성

(2) 리뷰 수정

- 변경 감지를 통한 리뷰 수정 : updateReview 메서드를 통해 JPA의 변경 감지(dirty-checking) 기능을 사용하여 리뷰 수정 기능을 구현함

(3) 리뷰 삭제

(4) 리뷰 조회


- 해당 테마에 등록된 리뷰가 없을 경우

About

방탈출카페 소개 및 리뷰사이트(열려라참깨) 리팩토링 개인 프로젝트

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages