Skip to content

Commit

Permalink
deploy: v1.0.1 (#357)
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 9, 2024
1 parent e196029 commit f4ec545
Show file tree
Hide file tree
Showing 262 changed files with 1,451 additions and 1,482 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/android-cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,6 @@ jobs:
# uses: r0adkll/upload-google-play@v1
# with:
# serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
# packageName: com.woowacourse.staccato
# packageName: com.on.staccato
# releaseFiles: android/Staccato_AN/app/build/outputs/bundle/release/app-release.aab
# track: internal
2 changes: 1 addition & 1 deletion .github/workflows/backend-ci-cd-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Backend CI/CD dev

on:
pull_request:
branches: [ "develop-be" ]
branches: [ "develop-be", "develop" ]

jobs:
ci:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/backend-ci-cd-stage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Backend CI/CD stage

on:
push:
branches: [ "develop-be" ]
branches: [ "develop-be", "develop" ]

jobs:
ci:
Expand Down
8 changes: 4 additions & 4 deletions android/Staccato_AN/app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,15 @@ plugins {
}

android {
namespace = "com.woowacourse.staccato"
namespace = "com.on.staccato"
compileSdk = 34

defaultConfig {
applicationId = "com.woowacourse.staccato"
applicationId = "com.on.staccato"
minSdk = 26
targetSdk = 34
versionCode = 2
versionName = "1.1"
versionCode = 3
versionName = "1.0.0"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.woowacourse.staccato
package com.on.staccato

import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
Expand All @@ -17,6 +17,6 @@ class ExampleInstrumentedTest {
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("com.woowacourse.staccato", appContext.packageName)
assertEquals("com.on.staccato", appContext.packageName)
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.woowacourse.staccato
package com.on.staccato

import android.app.Application
import androidx.appcompat.app.AppCompatDelegate
import com.woowacourse.staccato.data.UserInfoPreferencesManager
import com.on.staccato.data.UserInfoPreferencesManager

class StaccatoApplication : Application() {
override fun onCreate() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.woowacourse.staccato.data
package com.on.staccato.data

import com.woowacourse.staccato.data.StaccatoClient.getErrorResponse
import com.woowacourse.staccato.data.dto.ErrorResponse
import com.woowacourse.staccato.data.dto.Status
import com.on.staccato.data.StaccatoClient.getErrorResponse
import com.on.staccato.data.dto.ErrorResponse
import com.on.staccato.data.dto.Status
import okhttp3.ResponseBody
import retrofit2.HttpException
import retrofit2.Response
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.woowacourse.staccato.data
package com.on.staccato.data

import kotlinx.coroutines.runBlocking
import okhttp3.Interceptor
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.woowacourse.staccato.data
package com.on.staccato.data

import com.woowacourse.staccato.data.dto.Status
import com.on.staccato.data.dto.Status

sealed interface ResponseResult<T : Any> {
class Success<T : Any>(val data: T) : ResponseResult<T>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package com.woowacourse.staccato.data
package com.on.staccato.data

import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
import com.woowacourse.staccato.BuildConfig
import com.woowacourse.staccato.data.comment.CommentApiService
import com.woowacourse.staccato.data.dto.ErrorResponse
import com.woowacourse.staccato.data.image.ImageApiService
import com.woowacourse.staccato.data.login.LoginApiService
import com.woowacourse.staccato.data.memory.MemoryApiService
import com.woowacourse.staccato.data.moment.MomentApiService
import com.woowacourse.staccato.data.timeline.TimeLineApiService
import com.on.staccato.BuildConfig
import com.on.staccato.data.comment.CommentApiService
import com.on.staccato.data.dto.ErrorResponse
import com.on.staccato.data.image.ImageApiService
import com.on.staccato.data.login.LoginApiService
import com.on.staccato.data.memory.MemoryApiService
import com.on.staccato.data.moment.MomentApiService
import com.on.staccato.data.timeline.TimeLineApiService
import kotlinx.serialization.json.Json
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.OkHttpClient
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.woowacourse.staccato.data
package com.on.staccato.data

import com.woowacourse.staccato.StaccatoApplication
import com.on.staccato.StaccatoApplication
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.woowacourse.staccato.data
package com.on.staccato.data

import android.content.Context
import android.content.SharedPreferences
Expand All @@ -22,7 +22,7 @@ class UserInfoPreferencesManager(context: Context) {
}

companion object {
private const val USER_INFO_PREF_NAME = "com.woowacourse.staccato.user_info_prefs"
private const val TOKEN_KEY_NAME = "com.woowacourse.staccato.token"
private const val USER_INFO_PREF_NAME = "com.on.staccato.user_info_prefs"
private const val TOKEN_KEY_NAME = "com.on.staccato.token"
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.woowacourse.staccato.data.comment
package com.on.staccato.data.comment

import com.woowacourse.staccato.data.dto.comment.CommentRequest
import com.woowacourse.staccato.data.dto.comment.CommentUpdateRequest
import com.woowacourse.staccato.data.dto.comment.CommentsResponse
import com.on.staccato.data.dto.comment.CommentRequest
import com.on.staccato.data.dto.comment.CommentUpdateRequest
import com.on.staccato.data.dto.comment.CommentsResponse
import retrofit2.Response
import retrofit2.http.Body
import retrofit2.http.DELETE
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.woowacourse.staccato.data.comment
package com.on.staccato.data.comment

import com.woowacourse.staccato.data.ResponseResult
import com.woowacourse.staccato.data.dto.comment.CommentRequest
import com.woowacourse.staccato.data.dto.comment.CommentUpdateRequest
import com.woowacourse.staccato.data.dto.comment.CommentsResponse
import com.on.staccato.data.ResponseResult
import com.on.staccato.data.dto.comment.CommentRequest
import com.on.staccato.data.dto.comment.CommentUpdateRequest
import com.on.staccato.data.dto.comment.CommentsResponse

interface CommentDataSource {
suspend fun getComments(momentId: Long): ResponseResult<CommentsResponse>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package com.woowacourse.staccato.data.comment
package com.on.staccato.data.comment

import com.woowacourse.staccato.data.ResponseResult
import com.woowacourse.staccato.data.dto.comment.CommentUpdateRequest
import com.woowacourse.staccato.data.dto.mapper.toDomain
import com.woowacourse.staccato.data.dto.mapper.toDto
import com.woowacourse.staccato.domain.model.Comment
import com.woowacourse.staccato.domain.model.NewComment
import com.woowacourse.staccato.domain.repository.CommentRepository
import com.on.staccato.data.ResponseResult
import com.on.staccato.data.dto.comment.CommentUpdateRequest
import com.on.staccato.data.dto.mapper.toDomain
import com.on.staccato.data.dto.mapper.toDto
import com.on.staccato.domain.model.Comment
import com.on.staccato.domain.model.NewComment
import com.on.staccato.domain.repository.CommentRepository

class CommentDefaultRepository(
private val commentDataSource: CommentDataSource = CommentRemoteDataSource(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.woowacourse.staccato.data.comment
package com.on.staccato.data.comment

import com.woowacourse.staccato.data.ApiResponseHandler.handleApiResponse
import com.woowacourse.staccato.data.ResponseResult
import com.woowacourse.staccato.data.StaccatoClient
import com.woowacourse.staccato.data.dto.comment.CommentRequest
import com.woowacourse.staccato.data.dto.comment.CommentUpdateRequest
import com.woowacourse.staccato.data.dto.comment.CommentsResponse
import com.on.staccato.data.ApiResponseHandler.handleApiResponse
import com.on.staccato.data.ResponseResult
import com.on.staccato.data.StaccatoClient
import com.on.staccato.data.dto.comment.CommentRequest
import com.on.staccato.data.dto.comment.CommentUpdateRequest
import com.on.staccato.data.dto.comment.CommentsResponse

class CommentRemoteDataSource(
private val commentApiService: CommentApiService = StaccatoClient.commentApiService,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.woowacourse.staccato.data.dto
package com.on.staccato.data.dto

import kotlinx.serialization.Serializable

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.woowacourse.staccato.data.dto
package com.on.staccato.data.dto

sealed class Status {
data class Code(val code: Int) : Status()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.woowacourse.staccato.data.dto.comment
package com.on.staccato.data.dto.comment

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.woowacourse.staccato.data.dto.comment
package com.on.staccato.data.dto.comment

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.woowacourse.staccato.data.dto.comment
package com.on.staccato.data.dto.comment

import kotlinx.serialization.SerialName

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.woowacourse.staccato.data.dto.comment
package com.on.staccato.data.dto.comment

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.woowacourse.staccato.data.dto.image
package com.on.staccato.data.dto.image

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.woowacourse.staccato.data.dto.login
package com.on.staccato.data.dto.login

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.woowacourse.staccato.data.dto.login
package com.on.staccato.data.dto.login

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package com.woowacourse.staccato.data.dto.mapper
package com.on.staccato.data.dto.mapper

import com.woowacourse.staccato.data.dto.comment.CommentDto
import com.woowacourse.staccato.data.dto.comment.CommentRequest
import com.woowacourse.staccato.data.dto.comment.CommentsResponse
import com.woowacourse.staccato.domain.model.Comment
import com.woowacourse.staccato.domain.model.NewComment
import com.on.staccato.data.dto.comment.CommentDto
import com.on.staccato.data.dto.comment.CommentRequest
import com.on.staccato.data.dto.comment.CommentsResponse
import com.on.staccato.domain.model.Comment
import com.on.staccato.domain.model.NewComment

fun CommentsResponse.toDomain(): List<Comment> = comments.map { it.toDomain() }

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.on.staccato.data.dto.mapper

import com.on.staccato.data.dto.moment.FeelingRequest
import com.on.staccato.domain.model.Feeling

fun Feeling.toFeelingRequest(): FeelingRequest =
FeelingRequest(
feeling = value,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.on.staccato.data.dto.mapper

import com.on.staccato.data.dto.member.MemberDto
import com.on.staccato.domain.model.Member

fun MemberDto.toDomain() =
Member(
memberId = memberId,
nickname = nickname,
memberImage = memberImage,
)
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package com.woowacourse.staccato.data.dto.mapper
package com.on.staccato.data.dto.mapper

import com.woowacourse.staccato.data.dto.memory.MemoriesResponse
import com.woowacourse.staccato.data.dto.memory.MemoryMomentDto
import com.woowacourse.staccato.data.dto.memory.MemoryRequest
import com.woowacourse.staccato.data.dto.memory.MemoryResponse
import com.woowacourse.staccato.domain.model.Memory
import com.woowacourse.staccato.domain.model.MemoryCandidate
import com.woowacourse.staccato.domain.model.MemoryCandidates
import com.woowacourse.staccato.domain.model.MemoryMoment
import com.woowacourse.staccato.domain.model.NewMemory
import com.on.staccato.data.dto.memory.MemoriesResponse
import com.on.staccato.data.dto.memory.MemoryMomentDto
import com.on.staccato.data.dto.memory.MemoryRequest
import com.on.staccato.data.dto.memory.MemoryResponse
import com.on.staccato.domain.model.Memory
import com.on.staccato.domain.model.MemoryCandidate
import com.on.staccato.domain.model.MemoryCandidates
import com.on.staccato.domain.model.MemoryMoment
import com.on.staccato.domain.model.NewMemory
import java.time.LocalDate
import java.time.LocalDateTime

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package com.woowacourse.staccato.data.dto.mapper
package com.on.staccato.data.dto.mapper

import com.woowacourse.staccato.data.dto.moment.MomentLocationDto
import com.woowacourse.staccato.data.dto.moment.MomentResponse
import com.woowacourse.staccato.domain.model.Feeling
import com.woowacourse.staccato.domain.model.Moment
import com.woowacourse.staccato.domain.model.MomentLocation
import com.on.staccato.data.dto.moment.MomentLocationDto
import com.on.staccato.data.dto.moment.MomentResponse
import com.on.staccato.domain.model.Feeling
import com.on.staccato.domain.model.Moment
import com.on.staccato.domain.model.MomentLocation
import java.time.LocalDateTime

fun MomentResponse.toDomain() =
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.woowacourse.staccato.data.dto.mapper
package com.on.staccato.data.dto.mapper

import com.woowacourse.staccato.data.dto.timeline.TimelineMemoryDto
import com.woowacourse.staccato.data.dto.timeline.TimelineResponse
import com.woowacourse.staccato.domain.model.Memory
import com.woowacourse.staccato.domain.model.Timeline
import com.on.staccato.data.dto.timeline.TimelineMemoryDto
import com.on.staccato.data.dto.timeline.TimelineResponse
import com.on.staccato.domain.model.Memory
import com.on.staccato.domain.model.Timeline
import java.time.LocalDate

fun TimelineResponse.toDomain(): Timeline {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.woowacourse.staccato.data.dto.member
package com.on.staccato.data.dto.member

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.woowacourse.staccato.data.dto.memory
package com.on.staccato.data.dto.memory

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.woowacourse.staccato.data.dto.memory
package com.on.staccato.data.dto.memory

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.woowacourse.staccato.data.dto.memory
package com.on.staccato.data.dto.memory

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.woowacourse.staccato.data.dto.memory
package com.on.staccato.data.dto.memory

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
Expand Down
Loading

0 comments on commit f4ec545

Please sign in to comment.