Skip to content

Commit

Permalink
deploy: v1.0.2 (#369)
Browse files Browse the repository at this point in the history
* refactor: PR 템플릿 파일명 및 경로 수정

* refactor: pr 템플릿 경로 수정

Co-authored-by: linirini <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: YoonJuHo <[email protected]>

* �docs: 서비스 소개글 작성 (#127)

* docs: PR 템플릿 오타 수정 (#154)

- 오타 수정 및 개행 조정
- Issue Number 태그 형식 추가

* deploy: 스타카토 v1.0.0 #312 (#313)

* init: 프로젝트 세팅

* refactor: PR 템플릿 파일명 및 경로 수정

* refactor: pr 템플릿 경로 수정

Co-authored-by: linirini <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: YoonJuHo <[email protected]>

* build: develop-be 브랜치의 CI 설정 #6 (#7)

* build: 초기 ci 템플릿 생성

Co-authored-by: linirini <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: YoonJuHo <[email protected]>

* build: ci 초기 트리거 설정

Co-authored-by: linirini <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: YoonJuHo <[email protected]>

* fix: 권한 수정 설정

Co-authored-by: linirini <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: YoonJuHo <[email protected]>

* fix: working directory 설정

Co-authored-by: linirini <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: YoonJuHo <[email protected]>

* fix: 권한 재설정

Co-authored-by: linirini <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: YoonJuHo <[email protected]>

---------

Co-authored-by: linirini <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: YoonJuHo <[email protected]>

* feat: Entity 구성 #2 (#17)

* chore: 데이터 베이스 설정

* feat: Base Entity 구성

* feat: Pin Entity 구성

* feat: Travel Entity 구성

* feat: Member Entity 구성

* feat: Mate Entity 구성

* feat: Visit Entity 구성

* feat: Visit Image Entity 구성

* feat: Visit Log Entity 구성

* refactor: Table 애노테이션 삭제

* refactor: Soft Delete 적용

* feat: ControllerAdvice 생성 #29 (#34)

* feat: Visit domain skeleton 구현 #31 (#37)

Co-authored-by: linirini <[email protected]>

* feat: Travel Domain Skeleton Code 작성 #32 (#36)

* feat: travel skeleton code 작성

* feat: travel 생성, 수정 dto 작성 및 예외 핸들링

* feat: Mate 도메인 빌더 추가

* style: 코드 컨벤션 준수를 위한 공백 제거

* build: Docker Compose Setting #27 (#40)

* chore: gitignore 파일 추가

* chore: mysql 디펜던시 추가

* chore: Profile 분리

* feat: Docker 파일 설정

* feat: 여행 상세 생성 API 구현 #18 (#43)

* build: RestAssured 의존성 추가

* test: 여행 상세 생성 인수 테스트 작성

* feat: 임시 MemberIdArgumentResolver 구현

* feat: Lombok 추가

* feat: Database 초기화 구현

* feat: 여행 상세 성공 서비스 구현

* fix: resolveArgument 반환 타입 오류 수정

* feat: 여행 상세 생성 성공 컨트롤러 구현

* feat: 여행 상세 생성 시 필수값 누락 검증 구현

* test: 글자 수 제한 검증 인수 테스트 추가

* refactor: 생성자에 builder 지정

* feat: 시작 날짜와 끝 날짜 도메인 검증 구현

* feat: 시작 날짜와 끝 날짜 예외 처리 테스트 및 구현

* style: 코드 컨벤션 적용

* refactor: parameter명 변경

* feat: transactional 적용

* style: paremeter 형식 통일

* style: parameter 형식 통일

* refactor: display name 오류 수정

* refactor: 불필요한 상수 제거

* refactor: paramterized test로 리팩터링

* style: 개행 제거

* refactor: 인자 변경

* refactor: 공통 예외 클래스명 변경

* feat: 범위 예외 핸들러 추가

* refactor: 서비스, 통합 테스트 보일러 플레이트 코드 제거

* refactor: builder 사용 시 필수 값 누락 제약 추가

* refactor: 도메인으로 변환하는 메서드를 dto에 추가

* build: CD yml 파일 구성 #28 (#53)

* feat: CI/CD 설정

* feat: CI/CD 검증용 트리거 설정

* fix: CI/CD workflow 수정

* fix: CI/CD workflow 재수정

* fix: CI/CD workflow 절대 경로 수정

* chore: DDL 생성 전략 변경

* chore: dev 환경 DDL 생성 전략 변경

* refactor: 검증용 트리거 제거

* fix: 도커 이미지 기반 컨테이너 생성으로 변경

* refactor: 중간 테이블 엔티티 수정 #56 (#57)

* refactor: 중간 테이블명 TravelMember로 변경

* refactor: 중간 테이블 OneToMany 필드 추가

* refactor: Member OneToMany 제거

* refactor: OneToMany List 초기화

* refactor: 연관관계 편의 메서드 사용

* chore: ddl 전략 임시 변경

* chore: ddl 전략 변경

* feat: 특정 방문 기록 삭제 API 구현 #26 (#42)

* feat: 특정 방문 기록 삭제 API 구현

* feat: 양수가 아닌 id로 특정 방문 기록 삭제를 시도할 때 예외 처리 기능 구현

* feat: 방문 기록 삭제 시 방문 로그도 함께 삭제되는 기능 구현

* refactor: 커스텀 예외를 제거하는 방향으로 변경

* fix: 예외를 못 잡던 문제 해결

* refactor: 메서드명 적절하게 변경

* build: Docker Compose Setting #27 (#40)

* chore: gitignore 파일 추가

* chore: mysql 디펜던시 추가

* chore: Profile 분리

* feat: Docker 파일 설정

* feat: 여행 상세 생성 API 구현 #18 (#43)

* build: RestAssured 의존성 추가

* test: 여행 상세 생성 인수 테스트 작성

* feat: 임시 MemberIdArgumentResolver 구현

* feat: Lombok 추가

* feat: Database 초기화 구현

* feat: 여행 상세 성공 서비스 구현

* fix: resolveArgument 반환 타입 오류 수정

* feat: 여행 상세 생성 성공 컨트롤러 구현

* feat: 여행 상세 생성 시 필수값 누락 검증 구현

* test: 글자 수 제한 검증 인수 테스트 추가

* refactor: 생성자에 builder 지정

* feat: 시작 날짜와 끝 날짜 도메인 검증 구현

* feat: 시작 날짜와 끝 날짜 예외 처리 테스트 및 구현

* style: 코드 컨벤션 적용

* refactor: parameter명 변경

* feat: transactional 적용

* style: paremeter 형식 통일

* style: parameter 형식 통일

* refactor: display name 오류 수정

* refactor: 불필요한 상수 제거

* refactor: paramterized test로 리팩터링

* style: 개행 제거

* refactor: 인자 변경

* refactor: 공통 예외 클래스명 변경

* feat: 범위 예외 핸들러 추가

* refactor: 서비스, 통합 테스트 보일러 플레이트 코드 제거

* refactor: builder 사용 시 필수 값 누락 제약 추가

* refactor: 도메인으로 변환하는 메서드를 dto에 추가

* build: CD yml 파일 구성 #28 (#53)

* feat: CI/CD 설정

* feat: CI/CD 검증용 트리거 설정

* fix: CI/CD workflow 수정

* fix: CI/CD workflow 재수정

* fix: CI/CD workflow 절대 경로 수정

* chore: DDL 생성 전략 변경

* chore: dev 환경 DDL 생성 전략 변경

* refactor: 검증용 트리거 제거

* fix: 도커 이미지 기반 컨테이너 생성으로 변경

* fix: rebase 과정에서 파일이 꼬인 문제 해결

* test: HttpHeaders.AUTHORIZATION 사용

* refactor: 중간 테이블 엔티티 수정 #56 (#57)

* refactor: 중간 테이블명 TravelMember로 변경

* refactor: 중간 테이블 OneToMany 필드 추가

* refactor: Member OneToMany 제거

* refactor: OneToMany List 초기화

* refactor: 연관관계 편의 메서드 사용

* chore: ddl 전략 임시 변경

* chore: ddl 전략 변경

* feat: Pin, Visit, VisitLog 생성자에 builder 추가

* feat: Pin repository 추가

* refactor: visit이 삭제되기 전에 visit에 의존하는 visitLog들이 먼저 삭제되도록 순서 변경

* test: 방문 기록 삭제에 대한 서비스 슬라이스 테스트 추가

* test: 방문 기록이 갖는 모든 방문 로그 삭제 메서드 테스트

* fix: Modifying을 사용할 때 영속성컨텍스트와 관련하여 발생하던 문제 해결

* refactor: visitLog의 content를 필수값으로 변경

* test: 컨벤션에 맞게 Controller 테스트 클래스 변경

* fix: ConstraintViolationException의 예외 메시지를 정해둔 형식에 맞게 변경

---------

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: linirini <[email protected]>

* refactor: 여행 상세 생성 서비스 반환 타입 변경 (#63)

* feat: 여행 상세 목록 조회 API 구현 #19 (#60)

* test: 여행 상세 목록 조회 통합 테스트 작성

* feat: 여행 상세 목록 조회 DTO 구현

* feat: 모든 여행 상세 목록 조회 서비스 구현

* refactor: 미사용 반환값 제거

* feat: 년도 조건에 따른 여행 상세 조회 서비스 구현

* test: import 수정

* test: 년도와 사용자 식별자로 여행 목록 조회하는 JPQL 테스트 추가

* style: 코드 컨벤션 적용

* test: 여행 상세 목록 조회 컨트롤러 구현

* test: disabled 제거 및 테스트 오류 수정

* refactor: 불필요한 변수 분리 제거

* refactor: Optional로 분기 처리

* test: DisplayName 수정

* refactor: DTO 이름 변경

* feat: 방문 기록 생성 API 구현 #21 (#64)

* feat: 방문 기록 생성 기능 구현

* feat: getter 및 builder 추가

* feat: VisitService에 Transactional 적용

* test: 방문 기록 생성 테스트

* fix: 오타 수정

* style: 코드 컨벤션 적용

* fix: deleteById에 Transactional annotation 추가

* refactor: builder 파라미터 NonNull 설정 추가

* refactor: 데이터 개수 감소

* refactor: 예외 메시지 구체화 및 상태 코드 변경

* feat: 특정 여행 상세 수정 API 구현 #22 (#62)

* build: Docker Compose Setting #27 (#40)

* chore: gitignore 파일 추가

* chore: mysql 디펜던시 추가

* chore: Profile 분리

* feat: Docker 파일 설정

* feat: 여행 상세 생성 API 구현 #18 (#43)

* build: RestAssured 의존성 추가

* test: 여행 상세 생성 인수 테스트 작성

* feat: 임시 MemberIdArgumentResolver 구현

* feat: Lombok 추가

* feat: Database 초기화 구현

* feat: 여행 상세 성공 서비스 구현

* fix: resolveArgument 반환 타입 오류 수정

* feat: 여행 상세 생성 성공 컨트롤러 구현

* feat: 여행 상세 생성 시 필수값 누락 검증 구현

* test: 글자 수 제한 검증 인수 테스트 추가

* refactor: 생성자에 builder 지정

* feat: 시작 날짜와 끝 날짜 도메인 검증 구현

* feat: 시작 날짜와 끝 날짜 예외 처리 테스트 및 구현

* style: 코드 컨벤션 적용

* refactor: parameter명 변경

* feat: transactional 적용

* style: paremeter 형식 통일

* style: parameter 형식 통일

* refactor: display name 오류 수정

* refactor: 불필요한 상수 제거

* refactor: paramterized test로 리팩터링

* style: 개행 제거

* refactor: 인자 변경

* refactor: 공통 예외 클래스명 변경

* feat: 범위 예외 핸들러 추가

* refactor: 서비스, 통합 테스트 보일러 플레이트 코드 제거

* refactor: builder 사용 시 필수 값 누락 제약 추가

* refactor: 도메인으로 변환하는 메서드를 dto에 추가

* build: CD yml 파일 구성 #28 (#53)

* feat: CI/CD 설정

* feat: CI/CD 검증용 트리거 설정

* fix: CI/CD workflow 수정

* fix: CI/CD workflow 재수정

* fix: CI/CD workflow 절대 경로 수정

* chore: DDL 생성 전략 변경

* chore: dev 환경 DDL 생성 전략 변경

* refactor: 검증용 트리거 제거

* fix: 도커 이미지 기반 컨테이너 생성으로 변경

* refactor: 중간 테이블 엔티티 수정 #56 (#57)

* refactor: 중간 테이블명 TravelMember로 변경

* refactor: 중간 테이블 OneToMany 필드 추가

* refactor: Member OneToMany 제거

* refactor: OneToMany List 초기화

* refactor: 연관관계 편의 메서드 사용

* chore: ddl 전략 임시 변경

* chore: ddl 전략 변경

* feat: 비어있는 요청 에러 핸들링 추가

* feat: 특정 여행 상세 수정 서비스 구현

* feat: 특정 여행 상세 수정 컨트롤러 구현

* feat: 비어있는 요청 에러 핸들링 추가

* feat: 특정 여행 상세 수정 서비스 구현

* feat: 특정 여행 상세 수정 컨트롤러 구현

* refactor: DirtiesContext 삭제

* refactor: Transactional 읽기 전용 옵션 구성

* feat: 방문 기록 날짜 검증 로직 추가

* refactor: 메서드 체이닝 적용

* refactor: 수정 작업 테스트 환경 동일하게 유지

---------

Co-authored-by: linirini <[email protected]>
Co-authored-by: devhoya97 <[email protected]>

* fix: 논리적 삭제 데이터는 조회에서 제외 #66 (#68)

* test: 쿼리 메서드 사용

* fix: sqlDelete문에 테이블명 변경사항 반영

* fix: 삭제된 데이터 제외하고 조회하도록 조건 추가

* fix: 삭제된 데이터 제외하고 조회하도록 조건 추가

* fix: 특정 방문 기록 삭제 API 호출 시 관련된 VisitImage를 모두 삭제하도록 수정 #65 (#67)

* feat: visitId에 맞는 visitImage들을 모두 삭제하는 기능 구현

* fix: visit을 삭제해도 visit에 포함된 모든 visitImage들이 삭제되지 않던 문제 해결

* test: 엔티티 생성시 가독성을 위한 개행 삭제

* refactor: JPQL에서 VisitLog를 vl로 축약

* fix: 충돌해결

* test: 경계값에 포함되지 않는 변수 제거

* feat: 특정 여행 상세 조회 API 구현 #20 (#73)

* test: 특정 여행 상세 조회 통합 테스트 작성

* feat: 특정 여행 상세 조회 DTO 구현

* fix: 삭제되지 않은 데이터만 찾도록 쿼리 메서드 수정

* feat: 특정 여행 상세 조회 서비스 구현

* feat: 특정 여행 상세 조회 컨트롤러 구현

* test: 존재하지 않는 특정 여행 상세 조회 테스트

* feat: null 필드 응답에 미포함 구현

* style: 코드 컨벤션 적용

* fix: 응답 형식 오류 수정

* feat: 특정 여행 상세 삭제 API 구현 #24 (#72)

* style: 코드 컨벤션 적용

* feat: 특정 여행 상세 삭제 서비스 구현

* feat: 특정 여행 상세 삭제 컨트롤러 구현

* refactor: 검증 메서드 분리

* refactor: Visit 논리적 삭제 전파 순서 수정

* feat: 특정 방문 기록 조회 API 구현 #25 (#76)

* feat: 특정 방문 기록 조회 API 기능 구현

* fix: Repository 조회시 논리적 삭제가 되지 않은 엔티티들만 가져오도록 변경

* test: System.out 메서드 제거

* refactor: 메서드명 통일 및 CRUD 순서로 배치

* refactor: 사용하지 않는 DTO 제거

* test: 서비스 메서드명 변경에 따른 테스트 메서드명 변경

* fix: 특정 방문 기록이 몇 번째 방문인지 계산할 때, 더 늦게 방문한 기록까지 세던 문제 해결

* test: 몇 번째 방문인지 계산할 때, 이전의 방문만 셀 수 있는지 테스트

* feat: Pin 연관관계 추가 #80 (#83)

* feat: Pin에 Member 연관관계 추가

* refactor: private 보조 메서드 순서 변경

* feat: logging 추가 #86 (#89)

* feat: 간단한 Error Logging 추가

* refactor: Logging Level 변경

* feat: VisitLog, VisitImage 양방향 관계 설정 및 논리적 삭제 제거 #87 (#88)

* feat: visitLog, visitImage 논리적 삭제 제거

* feat: visitLog, visitImage 양방향 설정 및 양방향 관계 설정에 따른 여행, 방문기록 삭제 로직 변경

* fix: 여행 상세 수정 날짜 필터링 오류와 썸네일 저장 오류 수정 #90 (#91)

* fix: 여행 상세 수정 날짜 필터링 오류 수정

* fix: 여행 상세 생성 시 썸네일을 저장하지 않는 오류 수정

* refactor: dto 필드 수정 (#95)

* feat: 여행 상세 목록 조회 시 최신순 정렬 #96 (#100)

* feat: 여행 상세 목록 최신순으로 조회

* refactor: JPQL 메서드명 변경

* feat: 특정 여행 상세 조회 API에서 방문 기록 오래된 순 정렬 #101 (#102)

* refactor: 반환값 제거 및 미사용 Param 제거

* feat: 특정 여행 상세 조회 시 방문 기록 오래된 순 조회 구현

* fix: Travel 삭제시 발생하는 오류 수정 #103 (#105)

* fix: 여행에 포함된 방문 기록의 존재 여부를 검사할 때 논리적으로 삭제되지 않은 방문 기록만 고려하도록 수정

* fix: 여행을 삭제하면 연관된 TravelMember에 논리적 삭제가 전파되도록 수정

* refactor: JPQL에서 쿼리메서드로 변경

* refactor: @SQLRestriction으로 soft-delete하도록 변경 #106 (#107)

* refactor: @SQLRestriction으로 soft-delete하도록 변경

* fix: 정렬 조건 누락 추가

* test: displayName 변경

* docs: swagger 컨벤션 설정 및 적용 (#116)

* build: 중복 의존성 정의 제거

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: BurningFalls <[email protected]>

* build: OpenApi 의존성 추가

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: BurningFalls <[email protected]>

* chore: 전역적인 media type 설정

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: BurningFalls <[email protected]>

* chore: open api skeleton code 작성

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: BurningFalls <[email protected]>

* fix: constraint redefine 불가로 인한 오류 수정

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: BurningFalls <[email protected]>

* style: 의미없는 개행 제거

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: BurningFalls <[email protected]>

* docs: 누락된 설명 추가

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: BurningFalls <[email protected]>

---------

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: BurningFalls <[email protected]>

* feat: Entity 수정 (#119)

* feat: 엔티티 구조 변경

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: BurningFalls <[email protected]>

* style: 불필요한 개행 제거

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: BurningFalls <[email protected]>

---------

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: BurningFalls <[email protected]>

* build: 사용하지 않는 도커 이미지 삭제 workflow 구성 #84 (#120)

* build: CD 작업 시 기존 도커 이미지 삭제

* build: CD 작업 시 기존 도커 이미지 삭제 순서 변경

* build: CD 트리거 수정

* refactor: 엔티티 수정 #125 (#126)

* refactor: base entity 필드명 수정

* refactor: visitLog에 base Entity 추가 및 논리적 삭제 구현

* feat: 로그인 API 구현 #123 (#128)

* build: jwt 의존성 추가

* chore: jwt 관련 환경 설정 추가

* test: 회원 생성 및 토큰 발급 성공 테스트 & 닉네임 중복 테스트 추가

* feat: 토큰 발급 구현

* feat: 로그인 서비스 구현

* feat: 로그인 컨트롤러 구현

* feat: 닉네임 VO 분리 및 예외 처리 구현

* refactor: getter 재정의 제거

* test: 닉네임 형식 예외 처리에 따른 테스트 수정

* feat: 필수값 누락 예외 처리 구현

* style: 코드 컨벤션 적용

* refactor: 누락된 dto 패키지 추가

* refactor: 애너테이션명 변경

* feat: 토큰 파싱해서 member 찾도록 resolver 구현

* fix: @MemberId -> @LoginMember로 변경되며 long에서 member로 타입 변경에 따른 테스트 실패 수정

* style: 코드 컨벤션 적용

* feat: 401 예외 핸들러 구현

* docs: swagger 명세 추가

* feat: 인가 관련 예외 & 핸들러 추가

* test: authorization 헤더 로직 구현에 따른 테스트 수정

* chore: CI run 임시 수정

* refactor: 필드 접근 제어자 수정

* refactor: 변수 분리

* test: 테스트명 수정

* refactor: handler 메서드명 변경

* docs: 예외 설명 추가

* refactor: 상수 재활용

* docs: schema description 수정

* refactor: 불필요한 개행 제거

* docs: 예외 발생 상황 설명 수정

* test: 토큰 생성 검증 추가

* chore: CI run 이전 상태로 수정

* docs: 응답 명세 작성

* feat: transactional 적용

* chore: CI run을 self hosted로 임시 변경

* fix: CD 실패로 인한 workflow 수정 (#135)

* build: jwt 의존성 추가

* chore: jwt 관련 환경 설정 추가

* test: 회원 생성 및 토큰 발급 성공 테스트 & 닉네임 중복 테스트 추가

* feat: 토큰 발급 구현

* feat: 로그인 서비스 구현

* feat: 로그인 컨트롤러 구현

* feat: 닉네임 VO 분리 및 예외 처리 구현

* refactor: getter 재정의 제거

* test: 닉네임 형식 예외 처리에 따른 테스트 수정

* feat: 필수값 누락 예외 처리 구현

* style: 코드 컨벤션 적용

* refactor: 누락된 dto 패키지 추가

* refactor: 애너테이션명 변경

* feat: 토큰 파싱해서 member 찾도록 resolver 구현

* fix: @MemberId -> @LoginMember로 변경되며 long에서 member로 타입 변경에 따른 테스트 실패 수정

* style: 코드 컨벤션 적용

* feat: 401 예외 핸들러 구현

* docs: swagger 명세 추가

* feat: 인가 관련 예외 & 핸들러 추가

* test: authorization 헤더 로직 구현에 따른 테스트 수정

* chore: CI run 임시 수정

* refactor: 필드 접근 제어자 수정

* refactor: 변수 분리

* test: 테스트명 수정

* refactor: handler 메서드명 변경

* docs: 예외 설명 추가

* refactor: 상수 재활용

* docs: schema description 수정

* refactor: 불필요한 개행 제거

* docs: 예외 발생 상황 설명 수정

* test: 토큰 생성 검증 추가

* chore: CI run 이전 상태로 수정

* docs: 응답 명세 작성

* feat: transactional 적용

* chore: CI run을 self hosted로 임시 변경

* chore: CI run을 self hosted로 권한 부여

* chore: CI/CD workflow 트리거 임시 설정

* chore: CI/CD runs on 재설정

* chore: CI/CD workflow 권한 재설정

* chore: CI/CD workflow 권한 재설정

* chore: CI/CD workflow 임시용 트리거 제거

* fix: TravelResponses 필드 wrapping 오류 수정 (#145)

* refactor: 방문기록 조회/수정 도메인 변경으로 인한 수정 #121 (#131)

* feat: 특정 방문 기록 조회 API 문서화

* test: Test Fixture 생성

* refactor: 특정 방문 기록 조회 서비스 수정

* test: 특정 방문 기록 조회 컨트롤러 단위 테스트 추가

* refactor: API 명세에 맞게 변수명 변경

* feat: 일급컬렉션 구성 및 연관관계 편의 메서드 위치 변경

* feat: 특정 방문 기록 수정 서비스 구현

* feat: 특정 방문 기록 수정 컨트롤러 구현

* fix: ci 환경 변경

* feat: Multipart 문서화 및 검증 로직 추가

* refactor: 검증하고자 하는 부분을 명시적으로 표현

* refactor: 상수 접근제어자 변경

* refactor: NoArgsConstructor 접근 제어자 변경

* refactor: 생성자 Builder로 표현

* refactor: 부정으로만 사용되는 메서드 명 변경

* refactor: 메서드 명 변경

* refactor: 테스트 검증 방법 변경

* fix: 수정 요청 값 필수

* feat: 메시지 검증 로직 추가

* refactor: 불필요한 Content 애노테이션 제거

* refactor: API 명세 요청 변수 명 변경으로 인한 필드 명 수정

* refactor: 메서드 분리

* fix: AuthService Mocking

* refactor: 명세에 맞게 닉네임 필드 명 변경

* refactor: 방문 기록 생성/삭제 도메인 변경으로 인한 수정 #122 (#129)

* refactor: api명세에 맞게 필드명 변경

* test: TDD를 위한 컨트롤러 테스트코드 작성

* refactor: 방문 상세 생성 컨트롤러 api명세에 맞게 리팩토링

* refactor: 코드 컨벤션에 맞게 필드와 어노테이션을 다른 줄로 구분

* fix: 여행 식별자가 양수인지 검증하는 코드 추가

* test: 방문 기록을 생성할 수 없는 케이스 테스트

* feat: 사진이 5장을 초과하면 예외처리 기능 구현

* refactor: API 명세의 이름과 변수명 통일

* test: 방문 기록 생성 테스트 추가

* test: 메서드 명을 명확하게 변경

* fix: visitImagesUrl이 null일 때 NPE가 발생하는 문제 수정

* test: 양수가 아닌 식별자로 방문 기록 삭제시 예외 발생 테스트

* refactor: 코드 컨벤션에 맞게 컨트롤러 코드 수정

* test: Visit을 삭제하면 VisitImage도 삭제되는지 테스트

* refactor: 방문 기록 생성시 경계값을 테스트하면서 필요없어지는 메서드 제거

* refactor: 방문 기록 삭제 시 visitId는 null일 수 없으므로 long 타입으로 변경

* test: 방문 기록과 관련된 통합테스트 제거

* test: invalidVisitRequestProvider의 위치를 맨 위로 이동

* fix: 여행 기간에 포함되지 않는 방문 기록은 생성하지 못하도록 수정

* refactor: 가독성을 위한 예외 메시지 수정

* refactor: 불필요한 개행 제거

* refactor: 컨벤션에 맞게 메서드 위치 변경

* test: 가독성을 위한 개행 추가

* refactor: 검증 메서드명을 더 명확하게 수정

* feat: 방문 기록 생성에 Swagger 적용

* fix: visitImageFile이 필수 값으로 설정되어 있던 버그 수정

* refactor: 패키지 위치 적절하게 변경

* feat: 방문 기록 생성 DTO에 Swagger 적용

* feat: 방문 기록 삭제 Swagger 적용

* test: 방문 기록 생성시 경계값 성공 테스트 추가

* refactor: dto에 Schema 설명 추가

* refactor: 방문 사진이 없는 경우 null이 아닌 빈 리스트로 오므로 null 체크 제거

* test: mockMvc 검증에서 content 활용

* test: 가독성을 위한 변경

* refactor: 추후 ExceptionHandler에서 처리할 상황 제거

* refactor: RequestPart value와 dto 변수명을 명세에 맞게 변경

* refactor: null 값을 다룰 가능성이 없는 필드에 Long이 아닌 long을 사용

* test: DisplayName을 더 명확하게 수정

* refactor: 코드 컨벤션에 맞게 개행 제거

* test: 상수 활용

* refacotr: VisitControllerDocs에 @Parameter 추가

* refacotr: 컨트롤러 메서드 순서를 CRUD순으로 정렬

* refactor: 방문기록 생성 시 이미지가 없어도 빈 리스트가 오므로 required=false 제거

* test: 자동정렬로 인한 의도치 않은 개행 제거

* feat: 여행 상세 생성 API 수정 #141 (#147)

* refactor: where 검증절 이동

* feat: 여행 상세 생성 서비스에서 multipart 처리 위한 기반 코드 구현

* feat: 여행 상세 생성 컨트롤러에서 multipartFile 받도록 구현

* docs: 여행 상세 생성 명세서 작성

* docs: 여행 상세 생성 명세서 상 key 오류 수정

* docs: 여행 상세 생성 명세서 상 설명 오타 수정

* refactor: cascadeType 변경 및 부모 엔티티가 관리하도록 수정

* test: 모호한 displayName 수정

* refactor: persist 전파 위해 순서 변경

* feat: 여행 상세 목록 조회, 특정 여행 상세 조회, 특정 여행 상세 삭제 API 수정 #148 (#149)

* docs: 여행 상세 목록 조회 API 문서화

* docs: 특정 여행 상세 조회 API 문서화

* docs: 공통 예외 문서화

* docs: 특정 여행 상세 삭제 API 문서화

* refactor: 응답 변수 분리

* feat: 특정 여행 상세 조회 시 권한 예외 처리 구현

* feat: 특정 여행 상세 삭제 시 권한 예외 처리 구현

* refactor: 메서드 순서 조정 (CRUD 순서)

* fix: dto 필드 오류 수정

* test: 여행 상세 목록 조회 테스트 작성

* test: 특정 여행 상세 조회 테스트 작성

* test: 특정 여행 상세 삭제 컨트롤러 테스트 작성

* test: 여행 상세 목록 조회 JPQL 테스트 수정

* docs: example 제거

* fix: 동일성 비교

* test: 가독성있게 pathVariable 분리

* refactor: 방문기록 썸네일 메서드 분리

* fix: 삭제하려는 여행 상세 없을 시 예외 발생하지 않도록 수정

* refactor: member entity 외 논리적 삭제 제거 #132 (#156)

* refactor: member 외 soft delete 제거

* chore: ddl 교체 위한 환경 임시 변경

* fix: 닉네임 형식 수정 #157 (#158)

* fix: 닉네임 형식 수정

* chore: ddl 변경 위한 환경 임시변경

* feat: AWS S3 SDK 구현 (#137)

* build: aws sdk 의존성 추가

* chore: application-secrets 반영하도록 변경

* chore: multipart 최대파일크기와 최대요청크기를 10MB로 확장

* feat: S3Client 설정 커스텀

* feat: S3Exception 에러 핸들러 추가

* feat: s3Client를 사용하는 CloudStorageClient 생성

* feat: 이미지를 S3에 올리고 URL을 받아오는 비즈니스 로직 작성

* feat: file upload API 구현

* chore: pull_request에도 CD가 적용되도록 임시 변경

* chore: secret 변수들을 env로 관리하도록 변경

* chore: dev 서버도 멀티파트 용량 확장

* chore: application.yml 파일에 cloud 관련 재설정

* chore: cd 과정에서 환경 변수 설정하기

* fix: env 파일 인식하도록 수정

* fix: CI/CD에서 env를 읽을 수 있도록 수정

* chore: pull_request 시 CD 돌아가지 않도록 수정

* chore: pull_request 시 CD 돌아가도록 임시 수정

* fix: dev에 빠진 security 설정 추가

* chore: dev에도 cloud 관련 설정 추가

* chore: yml 파일 롤백

* chore: ci/cd workflow 롤백

* chore: cloud 관련 설정 추가

* chore: 이미지 용량 제한 늘리는 설정 추가

* chore: yml에 실제 값 대입

* chore: pull_request에도 CD가 적용되도록 임시 수정

* fix: s3Client build를 CLoudStorageClient에서 수행

* chore: cloud 관련 설정 값 대입

* refactor: s3Client build를 S3ClientConfig에서 수행

* refactor: s3Client build를 CloudStorageClient에서 수행

* fix: 파일 경로 오류 수정

* fix: 파일 경로 오류 수정

* fix: 파일 경로 오류 수정

* fix: 파일 경로 오류 수정

* fix: 파일 경로 오류 수정

* fix: 파일 경로가 버킷을 포함하지 않도록 수정

* feat: file 이름이 겹치는 경우, UUID를 뒤에 붙이는 기능 구현

* chore: push에만 cd가 적용되도록 다시 변경

* refactor: 에러 메시지 변경

* refactor: MultipartFile 여러 개 받을 수 있도록 수정

* feat: S3 객체 삭제하는 API 구현

* chore: pull_request에도 cd가 적용되도록 다시 변경

* chore: push에만 cd가 적용되도록 다시 변경

* style: ci/cd workflow endline 롤백

* feat: 방문 기록 관련 인가 구현 #140 (#161)

* feature: 특정 방문기록 조회시 인가 처리

* feature: 특정 방문기록 수정, 삭제시 인가 처리

* style: 미사용 import 제거

* feat: 방문 기록 생성 시 여행 상세의 주인인지 인가 추가

* refactor: 불필요한 개행 제거

* test: 테스트 실패 지점을 하나로 수정

* chore: 서버 DDL 생성 전략 변경

* feat: 여행 상세 수정 API 수정 #142 (#159)

* refactor: 썸네일이 없는 경우 기존 썸네일 유지

* feat: 여행 수정 서비스 multipart와 인가 기능 추가

* feat: 여행 수정 컨트롤러 multipart와 인가 기능 추가

* fix: 여행 썸네일 추출 임시 로직 구성

* refactor: 400 에러 메세지 응답 API 문서에 추가

* docs: id 예시 값 추가

* chore: 개발 서버 DDL 생성 전략 변경

* refactor: 이미지 수정 요청 분기 처리 위치 변경 및 테스트 작성

* feat: 이미지가 필요한 API에 S3 적용 #166 (#168)

* test: S3 테스트를 위해 fake 객체 생성

* feat: 여행 상세 생성 시 S3에 썸네일 저장

* feat: 여행 상세 수정 시 S3에 썸네일 대치

* feat: 방문 기록 생성 시 S3에 이미지 저장

* feat: 방문 기록 수정 시 S3에 이미지 대치

* chore: pull request에도 CD가 돌아가도록 임시 설정

* chore: pull request에도 CD가 돌아가도록 임시 설정한 것 원상복구

* refactor: Objects.isNull 활용 및 메서드 위치 변경

* feat: 로깅 프레임워크 적용 #134 (#171)

* feat: 로거 환경 설정

* feat: 로거 형식 정의

* feat: 요청/응답 로깅 구현

* feat: 예외에 대한 로거 형식 적용

* feat: token 유무 식별 로그 추가

* refactor: thread 식별명 추가

* refactor: 예외 발생 구체 클래스/메서드 로깅

* chore: CD 트리거 수정

* chore: CD 트리거 복원

* chore: 임시 예외 케이스 생성 및 로그 테스트

* chore: 임시 예외 케이스 수정 및 로그 테스트

* chore: 임시 예외 케이스 재수정 및 로그 테스트

* chore: 임시 예외 케이스 삭제

* chore: CD 트리거 복원

* fix: Logging 데이터 변경

* chore: CD 트리거 복원

* fix: Logging 데이터 오류 수정

* chore: CD 트리거 복원

* feat: 로깅 White List 추가

* feat: 방문 기록 목록 조회시 시간 순으로도 정렬되는 기능 구현 (#175)

* feat: 방문 기록의 방문 날짜 저장 시, 시간까지 저장하도록 변경

* fix: request dto에서 LocalDateTime에 대한 패턴이 시간까지 포함하도록 변경

* refactor: 여행에 포함된 날짜인지 비교시 LocalDateTime을 넘겨주도록 변경

* refactor: 사진 url 관련 dto 필드명 끝에 url 추가

* refactor: 기대한대로 작동하지 않는 ExceptionHandler 메서드 주석 처리

* refactor: 파일 이름 및 형식 오류 수정 #176 (#177)

* refactor: 파일 이름을 UUID로만 구성하도록 수정

* refactor: content-type을 multipart/formed-data로 고정

* feat: swagger https 적용하기 #184 (#185)

* feat: swagger가 https 접근 가능하도록 하는 기능 구현

* chore: pull_request에도 CD가 적용되도록 임시 변경

* style: push에만 CD가 적용되도록 롤백

* feat: 빈/공백 문자열 예외 처리 #186 (#187)

* fix: 여행 제목은 공백 문자열 불가, 1자 이상 30자 이하로 설정할 수 있도록 예외 처리

* fix: 방문 기록의 이름은 공백 문자열 불가, 1자 이상 30자 이하로 설정할 수 있도록 예외 처리

* fix: 닉네임의 이름은 공백 문자열 불가, 1자 이상 20자 이하로 설정할 수 있도록 예외 처리

* test: displayName 변경

* fix: Swagger 인증 헤더 형식 변경 #188 (#189)

* fix: Swagger 인증 헤더 수정

* refactor: 로깅 정보 수정

* chore: stage/dev 서버 분리 #192 (#197)

* fix: 포트 수정

* refactor: 설정 파일 profile 별로 분리

* fix: timezone 설정

* refactor: ci-cd 파일명 변경

* refactor: ci-cd 분리

* test: 경계값 테스트로 수정

* test: 경계값 테스트로 수정 및 발생하는 오류 수정

* chore: back-end 개발용 CD 트리거 변경

* fix: 불필요한 파일 삭제

* refactor: stage용 환경 파일 분리

* refactor: DockerFile 분리

* refactor: 태그 설정

* refactor: 태그 설정

* fix: 태그 설정

* fix: 태그 설정

* fix: 태그 설정

* fix: 태그 설정

* fix: 태그 설정

* fix: 태그 설정

* fix: 태그 설정

* fix: 태그 설정 수정

* refactor: CI runs-on 변경

* refactor: dev용 CICD trigger 변경

* refactor: dev용 CICD runs on 변경

* refactor: dev용 CICD trigger 변경

* refactor: runner 재설치로 인해 임시로 변경했던 dev용 CICD runs-on & trigger 복구

* refactor: hub push 시 로그인 재수행

* fix: 명령어 오류 수정

* feat: 단체 계정으로 dockerhub 변경

* refactor: 정상 작동 확인 후 트리거 복구

* fix: image push 시 권한 오류 수정 (#200)

* feat:admin용 계정 로직 추가 (#201)

* fix: add stage logging (#204)

* feat: 이미지 확장자와 content-type 설정 #196 (#202)

* feat: content-type을 확장자로 분석하는 기능 구현

* chore: PR CD 임시 적용

* chore: PR CD 해제

* refactor: dev, stage, local 환경의 swagger url 설정 (#208)

* refactor: 이미지 용량 제한 확장 (한 이미지: 20MB, 한 요청: 100MB) (#206)

* fix: 이미지 전송 안되는 에러 수정 #209 (#210)

* chore: PR CD 임시 적용

* fix: 파일 형식에 .추가 및 디폴트 형식 변경

* temp: 확인용 에러

* temp: 롤백

* refactor: 디폴트 mime type 변경

* temp: 일단 image의 내부 메서드 사용

* fix: file-extension 지정 롤백

* fix: content-type 지정

* temp: 에러 체크를 위해 메시지 임시 변경

* temp: 에러 메시지 롤백

* feat: content-type 확장자로부터 추출

* chore: PR CD 해제

* refactor: API명세 변경에 따른 URI, DTO 변수명 변경 #211 (#212)

* refactor: URI, DTO 변수명 변경

* refactor: DTO 클래스명을 API명세에 맞게 변경

* refactor: imageFile 변수명 변경

* test: pathVariable명을 클래스명을 고려하여 변경

* refactor: 엔티티, 메서드명 API 명세에 맞게 변경

* refactor: 여행을 추억으로, 방문을 순간으로 네이밍 변경

* feat: 추억 목록 조회 API 수정 #215 (#216)

* feat: startAt, endAt 필드 nullable하게 변경

* feat: memory의 createdAt 기준 최신순 정렬로 변경

* style: code convention 적용

* style: 응답 형식 변경 (mates 제거 및 기간 미필수 응답 필드로 변경)

* feat: 올바르지 않은 년도 형식 예외 처리

* refactor: 추억 상세 -> 추억

* test: 메세지 오류 수정

* test: 저장 순서 오류 수정

* refactor: fixture 패키지 이동

* refactor: fixture 분리

* test: 경계값 검증으로 수정

* feat: 사용자 로깅, Nginx 로깅, DB 로깅 #190 (#224)

* feat: MDC 적용

* refactor: 중복 예외 제거

* feat: 사용자 식별 로깅 추가

* refactor: 예외 메세지 형식 json으로 변경

* feat: 추억 삭제 API 수정 #221 (#222)

* feat: 변경사항 docs 반영

* feat: 순간이 존재하는 경우 추억을 삭제할 수 없었던 예외 제거

* style: code convention 적용

* feat: 추억 삭제 시 속한 순간도 함께 삭제되도록 서비스 구현

* refactor: 불필요한 개행 제거

* feat: 추억 조회 API 수정 #227 (#228)

* feat: 기간 필수 여부 변경에 따른 어노테이션 추가

* docs: 도메인명 변경에 따른 명세서 수정

* build: stage 서버 CICD 임시 비활성화 #234 (#235)

* chore: stage 비활성화 적용 전 dev에서 시범 적용

* chore: dev 서버 cicd 비활성화 해제

* chore: dev 서버 cicd 트리거 복구

* chore: stage 서버 cicd 임시 비활성화

* feat: 댓글 생성, 조회 API 구현 #214 (#225)

* refactor: 댓글과 관련된 클래스를 별도의 패키지로 분리

* test: tdd를 위한 댓글 생성 서비스 테스트 추가

* feat: 댓글 생성 서비스 메서드 구현

* test: 댓글 생성 관련 컨트롤러 테스트 코드 작성

* feat: 댓글 생성 기능 구현

* feat: 댓글 조회 서비스 메서드를 위한 tdd 틀 작성

* feat: 댓글 조회 서비스 메서드 구현

* test: 댓글 컨트롤러 테스트 클래스 패키지 위치 변경

* refactor: 댓글 읽기 메서드명을 더 명확하게 변경

* test: 댓글 읽기 테스트 코드 추가

* feat: 댓글 읽기 컨트롤러 메서드 구현

* feat: 댓글 생성, 조회 API에 swagger 적용 및 순간 기록을 순간으로 변경

* fix: Swagger 적용으로 인한 문제 해결

* test: 순간 기록이라는 말을 순간으로 변경

* refactor: 댓글의 글자수로 인한 예외 메시지에 '1자 이상'이라는 말을 제거

* fix: 댓글 생성 메서드에 Transactional 적용

* chore: stage 서버 CI/CD 활성화

* feat: 감정 선택 API 구현 #230 (#236)

* feat: 기분 유형 생성

* feat: Moment 비즈니스 로직에 기분 표현 적용

* feat: 기분 표현 컨트롤러 구현

* feat: default 기분 생성

* style: 코드 컨벤션 적용

* refactor: 예외 메세지 변경

* feat: 순간 생성 API 구현 #226 (#229)

* refactor: 기한이 없는 memory 구현

* test: 기한없는 Memory에 Moment 생성 테스트

* feat: Moment 생성 서비스 구현

* feat: Moment 생성 컨트롤러 구현

* refactor: builder 선택 필드 제외

* style: 잘못된 네이밍 수정

* refactor: MomentImages 생성 책임 Moment로 위임

* feat: 하나의 사진 업로드 API 생성 #256 (#258)

* feat: api 이름 captures로 변경

* feat: RequestBody imageFiles로 이름 변경

* refactor: 변수명 iamge -> file로 통합

* refactor: requestparam -> requestpart로 변경

* feat: 다섯 장을 넘기지 않도록 예외 추가

* feat: 빈 배열을 받는 경우 로직을 수행하지 않도록 변경

* style: CamelCase 적용

* refactor: 에러 메시지 수정

* feat: 특정 content-type을 처리하도록 명시

* feat: validated 어노테이션 추가해서 유효성 검사 수행

* test: 사진 개수에 따른 성공/실패 테스트 수행

* test: 빈 멀티파일 리스트가 들어올 시, 빈 url 리스트가 들어오는 테스트 수행

* refactor: byte 처리에서 나는 오류를 StaccatoException으로 처리

* chore: dev 서버 PR CD 임시 적용

* refactor: API명 captures -> images로 변경

* chore: dev 서버 PR CD 해제

* fix: test에도 변경된 api명 적용

* feat: 파일을 한 장만 업로드하도록 변경

* feat: dto를 반환하는 새로운 메서드 생성

* test: 테스트 Disabled

* refactor: CloudStorage -> Image로 이름 단순화

* feat: S3 객체 삭제 로직 삭제

* refactor: 미사용 import 삭제

* refactor: 전체 경로를 yml에서 지정

* refactor: getFileExtension 메서드 리팩터링

* feat: ImageUrlResponse 생성

* refactor: file을 전부 image로 변경

* refactor: S3Client를  S3ObjectClient로 변경

* refactor: S3Exception 로깅에 EXCEPTION_LOGGING_FORM 적용

* feat: 로그인한 사용자만 images API를 사용가능하게 함

* refactor: ImageExtension을 사용하는 Service 폴더로 이동

* feat: yml에서 설정한 파일 용량 제한 예외를 잡는 MultipartExceptionHandler 구현

* refactor: 충돌방지 이름변경

* refactor: @Size 사라지면서 Validated 삭제

* test: 컨트롤러 단위 테스트 수행

* refactor: 미사용 import문 삭제

* style: /images API swagger 적용

* refactor: file -> image

* refactor: uploadImages -> uploadImage

* refactor: 미사용 import문 삭제

* chore: PR CD를 수동으로 실행 가능하게 설정

* refactor: 기존 테스트 삭제

* fix: 반영되지 않은 수정사항 관련 테스트 disabled

* chore: dev 서버 PR CD 임시 해제

* fix: 이미지 저장 폴더 재지정

* refactor: 테스트 메서드 네이밍 수정

* refactor: 폴더명 수정

* refactor: 닫는 괄호 추가

* refactor: S3ObjectClient를 infrastructure 패키지로 이동

* refactor: 컨벤션에 맞추어 줄바꿈

* refactor: infra 패키지를 image 패키지 내부로 이동

* feat: 추억 생성 API 수정 #238 (#260)

* feat: multipartFile 제거 및 contentType을 application/json으로 변경

* refactor: term(startAt, endAt) 객체 분리

* feat: startAt, endAt 중 누락 예외 처리

* fix: 기간이 없을 경우 순간 날짜 포함 여부 예외 처리 오류 수정

* test: 기간 포함 날짜 검증 테스트 추가

* refactor: 가독성 있게 로직 수정

* docs: 요청 형식 설명 수정

* feat: 댓글 수정 API 구현 #245 (#254)

* test: Fixture를 활용하도록 기존 테스트 변경

* feat: 댓글을 생성하는 기능 해피케이스 구현

* feat: 댓글을 찾을 수 없는 경우 예외 발생 테스트

* feat: 본인이 달지 않은 댓글에 대해 수정을 시도하면 예외 발생 기능 구현

* test: 조회 권한이 없는 순간에 달린 댓글들 조회를 시도했을 때 예외 발생 테스트 추가

* feat: 댓글 수정 컨트롤러 메서드 구현

* test: 양수가 아닌 댓글 식별자로 댓글 수정 시 예외 발생 테스트

* feat: 댓글 내용을 입력하지 않거나 빈 문자열로 입력 후 댓글 수정 시 예외처리

* refactor: 댓글 생성 시 최소 글자수 조건이 NotBlank에 의해 필요 없으므로 삭제

* refactor: 순서가 불필요하므로 GroupSequence 설정 제거

* feat: updateDTO에 Swagger 적용

* test: 실수로 빠뜨린 when & then 적용

* feat: 댓글 삭제 API 구현 #255 (#257)

* test: Fixture를 활용하도록 기존 테스트 변경

* feat: 댓글을 생성하는 기능 해피케이스 구현

* feat: 댓글을 찾을 수 없는 경우 예외 발생 테스트

* feat: 본인이 달지 않은 댓글에 대해 수정을 시도하면 예외 발생 기능 구현

* test: 조회 권한이 없는 순간에 달린 댓글들 조회를 시도했을 때 예외 발생 테스트 추가

* feat: 댓글 수정 컨트롤러 메서드 구현

* test: 양수가 아닌 댓글 식별자로 댓글 수정 시 예외 발생 테스트

* feat: 댓글 내용을 입력하지 않거나 빈 문자열로 입력 후 댓글 수정 시 예외처리

* refactor: 댓글 생성 시 최소 글자수 조건이 NotBlank에 의해 필요 없으므로 삭제

* refactor: 순서가 불필요하므로 GroupSequence 설정 제거

* feat: updateDTO에 Swagger 적용

* feat: 댓글 삭제 API 해피케이스 구현

* feat: 본인이 쓴 댓글이 아닌데 삭제를 시도하면 예외 처리 기능 구현

* feat: 댓글 삭제 컨트롤러 메서드 구현

* test: 댓글 식별자가 양수가 아닐 경우 댓글 삭제 실패 테스트

* feat: 댓글 삭제 API에 Swagger 적용

* feat: 추억 수정 API 수정 #261 (#262)

* feat: 이미지 컨트롤러 분리로 변경된 사항 반영

* refactor: 미사용 메서드 제거

* test: 인증 관련 테스트 추가

* docs: 명세서 누락 및 오류 수정

* test: aaa 주석 수정

* chore: dev 서버 push 트리거 제거

* feat: 순간 수정 API 구현 #244 (#248)

* refactor: Moment 수정 서비스 로직 수정

* refactor: Moment 수정 컨트롤러 로직 수정

* refactor: 레거시 코드 변경 및 예외 메세지 변경

* docs: 누락 DTO 명세 추가

* docs: 명세 수정

* feat: 순간 삭제 API 구현 #243 (#250)

* style: 네이밍 컨벤션 적용

* docs: 명세 수정

* feat: 순간 조회/목록 조회 API 구현 #251 (#253)

* feat: 순간 조회/목록 조회 서비스 로직 구현

* feat: 순간 조회/목록 조회 컨트롤러 로직 구현

* test: 메서드 쿼리 검증 테스트 추가

* refactor: 클래스 명 수정

* test: 불필요한 테스트 데이터 삭제

* feat: image upload 예외 처리 추가 #268 (#269)

* feat: MissingServletRequestPartException 에러 핸들링

* chore: dev 서버 PR CD 임시 해제

* chore: dev 서버 push cd 삭제

* refactor: 같은 메시지 주는 예외 동일한 exceptionHandler로 묶기

* refactor: 예외 핸들러를 다시 분리

* refactor: 에러 메시지 적절하게 변경

* feat: 서버 별로 이미지 저장 경로 설정 (#272)

* refactor: S3 로직 리팩터링 #274 (#275)

* refactor: 미사용 메서드 삭제

* refactor: 미사용 import 삭제

* refactor: 명세 변경에 따른 swagger 메시지 변경

* refactor: 요청 크기 제한 100->20으로 변경

* refactor: 메서드 순서 변경

* refactor: 개행 삭제

* chore: 운영 서버 구축 #264 (#270)

* chore: prod 서버 환경설정

* feat: prod 환경 로깅 설정

* chore: prod 환경 테스트를 위한 CD 트리거 변경

* fix: env 파일 경로 수정

* chore: 로그 파일 저장 위치 지정

* chore: 로그 폴더 생성 명령 삭제

* chore: 로그 생성 위치 변경

* chore: 도커 이미지 재실행 코드 추가

* chore: 도커 이미지 재실행 코드 수정

* chore: 로그 콘솔 출력

* chore: 로그 저장 위치 수정

* feat: 운영 환경에서 어드민 로직 비활성화

* refactor: main에 push시에만 prod cd trigger 실행하도록 workflow 변경

---------

Co-authored-by: yoonjuho <[email protected]>

* fix: 닉네임 앞뒤 공백 제거 #277 (#278)

* fix: 닉네임 앞뒤 공백 제거

* fix: 닉네임 요청 형식에서 앞뒤 공백 제거 NPE 해결

* fix: 순간 조회 응답 형식 수정 (#276)

* fix: 순간 조회 응답 형식 수정

* fix: 순간 목록 응답 인자 명 수정

* feat: 추억 이름 중복 불가 예외 처리 #280 (#282)

* feat: 추억 제목 중복 검사 구현

* docs: 예외 발생 케이스 문서화

* test: 픽스처 활용

* feat: 추억 수정 시 이미 존재하는 타 추억 이름으로 변경 불가능 예외 처리

* test: 주석 오타 수정

* fix: 순간 날짜 반환 형식 변경 #283 (#286)

* fix: 순간 날짜 응답 형식 수정

* refactor: 메서드 분리 로직 삭제

* fix: 날짜 ms 제거

* feat: 현재 날짜를 포함하고 있는 추억 목록 조회 구현 #281 (#285)

* feat: 특정 날짜를 포함하는 모든 추억 조회 기능 구현

* feat: 특정 날짜를 포함하는 모든 추억 조회 기능 구현

* test: 메시지 변경으로 인한 테스트코드 수정

* feat: 날짜로 추억 목록 조회 컨트롤러 분리

* style: 미사용 import 제거

* feat: 날짜를 포함하는 모든 추억을 조회시 기간이 없는 추억도 함께 조회

* refactor: 순간 수정 이미지 순서 적용 #287 (#288)

* refactor: 순간 수정 이미지 순서 적용

* test: 순간 수정 이미지 순서 검증 테스트 추가

* refactor: 순간 수정 이미지 순서 중복 로직 삭제

* refactor: 사용되지 않는 메서드 삭제

* fix: 순간 조회 응답 필드 추가 #292 (#293)

* fix: 순간 응답 필드에 추억 관련 필드 추가

* test: 픽스쳐 사용

* refactor: 예외 메시지 수정 #294 (#298)

* refactor: 예외 메시지의 순간을 스타카토로 변경

Co-authored-by: devhoya97 <[email protected]>

* refactor: 예외 메시지 수정

Co-authored-by: devhoya97 <[email protected]>

* refactor: 순간 -> 스타카토

Co-authored-by: devhoya97 <[email protected]>

* docs: 문서 수정

Co-authored-by: devhoya97 <[email protected]>

---------

Co-authored-by: devhoya97 <[email protected]>

* chore: 운영 서버에서 명세서 비활성화 #302 (#303)

* feat : 스타카토 제목, 추억 제목에 trim 적용 #305 (#307)

* refactor: 예외 메시지의 순간을 스타카토로 변경

Co-authored-by: devhoya97 <[email protected]>

* refactor: 예외 메시지 수정

Co-authored-by: devhoya97 <[email protected]>

* refactor: 순간 -> 스타카토

Co-authored-by: devhoya97 <[email protected]>

* refactor: 추억 생성 시 title에 trim 적용

* refactor: 스타카토 생성 시 placeName에 trim 적용

* fix: dto에서 size 검증 시 min 조건 제거

---------

Co-authored-by: linirini <[email protected]>

* chore: ci에 jacoco 추가 (#309)

* chore: ci에 jacoco 추가

* chore: ci에 jacoco 위한 권한 변경

* chore: ci에 jacoco 위한 권한 변경

* chore: test report 경로 오류 수정

* build: jacoco 빌드 설정

* build: jacoco 대상에서 builder 제외

* build: jacoco 제한 제거

* build: jacocoCoverageVerification 제거

* chore: 단위 테스트 결과 가져오기 적용

* build: CI/CD 트리거 수정

---------

Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: somin <[email protected]>
Co-authored-by: BurningFalls <[email protected]>
Co-authored-by: linirini <[email protected]>
Co-authored-by: linirini <[email protected]>
Co-authored-by: devhoya97 <[email protected]>

* build: CI 적용 브랜치 추가

* hotfix: QA #322 (#323)

* init: 프로젝트 세팅

* refactor: PR 템플릿 파일명 및 경로 수정

* refactor: pr 템플릿 경로 수정

Co-authored-by: linirini <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: YoonJuHo <[email protected]>

* build: develop-be 브랜치의 CI 설정 #6 (#7)

* build: 초기 ci 템플릿 생성

Co-authored-by: linirini <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: YoonJuHo <[email protected]>

* build: ci 초기 트리거 설정

Co-authored-by: linirini <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: YoonJuHo <[email protected]>

* fix: 권한 수정 설정

Co-authored-by: linirini <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: YoonJuHo <[email protected]>

* fix: working directory 설정

Co-authored-by: linirini <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: YoonJuHo <[email protected]>

* fix: 권한 재설정

Co-authored-by: linirini <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: YoonJuHo <[email protected]>

---------

Co-authored-by: linirini <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: YoonJuHo <[email protected]>

* feat: Entity 구성 #2 (#17)

* chore: 데이터 베이스 설정

* feat: Base Entity 구성

* feat: Pin Entity 구성

* feat: Travel Entity 구성

* feat: Member Entity 구성

* feat: Mate Entity 구성

* feat: Visit Entity 구성

* feat: Visit Image Entity 구성

* feat: Visit Log Entity 구성

* refactor: Table 애노테이션 삭제

* refactor: Soft Delete 적용

* feat: ControllerAdvice 생성 #29 (#34)

* feat: Visit domain skeleton 구현 #31 (#37)

Co-authored-by: linirini <[email protected]>

* feat: Travel Domain Skeleton Code 작성 #32 (#36)

* feat: travel skeleton code 작성

* feat: travel 생성, 수정 dto 작성 및 예외 핸들링

* feat: Mate 도메인 빌더 추가

* style: 코드 컨벤션 준수를 위한 공백 제거

* build: Docker Compose Setting #27 (#40)

* chore: gitignore 파일 추가

* chore: mysql 디펜던시 추가

* chore: Profile 분리

* feat: Docker 파일 설정

* feat: 여행 상세 생성 API 구현 #18 (#43)

* build: RestAssured 의존성 추가

* test: 여행 상세 생성 인수 테스트 작성

* feat: 임시 MemberIdArgumentResolver 구현

* feat: Lombok 추가

* feat: Database 초기화 구현

* feat: 여행 상세 성공 서비스 구현

* fix: resolveArgument 반환 타입 오류 수정

* feat: 여행 상세 생성 성공 컨트롤러 구현

* feat: 여행 상세 생성 시 필수값 누락 검증 구현

* test: 글자 수 제한 검증 인수 테스트 추가

* refactor: 생성자에 builder 지정

* feat: 시작 날짜와 끝 날짜 도메인 검증 구현

* feat: 시작 날짜와 끝 날짜 예외 처리 테스트 및 구현

* style: 코드 컨벤션 적용

* refactor: parameter명 변경

* feat: transactional 적용

* style: paremeter 형식 통일

* style: parameter 형식 통일

* refactor: display name 오류 수정

* refactor: 불필요한 상수 제거

* refactor: paramterized test로 리팩터링

* style: 개행 제거

* refactor: 인자 변경

* refactor: 공통 예외 클래스명 변경

* feat: 범위 예외 핸들러 추가

* refactor: 서비스, 통합 테스트 보일러 플레이트 코드 제거

* refactor: builder 사용 시 필수 값 누락 제약 추가

* refactor: 도메인으로 변환하는 메서드를 dto에 추가

* build: CD yml 파일 구성 #28 (#53)

* feat: CI/CD 설정

* feat: CI/CD 검증용 트리거 설정

* fix: CI/CD workflow 수정

* fix: CI/CD workflow 재수정

* fix: CI/CD workflow 절대 경로 수정

* chore: DDL 생성 전략 변경

* chore: dev 환경 DDL 생성 전략 변경

* refactor: 검증용 트리거 제거

* fix: 도커 이미지 기반 컨테이너 생성으로 변경

* refactor: 중간 테이블 엔티티 수정 #56 (#57)

* refactor: 중간 테이블명 TravelMember로 변경

* refactor: 중간 테이블 OneToMany 필드 추가

* refactor: Member OneToMany 제거

* refactor: OneToMany List 초기화

* refactor: 연관관계 편의 메서드 사용

* chore: ddl 전략 임시 변경

* chore: ddl 전략 변경

* feat: 특정 방문 기록 삭제 API 구현 #26 (#42)

* feat: 특정 방문 기록 삭제 API 구현

* feat: 양수가 아닌 id로 특정 방문 기록 삭제를 시도할 때 예외 처리 기능 구현

* feat: 방문 기록 삭제 시 방문 로그도 함께 삭제되는 기능 구현

* refactor: 커스텀 예외를 제거하는 방향으로 변경

* fix: 예외를 못 잡던 문제 해결

* refactor: 메서드명 적절하게 변경

* build: Docker Compose Setting #27 (#40)

* chore: gitignore 파일 추가

* chore: mysql 디펜던시 추가

* chore: Profile 분리

* feat: Docker 파일 설정

* feat: 여행 상세 생성 API 구현 #18 (#43)

* build: RestAssured 의존성 추가

* test: 여행 상세 생성 인수 테스트 작성

* feat: 임시 MemberIdArgumentResolver 구현

* feat: Lombok 추가

* feat: Database 초기화 구현

* feat: 여행 상세 성공 서비스 구현

* fix: resolveArgument 반환 타입 오류 수정

* feat: 여행 상세 생성 성공 컨트롤러 구현

* feat: 여행 상세 생성 시 필수값 누락 검증 구현

* test: 글자 수 제한 검증 인수 테스트 추가

* refactor: 생성자에 builder 지정

* feat: 시작 날짜와 끝 날짜 도메인 검증 구현

* feat: 시작 날짜와 끝 날짜 예외 처리 테스트 및 구현

* style: 코드 컨벤션 적용

* refactor: parameter명 변경

* feat: transactional 적용

* style: paremeter 형식 통일

* style: parameter 형식 통일

* refactor: display name 오류 수정

* refactor: 불필요한 상수 제거

* refactor: paramterized test로 리팩터링

* style: 개행 제거

* refactor: 인자 변경

* refactor: 공통 예외 클래스명 변경

* feat: 범위 예외 핸들러 추가

* refactor: 서비스, 통합 테스트 보일러 플레이트 코드 제거

* refactor: builder 사용 시 필수 값 누락 제약 추가

* refactor: 도메인으로 변환하는 메서드를 dto에 추가

* build: CD yml 파일 구성 #28 (#53)

* feat: CI/CD 설정

* feat: CI/CD 검증용 트리거 설정

* fix: CI/CD workflow 수정

* fix: CI/CD workflow 재수정

* fix: CI/CD workflow 절대 경로 수정

* chore: DDL 생성 전략 변경

* chore: dev 환경 DDL 생성 전략 변경

* refactor: 검증용 트리거 제거

* fix: 도커 이미지 기반 컨테이너 생성으로 변경

* fix: rebase 과정에서 파일이 꼬인 문제 해결

* test: HttpHeaders.AUTHORIZATION 사용

* refactor: 중간 테이블 엔티티 수정 #56 (#57)

* refactor: 중간 테이블명 TravelMember로 변경

* refactor: 중간 테이블 OneToMany 필드 추가

* refactor: Member OneToMany 제거

* refactor: OneToMany List 초기화

* refactor: 연관관계 편의 메서드 사용

* chore: ddl 전략 임시 변경

* chore: ddl 전략 변경

* feat: Pin, Visit, VisitLog 생성자에 builder 추가

* feat: Pin repository 추가

* refactor: visit이 삭제되기 전에 visit에 의존하는 visitLog들이 먼저 삭제되도록 순서 변경

* test: 방문 기록 삭제에 대한 서비스 슬라이스 테스트 추가

* test: 방문 기록이 갖는 모든 방문 로그 삭제 메서드 테스트

* fix: Modifying을 사용할 때 영속성컨텍스트와 관련하여 발생하던 문제 해결

* refactor: visitLog의 content를 필수값으로 변경

* test: 컨벤션에 맞게 Controller 테스트 클래스 변경

* fix: ConstraintViolationException의 예외 메시지를 정해둔 형식에 맞게 변경

---------

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: linirini <[email protected]>

* refactor: 여행 상세 생성 서비스 반환 타입 변경 (#63)

* feat: 여행 상세 목록 조회 API 구현 #19 (#60)

* test: 여행 상세 목록 조회 통합 테스트 작성

* feat: 여행 상세 목록 조회 DTO 구현

* feat: 모든 여행 상세 목록 조회 서비스 구현

* refactor: 미사용 반환값 제거

* feat: 년도 조건에 따른 여행 상세 조회 서비스 구현

* test: import 수정

* test: 년도와 사용자 식별자로 여행 목록 조회하는 JPQL 테스트 추가

* style: 코드 컨벤션 적용

* test: 여행 상세 목록 조회 컨트롤러 구현

* test: disabled 제거 및 테스트 오류 수정

* refactor: 불필요한 변수 분리 제거

* refactor: Optional로 분기 처리

* test: DisplayName 수정

* refactor: DTO 이름 변경

* feat: 방문 기록 생성 API 구현 #21 (#64)

* feat: 방문 기록 생성 기능 구현

* feat: getter 및 builder 추가

* feat: VisitService에 Transactional 적용

* test: 방문 기록 생성 테스트

* fix: 오타 수정

* style: 코드 컨벤션 적용

* fix: deleteById에 Transactional annotation 추가

* refactor: builder 파라미터 NonNull 설정 추가

* refactor: 데이터 개수 감소

* refactor: 예외 메시지 구체화 및 상태 코드 변경

* feat: 특정 여행 상세 수정 API 구현 #22 (#62)

* build: Docker Compose Setting #27 (#40)

* chore: gitignore 파일 추가

* chore: mysql 디펜던시 추가

* chore: Profile 분리

* feat: Docker 파일 설정

* feat: 여행 상세 생성 API 구현 #18 (#43)

* build: RestAssured 의존성 추가

* test: 여행 상세 생성 인수 테스트 작성

* feat: 임시 MemberIdArgumentResolver 구현

* feat: Lombok 추가

* feat: Database 초기화 구현

* feat: 여행 상세 성공 서비스 구현

* fix: resolveArgument 반환 타입 오류 수정

* feat: 여행 상세 생성 성공 컨트롤러 구현

* feat: 여행 상세 생성 시 필수값 누락 검증 구현

* test: 글자 수 제한 검증 인수 테스트 추가

* refactor: 생성자에 builder 지정

* feat: 시작 날짜와 끝 날짜 도메인 검증 구현

* feat: 시작 날짜와 끝 날짜 예외 처리 테스트 및 구현

* style: 코드 컨벤션 적용

* refactor: parameter명 변경

* feat: transactional 적용

* style: paremeter 형식 통일

* style: parameter 형식 통일

* refactor: display name 오류 수정

* refactor: 불필요한 상수 제거

* refactor: paramterized test로 리팩터링

* style: 개행 제거

* refactor: 인자 변경

* refactor: 공통 예외 클래스명 변경

* feat: 범위 예외 핸들러 추가

* refactor: 서비스, 통합 테스트 보일러 플레이트 코드 제거

* refactor: builder 사용 시 필수 값 누락 제약 추가

* refactor: 도메인으로 변환하는 메서드를 dto에 추가

* build: CD yml 파일 구성 #28 (#53)

* feat: CI/CD 설정

* feat: CI/CD 검증용 트리거 설정

* fix: CI/CD workflow 수정

* fix: CI/CD workflow 재수정

* fix: CI/CD workflow 절대 경로 수정

* chore: DDL 생성 전략 변경

* chore: dev 환경 DDL 생성 전략 변경

* refactor: 검증용 트리거 제거

* fix: 도커 이미지 기반 컨테이너 생성으로 변경

* refactor: 중간 테이블 엔티티 수정 #56 (#57)

* refactor: 중간 테이블명 TravelMember로 변경

* refactor: 중간 테이블 OneToMany 필드 추가

* refactor: Member OneToMany 제거

* refactor: OneToMany List 초기화

* refactor: 연관관계 편의 메서드 사용

* chore: ddl 전략 임시 변경

* chore: ddl 전략 변경

* feat: 비어있는 요청 에러 핸들링 추가

* feat: 특정 여행 상세 수정 서비스 구현

* feat: 특정 여행 상세 수정 컨트롤러 구현

* feat: 비어있는 요청 에러 핸들링 추가

* feat: 특정 여행 상세 수정 서비스 구현

* feat: 특정 여행 상세 수정 컨트롤러 구현

* refactor: DirtiesContext 삭제

* refactor: Transactional 읽기 전용 옵션 구성

* feat: 방문 기록 날짜 검증 로직 추가

* refactor: 메서드 체이닝 적용

* refactor: 수정 작업 테스트 환경 동일하게 유지

---------

Co-authored-by: linirini <[email protected]>
Co-authored-by: devhoya97 <[email protected]>

* fix: 논리적 삭제 데이터는 조회에서 제외 #66 (#68)

* test: 쿼리 메서드 사용

* fix: sqlDelete문에 테이블명 변경사항 반영

* fix: 삭제된 데이터 제외하고 조회하도록 조건 추가

* fix: 삭제된 데이터 제외하고 조회하도록 조건 추가

* fix: 특정 방문 기록 삭제 API 호출 시 관련된 VisitImage를 모두 삭제하도록 수정 #65 (#67)

* feat: visitId에 맞는 visitImage들을 모두 삭제하는 기능 구현

* fix: visit을 삭제해도 visit에 포함된 모든 visitImage들이 삭제되지 않던 문제 해결

* test: 엔티티 생성시 가독성을 위한 개행 삭제

* refactor: JPQL에서 VisitLog를 vl로 축약

* fix: 충돌해결

* test: 경계값에 포함되지 않는 변수 제거

* feat: 특정 여행 상세 조회 API 구현 #20 (#73)

* test: 특정 여행 상세 조회 통합 테스트 작성

* feat: 특정 여행 상세 조회 DTO 구현

* fix: 삭제되지 않은 데이터만 찾도록 쿼리 메서드 수정

* feat: 특정 여행 상세 조회 서비스 구현

* feat: 특정 여행 상세 조회 컨트롤러 구현

* test: 존재하지 않는 특정 여행 상세 조회 테스트

* feat: null 필드 응답에 미포함 구현

* style: 코드 컨벤션 적용

* fix: 응답 형식 오류 수정

* feat: 특정 여행 상세 삭제 API 구현 #24 (#72)

* style: 코드 컨벤션 적용

* feat: 특정 여행 상세 삭제 서비스 구현

* feat: 특정 여행 상세 삭제 컨트롤러 구현

* refactor: 검증 메서드 분리

* refactor: Visit 논리적 삭제 전파 순서 수정

* feat: 특정 방문 기록 조회 API 구현 #25 (#76)

* feat: 특정 방문 기록 조회 API 기능 구현

* fix: Repository 조회시 논리적 삭제가 되지 않은 엔티티들만 가져오도록 변경

* test: System.out 메서드 제거

* refactor: 메서드명 통일 및 CRUD 순서로 배치

* refactor: 사용하지 않는 DTO 제거

* test: 서비스 메서드명 변경에 따른 테스트 메서드명 변경

* fix: 특정 방문 기록이 몇 번째 방문인지 계산할 때, 더 늦게 방문한 기록까지 세던 문제 해결

* test: 몇 번째 방문인지 계산할 때, 이전의 방문만 셀 수 있는지 테스트

* feat: Pin 연관관계 추가 #80 (#83)

* feat: Pin에 Member 연관관계 추가

* refactor: private 보조 메서드 순서 변경

* feat: logging 추가 #86 (#89)

* feat: 간단한 Error Logging 추가

* refactor: Logging Level 변경

* feat: VisitLog, VisitImage 양방향 관계 설정 및 논리적 삭제 제거 #87 (#88)

* feat: visitLog, visitImage 논리적 삭제 제거

* feat: visitLog, visitImage 양방향 설정 및 양방향 관계 설정에 따른 여행, 방문기록 삭제 로직 변경

* fix: 여행 상세 수정 날짜 필터링 오류와 썸네일 저장 오류 수정 #90 (#91)

* fix: 여행 상세 수정 날짜 필터링 오류 수정

* fix: 여행 상세 생성 시 썸네일을 저장하지 않는 오류 수정

* refactor: dto 필드 수정 (#95)

* feat: 여행 상세 목록 조회 시 최신순 정렬 #96 (#100)

* feat: 여행 상세 목록 최신순으로 조회

* refactor: JPQL 메서드명 변경

* feat: 특정 여행 상세 조회 API에서 방문 기록 오래된 순 정렬 #101 (#102)

* refactor: 반환값 제거 및 미사용 Param 제거

* feat: 특정 여행 상세 조회 시 방문 기록 오래된 순 조회 구현

* fix: Travel 삭제시 발생하는 오류 수정 #103 (#105)

* fix: 여행에 포함된 방문 기록의 존재 여부를 검사할 때 논리적으로 삭제되지 않은 방문 기록만 고려하도록 수정

* fix: 여행을 삭제하면 연관된 TravelMember에 논리적 삭제가 전파되도록 수정

* refactor: JPQL에서 쿼리메서드로 변경

* refactor: @SQLRestriction으로 soft-delete하도록 변경 #106 (#107)

* refactor: @SQLRestriction으로 soft-delete하도록 변경

* fix: 정렬 조건 누락 추가

* test: displayName 변경

* docs: swagger 컨벤션 설정 및 적용 (#116)

* build: 중복 의존성 정의 제거

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: BurningFalls <[email protected]>

* build: OpenApi 의존성 추가

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: BurningFalls <[email protected]>

* chore: 전역적인 media type 설정

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: BurningFalls <[email protected]>

* chore: open api skeleton code 작성

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: BurningFalls <[email protected]>

* fix: constraint redefine 불가로 인한 오류 수정

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: BurningFalls <[email protected]>

* style: 의미없는 개행 제거

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: BurningFalls <[email protected]>

* docs: 누락된 설명 추가

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: BurningFalls <[email protected]>

---------

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: BurningFalls <[email protected]>

* feat: Entity 수정 (#119)

* feat: 엔티티 구조 변경

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: BurningFalls <[email protected]>

* style: 불필요한 개행 제거

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: BurningFalls <[email protected]>

---------

Co-authored-by: YoonJuHo <[email protected]>
Co-authored-by: devhoya97 <[email protected]>
Co-authored-by: BurningFalls <[email protected]>

* build: 사용하지 않는 도커 이미지 삭제 workflow 구성 #84 (#120)

* build: CD 작업 시 기존 도커 이미지 삭제

* build: CD 작업 시 기존 도커 이미지 삭제 순서 변경

* build: CD 트리거 수정

* refactor: 엔티티 수정 #125 (#126)

* refactor: base entity 필드명 수정

* refactor: visitLog에 base Entity 추가 및 논리적 삭제 구현

* feat: 로그인 API 구현 #123 (#128)

* build: jwt 의존성 추가

* chore: jwt 관련 환경 설정 추가

* test: 회원 생성 및 토큰 발급 성공 테스트 & 닉네임 중복 테스트 추가

* feat: 토큰 발급 구현

* feat: 로그인 서비스 구현

* feat: 로그인 컨트롤러 구현

* feat: 닉네임 VO 분리 및 예외 처리 구현

* refactor: getter 재정의 제거

* test: 닉네임 형식 예외 처리에 따른 테스트 수정

* feat: 필수값 누락 예외 처리 구현

* style: 코드 컨벤션 적용

* refactor: 누락된 dto 패키지 추가

* refactor: 애너테이션명 변경

* feat: 토큰 파싱해서 member 찾도록 resolver 구현

* fix: @MemberId -> @LoginMember로 변경되며 long에서 member로 타입 변경에 따른 테스트 실패 수정

* style: 코드 컨벤션 적용

* feat: 401 예외 핸들러 구현

* docs: swagger 명세 추가

* feat: 인가 관련 예외 & 핸들러 추가

* test: authorization 헤더 로직 구현에 따른 테스트 수정

* chore: CI run 임시 수정

* refactor: 필드 접근 제어자 수정

* refactor: 변수 분리

* test: 테스트명 수정

* refactor: handler 메서드명 변경

* docs: 예외 설명 추가

* refactor: 상수 재활용

* docs: schema description 수정

* refactor: 불필요한 개행 제거

* docs: 예외 발생 상황 설명 수정

* test: 토큰 생성 검증 추가

* chore: CI run 이전 상태로 수정

* docs: 응답 명세 작성

* feat: transactional 적용

* chore: CI run을 self hosted로 임시 변경

* fix: CD 실패로 인한 workflow 수정 (#135)

* build: jwt 의존성 추가

* chore: jwt 관련 환경 설정 추가

* test: 회원 생성 및 토큰 발급 성공 테스트 & 닉네임 중복 테스트 추가

* feat: 토큰 발급 구현

* feat: 로그인 서비스 구현

* feat: 로그인 컨트롤러 구현

* feat: 닉네임 VO 분리 및 예외 처리 구현

* refactor: getter 재정의 제거

* test: 닉네임 형식 예외 처리에 따른 테스트 수정

* feat: 필수값 누락 예외 처리 구현

* style: 코드 컨벤션 적용

* refactor: 누락된 dto 패키지 추가

* refactor: 애너테이션명 변경

* feat: 토큰 파싱해서 member 찾도록 resolver 구현

* fix: @MemberId -> @LoginMember로 변경되며 long에서 member로 타입 변경에 따른 테스트 실패 수정

* style: 코드 컨벤션 적용

* feat: 401 예외 핸들러 구현

* docs: swagger 명세 추가

* feat: 인가 관련 예외 & 핸들러 추가

* test: authorization 헤더 로직 구현에 따른 테스트 수정

* chore: CI run 임시 수정

* refactor: 필드 접근 제어자 수정

* refactor: 변수 분리

* test: 테스트명 수정

* refactor: handler 메서드명 변경

* docs: 예외 설명 추가

* refactor: 상수 재활용

* docs: schema description 수정

* refactor: 불필요한 개행 제거

* docs: 예외 발생 상황 설명 수정

* test: 토큰 생성 검증 추가

* chore: CI run 이전 상태로 수정

* docs: 응답 명세 작성

* feat: transactional 적용

* chore: CI run을 self hosted로 임시 변경

* chore: CI run을 self hosted로 권한 부여

* chore: CI/CD workflow 트리거 임시 설정

* chore: CI/CD runs on 재설정

* chore: CI/CD workflow 권한 재설정

* chore: CI/CD workflow 권한 재설정

* chore: CI/CD workflow 임시용 트리거 제거

* fix: TravelResponses 필드 wrapping 오류 수정 (#145)

* refactor: 방문기록 조회/수정 도메인 변경으로 인한 수정 #121 (#131)

* feat: 특정 방문 기록 조회 API 문서화

* test: Test Fixture 생성

* refactor: 특정 방문 기록 조회 서비스 수정

* test: 특정 방문 기록 조회 컨트롤러 단위 테스트 추가

* refactor: API 명세에 맞게 변수명 변경

* feat: 일급컬렉션 구성 및 연관관계 편의 메서드 위치 변경

* feat: 특정 방문 기록 수정 서비스 구현

* feat: 특정 방문 기록 수정 컨트롤러 구현

* fix: ci 환경 변경

* feat: Multipart 문서화 및 검증 로직 추가

* refactor: 검증하고자 하는 부분을 명시적으로 표현

* refactor: 상수 접근제어자 변경

* refactor: NoArgsConstructor 접근 제어자 변경

* refactor: 생성자 Builder로 표현

* refactor: 부정으로만 사용되는 메서드 명 변경

* refactor: 메서드 명 변경

* refactor: 테스트 검증 방법 변경

* fix: 수정 요청 값 필수

* feat: 메시지 검증 로직 추가

* refactor: 불필요한 Content 애노테이션 제거

* refactor: API 명세 요청 변수 명 변경으로 인한 필드 명 수정

* refactor: 메서드 분리

* fix: AuthService Mocking

* refactor: 명세에 맞게 닉네임 필드 명 변경

* refactor: 방문 기록 생성/삭제 도메인 변경으로 인한 수정 #122 (#129)

* refactor: api명세에 맞게 필드명 변경

* test: TDD를 위한 컨트롤러 테스트코드 작성

* refactor: 방문 상세 생성 컨트롤러 api명세에 맞게 리팩토링

* refactor: 코드 컨벤션에 맞게 필드와 어노테이션을 다른 줄로 구분

* fix: 여행 식별자가 양수인지 검증하는 코드 추가

* test: 방문 기록을 생성할 수 없는 케이스 테스트

* feat: 사진이 5장을 초과하면 예외처리 기능 구현

* refactor: API 명세의 이름과 변수명 통일

* test: 방문 기록 생성 테스트 추가

* test: 메서드 명을 명확하게 변경

* fix: visitImagesUrl이 null일 때 NPE가 발생하는 문제 수정

* test: 양수가 아닌 식별자로 방문 기록 삭제시 예외 발생 테스트

* refactor: 코드 컨벤션에 맞게 컨트롤러 코드 수정

* test: Visit을 삭제하면 VisitImage도 삭제되는지 테스트

* refactor: 방문 기록 생성시 경계값을 테스트하면서 필요없어지는 메서드 제거

* refactor: 방문 기록 삭제 시 visitId는 null일 수 없으므로 long 타입으로 변경

* test: 방문 기록과 관련된 통합테스트 제거

* test: invalidVisitRequestProvider의 위치를 맨 위로 이동

* fix: 여행 기간에 포함되지 않는 방문 기록은 생성하지 못하도록 수정

* refactor: 가독성을 위한 예외 메시지 수정

* refactor: 불필요한 개행 제거

* refactor: 컨벤션에 맞게 메서드 위치 변경

* test: 가독성을 위한 개행 추가

* refactor: 검증 메서드명을 더 명확하게 수정

* feat: 방문 기록 생성에 Swagger 적용

* fix: visitImageFile이 필수 값으로 설정되어 있던 버그 수정

* refactor: 패키지 위치 적절하게 변경

* feat: 방문 기록 생성 DTO에 Swagger 적용

* feat: 방문 기록 삭제 Swagger 적용

* test: 방문 기록 생성시 경계값 성공 테스트 추가

* refactor: dto에 Schema 설명 추가

* refactor: 방문 사진이 없는 경우 null이 아닌 빈 리스트로 오므로 null 체크 제거

* test: mockMvc 검증에서 content 활용

* test: 가독성을 위한 변경

* refactor: 추후 ExceptionHandler에서 처리할 상황 제거

* refactor: RequestPart value와 dto 변수명을 명세에 맞게 변경

* refactor: null 값을 다룰 가능성이 없는 필드에 Long이 아닌 long을 사용

* test: DisplayName을 더 명확하게 수정

* refactor: 코드 컨벤션에 맞게 개행 제거

* test: 상수 활용

* refacotr: VisitControllerDocs에 @Parameter 추가

* refacotr: 컨트롤러 메서드 순서를 CRUD순으로 정렬

* refactor: 방문기록 생성 시 이미지가 없어도 빈 리스트가 오므로 required=false 제거

* test: 자동정렬로 인한 의도치 않은 개행 제거

* feat: 여행 상세 생성 API 수정 #141 (#147)

* refactor: where 검증절 이동

* feat: 여행 상세 생성 서비스에서 multipart 처리 위한 기반 코드 구현

* feat: 여행 상세 생성 컨트롤러에서 multipartFile 받도록 구현

* docs: 여행 상세 생성 명세서 작성

* docs: 여행 상세 생성 명세서 상 key 오류 수정

* docs: 여행 상세 생성 명세서 상 설명 오타 수정

* refactor: cascadeType 변경 및 부모 엔티티가 관리하도록 수정

* test: 모호한 displayName 수정

* refactor: persist 전파 위해 순서 변경

* feat: 여행 상세 목록 조회, 특정 여행 상세 조회, 특정 여행 상세 삭제 API 수정 #148 (#149)

* docs: 여행 상세 목록 조회 API 문서화

* docs: 특정 여행 상세 조회 API 문서화

* docs: 공통 예외 문서화

* docs: 특정 여행 상세 삭제 API 문서화

* refactor: 응답 변수 분리

* feat: 특정 여행 상세 조회 시 권한 예외 처리 구현

* feat: 특정 여행 상세 삭제 시 권한 예외 처리 구현

* refactor: 메서드 순서 조정 (CRUD 순서)

* fix: dto 필드 오류 수정

* test: 여행 상세 목록 조회 테스트 작성

* test: 특정 여행 상세 조회 테스트 작성

* test: 특정 여행 상세 삭제 컨트롤러 테스트 작성

* test: 여행 상세 목록 조회 JPQL 테스트 수정

* docs: example 제거

* fix: 동일성 비교

* test: 가독성있게 pathVariable 분리

* refactor: 방문기록 썸네일 메서드 분리

* fix: 삭제하려는 여행 상세 없을 시 예외 발생하지 않도록 수정

* refactor: member entity 외 논리적 삭제 제거 #132 (#156)

* refactor: member 외 soft delete 제거

* chore: ddl 교체 위한 환경 임시 변경

* fix: 닉네임 형식 수정 #157 (#158)

* fix: 닉네임 형식 수정

* chore: ddl 변경 위한 환경 임시변경

* feat: AWS S3 SDK 구현 (#137)

* build: aws sdk 의존성 추가

* chore: application-secrets 반영하도록 변경

* chore: multipart 최대파일크기와 최대요청크기를 10MB로 확장

* feat: S3Client 설정 커스텀

* feat: S3Exception 에러 핸들러 추가

* feat: s3Client를 사용하는 CloudStorageClient 생성

* feat: 이미지를 S3에 올리고 URL을 받아오는 비즈니스 로직 작성

* feat: file upload API 구현

* chore: pull_request에도 CD가 적용되도록 임시 변경

* chore: secret 변수들을 env로 관리하도록 변경

* chore: dev 서버도 멀티파트 용량 확장

* chore: application.yml 파일에 cloud 관련 재설정

* chore: cd 과정에서 환경 변수 설정하기

* fix: env 파일 인식하도록 수정

* fix: CI/CD에서 env를 읽을 수 있도록 수정

* chore: pull_request 시 CD 돌아가지 않도록 수정

* chore: pull_request 시 CD 돌아가도록 임시 수정

* fix: dev에 빠진 security 설정 추가

* chore: dev에도 cloud 관련 설정 추가

* chore: yml 파일 롤백

* chore: ci/cd workflow 롤백

* chore: cloud 관련 설정 추가

* chore: 이미지 용량 제한 늘리는 설정 추가

* chore: yml에 실제 값 대입

* chore: pull_request에도 CD가 적용되도록 임시 수정

* fix: s3Client build를 CLoudStorageClient에서 수행

* chore: cloud 관련 설정 값 대입

* refactor: s3Client build를 S3ClientConfig에서 수행

* refactor: s3Client build를 CloudStorageClient에서 수행

* fix: 파일 경로 오류 수정

* fix: 파일 경로 오류 수정

* fix: 파일 경로 오류 수정

* fix: 파일 경로 오류 수정

* fix: 파일 경로 오류 수정

* fix: 파일 경로가 버킷을 포함하지 않도록 수정

* feat: file 이름이 겹치는 경우, UUID를 뒤에 붙이는 기능 구현

* chore: push에만 cd가 적용되도록 다시 변경

* refactor: 에러 메시지 변경

* refactor: MultipartFile 여러 개 받을 수 있도록 수정

* feat: S3 객체 삭제하는 API 구현

* chore: pull_request에도 cd가 적용되도록 다시 변경

* chore: push에만 cd가 적용되도록 다시 변경

* style: ci/cd workflow endline 롤백

* feat: 방문 기록 관련 인가 구현 #140 (#161)

* feature: 특정 방문기록 조회시 인가 처리

* feature: 특정 방문기록 수정, 삭제시 인가 처리

* style: 미사용 import 제거

* feat: 방문 기록 생성 시 여행 상세의 주인인지 인가 추가

* refactor: 불필요한 개행 제거

* test: 테스트 실패 지점을 하나로 수정

* chore: 서버 DDL 생성 전략 변경

* feat: 여행 상세 수정 API 수정 #142 (#159)

* refactor: 썸네일이 없는 경우 기존 썸네일 유지

* feat: 여행 수정 서비스 multipart와 인가 기능 추가

* feat: 여행 수정 컨트롤러 multipart와 인가 기능 추가

* fix: 여행 썸네일 추출 임시 로직 구성

* refactor: 400 에러 메세지 응답 API 문서에 추가

* docs: id 예시 값 추가

* chore: 개발 서버 DDL 생성 전략 변경

* refactor: 이미지 수정 요청 분기 처리 위치 변경 및 테스트 작성

* feat: 이미지가 필요한 API에 S3 적용 #166 (#168)

* test: S3 테스트를 위해 fake 객체 생성

* feat: 여행 상세 생성 시 S3에 썸네일 저장

* feat: 여행 상세 수정 시 S3에 썸네일 대치

* feat: 방문 기록 생성 시 S3에 이미지 저장

* feat: 방문 기록 수정 시 S3에 이미지 대치

* chore: pull request에도 CD가 돌아가도록 임시 설정

* chore: pull request에도 CD가 돌아가도록 임시 설정한 것 원상복구

* refactor: Objects.isNull 활용 및 메서드 위치 변경

* feat: 로깅 프레임워크 적용 #134 (#171)

* feat: 로거 환경 설정

* feat: 로거 형식 정의

* feat: 요청/응답 로깅 구현

* feat: 예외에 대한 로거 형식 적용

* feat: token 유무 식별 로그 추가

* refactor: thread 식별명 추가

* refactor: 예외 발생 구체 클래스/메서드 로깅

* chore: CD 트리거 수정

* chore: CD 트리거 복원

* chore: 임시 예외 케이스 생성 및 로그 테스트

* chore: 임시 예외 케이스 수정 및 로그 테스트

* chore: 임시 예외 케이스 재수정 및 로그 테스트

* chore: 임시 예외 케이스 삭제

* chore: CD 트리거 복원

* fix: Logging 데이터 변경

* chore: CD 트리거 복원

* fix: Logging 데이터 오류 수정

* chore: CD 트리거 복원

* feat: 로깅 White List 추가

* feat: 방문 기록 목록 조회시 시간 순으로도 정렬되는 기능 구현 (#175)

* feat: 방문 기록의 방문 날짜 저장 시, 시간까지 저장하도록 변경

* fix: request dto에서 LocalDateTime에 대한 패턴이 시간까지 포함하도록 변경

* refactor: 여행에 포함된 날짜인지 비교시 LocalDateTime을 넘겨주도록 변경

* refactor: 사진 url 관련 dto 필드명 끝에 url 추가

* refactor: 기대한대로 작동하지 않는 ExceptionHandler 메서드 주석 처리

* refactor: 파일 이름 및 형식 오류 수정 #176 (#177)

* refactor: 파일 이름을 UUID로만 구성하도록 수정

* refactor: content-type을 multipart/formed-data로 고정

* feat: swagger https 적용하기 #184 (#185)

* feat: swagger가 https 접근 가능하도록 하는 기능 구현

* chore: pull_request에도 CD가 적용되도록 임시 변경

* style: push에만 CD가 적용되도록 롤백

* feat: 빈/공백 문자열 예외 처리 #186 (#187)

* fix: 여행 제목은 공백 문자열 불가, 1자 이상 30자 이하로 설정할 수 있도록 예외 처리

* fix: 방문 기록의 이름은 공백 문자열 불가, 1자 이상 30자 이하로 설정할 수 있도록 예외 처리

* fix: 닉네임의 이름은 공백 문자열 불가, 1자 이상 20자 이하로 설정할 수 있도록 예외 처리

* test: displayName 변경

* fix: Swagger 인증 헤더 형식 변경 #188 (#189)

* fix: Swagger 인증 헤더 수정

* refactor: 로깅 정보 수정

* chore: stage/dev 서버 분리 #192 (#197)

* fix: 포트 수정

* refactor: 설정 파일 profile 별로 분리

* fix: timezone 설정

* refactor: ci-cd 파일명 변경

* refactor: ci-cd 분리

* test: 경계값 테스트로 수정

* test: 경계값 테스트로 수정 및 발생하는 오류 수정

* chore: back-end 개발용 CD 트리거 변경

* fix: 불필요한 파일 삭제

* refactor: stage용 환경 파일 분리

* refactor: DockerFile 분리

* refactor: 태그 설정

* refactor: 태그 설정

* fix: 태그 설정

* fix: 태그 설정

* fix: 태그 설정

* fix: 태그 설정

* fix: 태그 설정

* fix: 태그 설정

* fix: 태그 설정

* fix: 태그 설정 수정

* refactor: CI runs-on 변경

* refactor: dev용 CICD trigger 변경

* refactor: dev용 CICD runs on 변경

* refactor: dev용 CICD trigger 변경

* refactor: runner 재설치로 인해 임시로 변경했던 dev용 CICD runs-on & trigger 복구

* refactor: hub push 시 로그인 재수행

* fix: 명령어 오류 수정

* feat: 단체 계정으로 dockerhub 변경

* refactor: 정상 작동 확인 후 트리거 복구

* fix: image push 시 권한 오류 수정 (#200)

* feat:admin용 계정 로직 추가 (#201)

* fix: add stage logging (#204)

* feat: 이미지 확장자와 content-type 설정 #196 (#202)

* feat: content-type을 확장자로 분석하는 기능 구현

* chore: PR CD 임시 적용

* chore: PR CD 해제

* refactor: dev, stage, local 환경의 swagger url 설정 (#208)

* refactor: 이미지 용량 제한 확장 (한 이미지: 20MB, 한 요청: 100MB) (#206)

* fix: 이미지 전송 안되는 에러 수정 #209 (#210)

* chore: PR CD 임시 적용

* fix: 파일 형식에 .추가 및 디폴트 형식 변경

* temp: 확인용 에러

* temp: 롤백

* refactor: 디폴트 mime type 변경

* temp: 일단 image의 내부 메서드 사용

* fix: file-extension 지정 롤백

* fix: content-type 지정

* temp: 에러 체크를 위해 메시지 임시 변경

* temp: 에러 메시지 롤백

* feat: content-type 확장자로부터 추출

* chore: PR CD 해제

* refactor: API명세 변경에 따른 URI, DTO 변수명 변경 #211 (#212)

* refactor: URI, DTO 변수명 변경

* refactor: DTO 클래스명을 API명세에 맞게 변경

* refactor: imageFile 변수명 변경

* test: pathVariable명을 클래스명을 고려하여 변경

* refactor: 엔티티, 메서드명 API 명세에 맞게 변경

* refactor: 여행을 추억으로, 방문을 순간으로 네이밍 변경

* feat: 추억 목록 조회 API 수정 #215 (#216)

* feat: startAt, endAt 필드 nullable하게 변경

* feat: memory의 createdAt 기준 최신순 정렬로 변경

* style: code convention 적용

* style: 응답 형식 변경 (mates 제거 및 기간 미필수 응답 필드로 변경)

* feat: 올바르지 않은 년도 형식 예외 처리

* refactor: 추억 상세 -> 추억

* test: 메세지 오류 수정

* test: 저장 순서 오류 수정

* refactor: fixture 패키지 이동

* refactor: fixture 분리

* test: 경계값 검증으로 수정

* feat: 사용자 로깅, Nginx 로깅, DB 로깅 #190 (#224)

* feat: MDC 적용

* refactor: 중복 예외 제거

* feat: 사용자 식별 로깅 추가

* refactor: 예외 메세지 형식 json으로 변경

* feat: 추억 삭제 API 수정 #221 (#222)

* feat: 변경사항 docs 반영

* feat: 순간이 존재하는 경우 추억을 삭제할 수 없었던 예외 제거

* style: code convention 적용

* feat: 추억 삭제 시 속한 순간도 함께 삭제되도록 서비스 구현

* refactor: 불필요한 개행 제거

* feat: 추억 조회 API 수정 #227 (#228)

* feat: 기간 필수 여부 변경에 따른 어노테이션 추가

* docs: 도메인명 변경에 따른 명세서 수정

* build: stage 서버 CICD 임시 비활성화 #234 (#235)

* chore: stage 비활성화 적용 전 dev에서 시범 적용

* chore: dev 서버 cicd 비활성화 해제

* chore: dev 서버 cicd 트리거 복구

* chore: stage 서버 cicd 임시 비활성화

* feat: 댓글 생성, 조회 API 구현 #214 (#225)

* refactor: 댓글과 관련된 클래스를 별도의 패키지로 분리

* test: tdd를 위한 댓글 생성 서비스 테스트 추가

* feat: 댓글 생성 서비스 메서드 구현

* test: 댓글 생성 관련 컨트롤러 테스트 코드 작성

* feat: 댓글 생성 기능 구현

* feat: 댓글 조회 서비스 메서드를 위한 tdd 틀 작성

* feat: 댓글 조회 서비스 메서드 구현

* test: 댓글 컨트롤러 테스트 클래스 패키지 위치 변경

* refactor: 댓글 읽기 메서드명을 더 명확하게 변경

* test: 댓글 읽기 테스트 코드 추가

* feat: 댓글 읽기 컨트롤러 메서드 구현

* feat: 댓글 생성, 조회 API에 swagger 적용 및 순간 기록을 순간으로 변경

* fix: Swagger 적용으로 인한 문제 해결

* test: 순간 기록이라는 말을 순간으로 변경

* refactor: 댓글의 글자수로 인한 예외 메시지에 '1자 이상'이라는 말을 제거

* fix: 댓글 생성 메서드에 Transactional 적용

* chore: stage 서버 CI/CD 활성화

* feat: 감정 선택 API 구현 #230 (#236)

* feat: 기분 유형 생성

* feat: Moment 비즈니스 로직에 기분 표현 적용

* feat: 기분 표현 컨트롤러 구현

* feat: default 기분 생성

* style: 코드 컨벤션 적용

* refactor: 예외 메세지 변경

* feat: 순간 생성 API 구현 #226 (#229)

* refactor: 기한이 없는 memory 구현

* test: 기한없는 Memory에 Moment 생성 테스트

* feat: Moment 생성 서비스 구현

* feat: Moment 생성 컨트롤러 구현

* refactor: builder 선택 필드 제외

* style: 잘못된 네이밍 수정

* refactor: MomentImages 생성 책임 Moment로 위임

* feat: 하나의 사진 업로드 API 생성 #256 (#258)

* feat: api 이름 captures로 변경

* feat: RequestBody imageFiles로 이름 변경

* refactor: 변수명 iamge -> file로 통합

* refactor: requestparam -> requestpart로 변경

* feat: 다섯 장을 넘기지 않도록 예외 추가

* feat: 빈 배열을 받는 경우 로직을 수행하지 않도록 변경

* style: CamelCase 적용

* refactor: 에러 메시지 수정

* feat: 특정 content-type을 처리하도록 명시

* feat: validated 어노테이션 추가해서 유효성 검사 수행

* test: 사진 개수에 따른 성공/실패 테스트 수행

* test: 빈 멀티파일 리스트가 들어올 시, 빈 url 리스트가 들어오는 테스트 수행

* refactor: byte 처리에서 나는 오류를 StaccatoException으로 처리

* chore: dev 서버 PR CD 임시 적용

* refactor: API명 captures -> images로 변경

* chore: dev 서버 PR CD 해제

* fix: test에도 변경된 api명 적용

* feat: 파일을 한 장만 업로드하도록 변경

* feat: dto를 반환하는 새로운 메서드 생성

* test: 테스트 Disabled

* refactor: CloudStorage -> Image로 이름 단순화

* feat: S3 객체 삭제 로직 삭제

* refactor: 미사용 import 삭제

* refactor: 전체 경로를 yml에서 지정

* refactor: getFileExtension 메서드 리팩터링

* feat: ImageUrlResponse 생성

* refactor: file을 전부 image로 변경

* refactor: S3Client를  S3ObjectClient로 변경

* refactor: S3Exception 로깅에 EXCEPTION_LOGGING_FORM 적용

* feat: 로그인한 사용자만 images API를 사용가능하게 함

* refactor: ImageExtension을 사용하는 Service 폴더로 이동

* feat: yml에서 설정한 파일 용량 제한 예외를 잡는 MultipartExceptionHandler 구현

* refactor: 충돌방지 이름변경

* refactor: @Size 사라지면서 Validated 삭제

* test: 컨트롤러 단위 테스트 수행

* refactor: 미사용 import문 삭제

* style: /images API swagger 적용

* refactor: file -> image

* refactor: uploadImages -> uploadImage

* refactor: 미사용 import문 삭제

* chore: PR CD를 수동으로 실행 가능하게 설정

* refactor: 기존 테스트 삭제

* fix: 반영되지 않은 수정사항 관련 테스트 disabled

* chore: dev 서버 PR CD 임시 해제

* fix: 이미지 저장 폴더 재지정

* refactor: 테스트 메서드 네이밍 수정

* refactor: 폴더명 수정

* refactor: 닫는 괄호 추가

* refactor: S3ObjectClient를 infrastructure 패키지로 이동

* r…
  • Loading branch information
11 people authored Sep 12, 2024
1 parent f4ec545 commit 17b4bc1
Show file tree
Hide file tree
Showing 11 changed files with 32 additions and 75 deletions.
3 changes: 1 addition & 2 deletions .github/workflows/android-cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@ name: Android CI/CD for release

on:
push:
branches: [ "main" ]
pull_request:
paths: 'android/**'
branches: [ "main" ]

env:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@ name: Android CI/CD for generating demo APK

on:
push:
branches: [ "develop" ]
pull_request:
paths: 'android/**'
branches: [ "develop" ]

env:
Expand Down
68 changes: 4 additions & 64 deletions .github/workflows/android-ci.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
name: Android CI for develop-an

on:
push:
branches: [ "develop-an" ]
pull_request:
paths: 'android/**'
branches: [ "develop-an" ]

env:
Expand Down Expand Up @@ -68,70 +67,11 @@ jobs:
- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Clean test
run: ./gradlew clean test

build:
needs: test
name: Build and Run
runs-on: ubuntu-latest

defaults:
run:
shell: bash
working-directory: ./android/Staccato_AN

permissions:
contents: read

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
cache: gradle

- name: Create local.properties
run: |
touch local.properties
shell: bash

- name: Set Base Url in local.properties
run: |
echo "base_url=\"$BASE_URL\"" >> local.properties
shell: bash

- name: Create google-services.json
run: |
echo $GOOGLE_SERVICES_JSON > ./app/google-services.json
shell: bash

- name: Create secrets.properties
run: |
echo $SECRETS_PROPERTIES > secrets.properties
shell: bash

- name: Create local.defaults.properties
run: |
echo $LOCAL_DEFAULTS_PROPERTIES > local.defaults.properties
shell: bash

- name: Create KeyStore File and Properties
run: |
mkdir -p ./app/signing
echo "$UPLOAD_KEY_STORE_JKS" | base64 --decode > ./app/signing/upload_key_store.jks
echo "$KEY_STORE_PROPERTIES" > ./app/signing/keystore.properties
- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Run ktlint
run: ./gradlew ktlintCheck

- name: Run test
run: ./gradlew test

- name: Build with Gradle
run: ./gradlew build
1 change: 1 addition & 0 deletions .github/workflows/backend-ci-cd-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: Backend CI/CD dev

on:
pull_request:
paths: 'backend/**'
branches: [ "develop-be", "develop" ]

jobs:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/backend-ci-cd-prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: Backend CI/CD prod

on:
push:
paths: 'backend/**'
branches: ["main"]

jobs:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/backend-ci-cd-stage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: Backend CI/CD stage

on:
push:
paths: 'backend/**'
branches: [ "develop-be", "develop" ]

jobs:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/backend-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: Backend CI

on:
pull_request:
paths: 'backend/**'
branches: [ "develop-be", "develop", "main" ]

permissions: write-all
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import com.staccato.member.domain.Member;
import com.staccato.memory.domain.MemoryMember;

public interface MemoryMemberRepository extends JpaRepository<MemoryMember, Long> {
Expand All @@ -19,4 +20,6 @@ public interface MemoryMemberRepository extends JpaRepository<MemoryMember, Long
ORDER BY mm.memory.createdAt DESC
""")
List<MemoryMember> findAllByMemberIdAndIncludingDateOrderByCreatedAtDesc(@Param("memberId") long memberId, @Param("date") LocalDate date);

boolean existsByMemberAndMemoryTitle(Member member, String title);
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,4 @@
import com.staccato.memory.domain.Memory;

public interface MemoryRepository extends JpaRepository<Memory, Long> {
boolean existsByTitle(String title);
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ public class MemoryService {

@Transactional
public MemoryIdResponse createMemory(MemoryRequest memoryRequest, Member member) {
validateMemoryTitle(memoryRequest.memoryTitle());
Memory memory = memoryRequest.toMemory();
validateMemoryTitle(memory, member);
memory.addMemoryMember(member);
memoryRepository.save(memory);
return new MemoryIdResponse(memory.getId());
Expand Down Expand Up @@ -83,10 +83,10 @@ private String getMomentThumbnail(Moment moment) {
public void updateMemory(MemoryRequest memoryRequest, Long memoryId, Member member) {
Memory originMemory = getMemoryById(memoryId);
validateOwner(originMemory, member);
Memory updatedMemory = memoryRequest.toMemory();
if (originMemory.isNotSameTitle(memoryRequest.memoryTitle())) {
validateMemoryTitle(memoryRequest.memoryTitle());
validateMemoryTitle(updatedMemory, member);
}
Memory updatedMemory = memoryRequest.toMemory();
List<Moment> moments = momentRepository.findAllByMemoryIdOrderByVisitedAt(memoryId);
originMemory.update(updatedMemory, moments);
}
Expand All @@ -96,8 +96,8 @@ private Memory getMemoryById(long memoryId) {
.orElseThrow(() -> new StaccatoException("요청하신 추억을 찾을 수 없어요."));
}

private void validateMemoryTitle(String title) {
if (memoryRepository.existsByTitle(title)) {
private void validateMemoryTitle(Memory memory, Member member) {
if (memoryMemberRepository.existsByMemberAndMemoryTitle(member, memory.getTitle())) {
throw new StaccatoException("같은 이름을 가진 추억이 있어요. 다른 이름으로 설정해주세요.");
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ void createMemory() {
);
}

@DisplayName("이미 존재하는 추억 이름으로 추억을 생성할 수 없다.")
@DisplayName("사용자의 추억 중 이미 존재하는 추억 이름으로 추억을 생성할 수 없다.")
@Test
void cannotCreateMemoryByDuplicatedTitle() {
// given
Expand All @@ -96,6 +96,19 @@ void cannotCreateMemoryByDuplicatedTitle() {
.hasMessage("같은 이름을 가진 추억이 있어요. 다른 이름으로 설정해주세요.");
}

@DisplayName("다른 사용자의 이미 존재하는 추억 이름으로 추억을 생성할 수 있다.")
@Test
void canCreateMemoryByDuplicatedTitleOfOther() {
// given
MemoryRequest memoryRequest = MemoryRequestFixture.create(LocalDate.of(2024, 7, 1), LocalDate.of(2024, 7, 10));
Member member = memberRepository.save(MemberFixture.create());
Member otherMember = memberRepository.save(MemberFixture.create("other"));
memoryService.createMemory(memoryRequest, otherMember);

// when & then
assertThatNoException().isThrownBy(() -> memoryService.createMemory(memoryRequest, member));
}

@DisplayName("현재 날짜를 포함하는 모든 추억 목록을 조회한다.")
@MethodSource("dateProvider")
@ParameterizedTest
Expand Down

0 comments on commit 17b4bc1

Please sign in to comment.