개발 기간: 2023.05.11 ~ 2023.05.18
🎥 시연영상
- [여기어때] 크롤링 프로젝트 입니다
- 호텔, 펜션 정보를 조회, 예약(실제 결제는 안됨)을 할 수 있도록 구현하는것을 목표로 했습니다.
- 다중 이미지 조회, 업로드 및 QueryDsl 이용한 동적 쿼리 등 기본기를 다지는 것을 중점으로 하였습니다.
(https://www.notion.so/S-A-afa6ceba07db4022bebde44ccb35807a)
이름 | 깃허브 |
---|---|
박영준(BE팀장) | @june9152 |
김은양 | @silversheep26 |
고예진 | @YEJINGO |
정성윤 | @kanteluv |
FE git hub : https://github.com/AmenityCloneCoding/AmenityClone
-
회원 가입 API
- userEmail : 이메일 형식/ 중복 불가
- password : 크기 8 이상, 15 이하 / 대소문자, 숫자, 특수문자 가능, 공백 금지
- userNickNm -
로그인 / 로그아웃 API
- 로그인 성공 시, Access Token과 Refresh Token을 발급하고 헤더에 토큰을 추가
-
호텔/펜션 전체 목록 조회 API
- 메인 페이지에서 호텔 또는 펜션을 누른 후 목록 조회 -
호텔/펜션 선택 목록 조회(필터) API
- 호텔/펜션 전체 목록 조회 후 상세 조건(필터) 선택 후 목록 조회 -
숙박 업소 상세 조회 API
- 하나의 숙박 업소 선택 시 객실정보, 리뷰 조회 -
검색으로 숙박 업소 조회 API
- 내용 또는 이름에 키워드가 들어 있는 숙박 업소 조회
-
예약 등록 API
- 상세 조회에서 예약하기 누른 경우 -
예약 조회 API
- 자신이 예약한 내용 조회 -
예약 날짜 조회 API
- 예약 등록 시 체크인/아웃 날짜를 이용하여 숙박 일 확인 -
예약 삭제 조회 API
- 예약 등록한 것 삭제
-
로그인 없이 리뷰 조회 API
- 로그인 없이 리뷰만 조회 -
로그인 후 리뷰 조회 API
- 리뷰 조회 및 리뷰 작성
- 이미지 업로드 API
- 이미지 업로드만을 위한 기능
클론코딩을 준비하면서 테이블과 연관관계를 어떻게 구성할지 명세를 팀원과 많이 고민하여 구성하였다.
특히 숙박업소 - 객실 - 리뷰 그리고 각 이미지 url 테이블까지 총 6개 테이블의 데이터를 한번의 요청으로 내려주는 로직 구성이 힘들었다.
rds, s3, ec2 경험해본사람이 없어 연습해볼 수 있는 좋은 기회가 되었고, 단일, 다중 이미지 업로드 구현까지 해 보았다.
연관관계가 구성되어있어 전부 dto를 이용하여 감싸 처리하였는데, 상세조건별 조회를 반영하기 위해 Querydsl 과 연산로직으로 데이터를 뽑아내어 속도가 느려져 아쉬웠다.