위의 데이터 모델링 원칙에 따라 여행 관리 기능의 핵심 엔터티인 Trip과 상태를 나타내는 TripStatus Enum을 설계했습니다.
Trip 엔터티: 여행의 제목, 기간, 예산 등 핵심 정보를 관리하며, User 엔터티와 다대일(N:1) 관계를 맺습니다.
TripRepository: JpaRepository를 상속받아 Trip 데이터의 기본적인 CRUD 연산을 담당합니다.
build.gradle에 QueryDSL 의존성을 추가하고, JPAQueryFactory를 Bean으로 등록했습니다.TripRepositoryCustom 인터페이스에 동적 쿼리 메서드를 선언합니다.TripRepositoryImpl 구현체에서 JPAQueryFactory를 사용하여 실제 동적 쿼리 로직을 작성합니다.TripSearchCondition DTO: 클라이언트의 검색 조건을 담는 객체입니다.where() 다중 파라미터: TripSearchCondition의 필드 값이 존재할 경우에만 where 절에 해당 조건을 추가하여 동적으로 쿼리를 생성합니다.orderBy()와 OrderSpecifier: 검색 조건에 포함된 정렬 기준에 따라 정렬 순서를 동적으로 변경합니다.