Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[1 - 3단계 방탈출 사용자 예약] 이든(최승준) 미션 제출합니다. (#57)
* init: 이전 미션 코드 반영 * style: 줄바꿈 수정 * docs: 예외 상황 정의 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * feat: 유효하지 않은 시간 생성 검증 기능 구현 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * feat: 유효하지 않은 시간 생성 검증 기능 구현 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * feat: 예약이 존재하는 시간 삭제를 방어하는 기능 구현 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * style: 줄바꿈 정리 * feat: 유효하지 않은 예약 등록 요청 검증 로직 구현 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * feat: 중복된 날짜 및 시간 예약 등록 검증 로직 구현 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * chore: gradle 설정 변경 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * feat: 지나간 날짜와 시간에 대한 예약 생성 방지 기능 구현 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * docs: 테마 API 명세 추가 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * chore: 테마 관련 DDL 추가 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * feat: 테마 관리 페이지 요청 API 구현 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * fix: 예약 관리 페이지 파일 변경 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * docs: 테마 관련 REST API 명세 추가 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * feat: 테마 조회 기능 구현 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * feat: 테마 추가 기능 구현 * feat: 테마 삭제 기능 구현 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * feat: 예약 도메인과 테마 도메인 연동 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * feat: 사용자 예약 페이지 요청 API 구현 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * chore: 더미 데이터 삽입 SQL 작성 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * feat: 특정 날짜의 특정 테마 예약 정보 조회 기능 구현 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * docs: 인기 테마 API 명세 추가 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * feat: 인기 테마 조회 기능 구현 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * refactor: 테스트 성능 개선 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * refactor: 메서드 분리 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * style: 완료된 TODO 제거 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * style: 테스트 given, when, then 분리 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * style: TODO 제거 Co-authored-by: PgmJun <chltmdwns96@gmail.com> Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com> * docs: 테마 인기순 조회 API 문서 작성 * refactor: 컨트롤러 공통 Endpoint 매핑 해제 * style: 메서드 인자 개행 수정 * style: 코드라인 정리 * refactor: HTTP Response 형식 수정(List -> Object) * style: 컨트롤러 메서드 네이밍 변경 * style: DAO 메서드 네이밍 변경 * style: Service 메서드 네이밍 변경 * refactor: 메서드 인자 final로 불변 처리 * refactor: 예약 시간 정보 조회 API Endpoint 수정 * refactor: 테스트에서 컴포넌트 객체 사용을 위해 Import 애노테이션 적용 * refactor: 예외 발생 시 Response도 Object로 처리하도록, 응답 객체 ApiResponse 구현 그저 String을 return하는 방식은 이후 응답 데이터 확장 설계를 할 때 클라이언트의 응답값 흭득 방식에 변경이 발생해야하기 때문에 break change가 발생 때문에 요청 정보/에러 정보를 담은 응답 객체(ApiResponse)를 두어 사용 * test: MVC Controller 테스트 작성 * feat: 입력부 검증 로직 구현 * feat: 도메인 검증 로직 구현 * refactor: 예약 시간 정보 조회 로직 - 서브 쿼리 사용하여 하나의 SQL로 조회하도록 수정 * refactor: 테스트 코드 `@BeforeEach` 제거하고 필요한 곳에서만 데이터 삽입해주도록 변경 * fix: 00:30분 일때 1시간 전은 23:30분 이기 때문에 다른 날짜로 판별되어 테스트코드 실패하는 문제 해결 * style: Repository 네이밍 용도에 맞도록 Dao로 변경 * refactor: 특정 기간 사이 인기테마 조회 API 쿼리스트링으로 날짜값 받도록 변경 * refactor: 의미가 불분명한 ConflictException 네이밍 변경 (DataConflictException) * refactor: 에러 메시지 클라이언트 친화적으로 개선 * refactor: Location 헤더 상수 사용하도록 변경 * refactor: 로깅 예외 메시지 구체화 * refactor: 인기테마 조회 API에 defaultValue 적용 * refactor: 복잡성 제거를 위해 ApiResponse isSuccess 필드 제거 * refactor: 예약 시간 정보 조회 쿼리에서 의미없는 조인 쿼리 제거 * refactor: 조건식 가독성 향상을 위한 조건문 분리 * fix: 잘못된 예외 객체 사용 로직 수정 (DataConflict -> Validate) * fix: 불필요한 포맷팅 애노테이션 제거 --------- Co-authored-by: J-I-H-O <jeongjiho0731@gmail.com>
- Loading branch information