Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* FU-57 chore: initial setting 개발 환경 세팅 * FU-57 refactor: reorganize directory structure 초기 세팅에서 디렉터리 구조 수정 * FU-57 docs: update gitignore .DS_Store 파일 제거 * FU-57 chore: add checkstyle configuration to build.gradle 빌드 시 자동으로 코드 스타일을 검사하기 위함 * FU-55 fix: clear git cache .gitignore가 적용되지 않는 문제가 있어 git 캐시 삭제하였음 * FU-55 feat: add validation dependency Entity 필드에 제약조건(ex: @NotNull)을 걸기 위함 * FU-55 feat: User Entity 구현 * FU-55 fix: 테이블명 오타 수정 * FU-55 feat: add PR template PR 탬플릿을 추가하였음 * FU-55 fix: PR template 오타 수정 * FU-77 feat: 상품관련 Entity 구현 - 단방향 매핑으로 연관관계 설정 * FU-55 chore: update .yml setting 기존에 .propeties를 설정파일로 사용하던 것을 .yml 파일로 옮기고, 중요한 값들은 환경변수로 설정하였음 * FU-55 feat: update user entity & repository Builder 생성자에 role 파라미터를 추가하였음 * FU-55 feat: UserRepository 테스트코드 작성 * FU-55 feat: update user builder pattern 빌더 패턴을 사용하여 NotNull에 해당하는 필드는 반드시 객체 생성시 포함하도록 강제하였음. * FU-77 feat: Product관련 Entity 기본키의 컬럼명 설정 * FU-77 feat: @column(nullabe = true) 삭제 가독성을 위해 사용했지만 필드가 늘어날수록 불필요한 라인 수 증가로 인해 해당 어노테이션을 삭제함 * FU-77 refactor: activeStatus필드의 타입을 Enum으로 변환 Boolean타입으로 설정 시 True,False의 역할이 명시되어 있지 않아서 혼동이 올 수 있어서 변환하였음 * FU-77 feat: Product관련 Entity Constructor 구현 - 필드의 개수가 적고 nullable이 적은 테이블은 정적 팩토리 메서드를 적용. - 이외에 nullable이 2개 이상이거나 필드가 비교적 많은 경우 Builder패턴을 적용 * FU-77 refactor: rate, amount필드를 Enum클래스로 분리 - 확장성을 고려해서 할인유형마다 필드명을 생성하는 것은 좋지 않은 것으로 판단하여 Enum클래스로 분리 - 각 유형의 value값은 discountValue변수에 대한 validation을 추가함 * FU-77 refactor: price 필드에 대한 validation 추가 * FU-55 refactor: User 클래스명 변경 추후 에약어 충돌 등의 문제가 발생할 수 있음을 고려하여 회원 정보를 저장하기 위한 Entity명을 user에서 member로 바꿈. 이에 따라 entity, repositoy, respositoryTest 명도 함께 변경해주었음 * FU-77 refactor: Product 클래스의 create 메서드명 수정 - 명시적으로 표현하기 위해 create -> createActiveProduct로 수정함 * FU-77 fix: ProductOption 클래스의 createWithDescription 메서드명 오타 수정 * FU-77 feat: validatePrice 메서드 생성자 메서드 내부에 추가 * FU-77 refactor: 각 클래스의 생성자 메서드명 명확하게 수정 * FU-77 refactor: 생성자 메서드명 수정 * [FU-63] Github Action + AWS CodeDeploy를 사용하여 CI/CD 구축 (#5) * FU-63 feat: CI/CD를 수행할 작업스크립트 deploy.yml 추가 * FU-63 feat: code deploy가 수행할 작업스크립트 appspec.yml 프로젝트 루트 경로에 추가 * FU-63 fix: appspec.yml에서 destination경로 수정 * FU-63 feat: 애플리케이션을 실행하는 스크립트 start.sh 추가 * FU-63 feat: 실행 중인 애플리케이션을 중지하는 스크립트 stop.sh 추가 * FU-63 feat: Personal Access Token권한 부족으로 워크플로우 폴더 삭제 * FU-63 feat: CI/CD을 위한 작업스크립트 deploy.yml 추가 * FU-63 feat: deploy.yml에서 step 이름 수정 * FU-63 feat: deploy.yml steps의 첫번째 작업 제목 삭제 * FU-63 feat: deploy.yml에서 ubuntu version 변경 * FU-63 fix: start.sh에서 jar파일명 오류 수정 * FU-63 feat: start.sh에서 jar 실행 명령어 변경 * FU-63 feat: start.sh에서 service_pid를 찾는 명령어 변경 * FU-63 feat: start.sh에서 service_pid 찾는 명령어 변경 * FU-63 feat: start.sh에서 jar 실행 명령어 변경 * FU-63 feat: start.sh에서 jar파일 실행 명령어 변경 * FU-63 feat: start.sh에서 service_pid 찾는 명령어 변경 * FU-63 chore: start.sh에서 공백 제거 * FU-63 style: stop.sh에서 주석 삭제 * FU-63 feat: github.yml 추가 * FU-63 feat: github.yml에 AWS_REGION 환경 변수 추가 * FU-63 fix: github.yml에서 공백 수정 * FU-63 feat: github.yml 삭제 * FU-63 chore: test * FU-63 feat: start.sh에서 권한 추가 * FU-63 feat: appspec.yml에서 pattern 추가 * FU-63 feat: appspec.yml에서 runas : root 추가 * FU-63 feat: start.sh에서 권한 부여 삭제 * FU-63 feat: gitHub.yml 추가 * FU-63 fix: gitHub.yml에서 오탈자 수정 * FU-63 feat: github.yml에서 환경변수 바인딩 수정 * FU-63 feat: deploy.yml 삭제 * FU-63 feat: github.yml에서 s3 업로드 경로 변경 * FU-63 feat: start.sh에 .env 환경변수 적용 명령어 추가 * FU-63 fix: start.sh에서 .env 적용 스크립트 변경 * FU-63 feat: github.yml에서 tracking하는 부분에서 PR파트 삭제 * FU-63 CI/CD 과정에서 test 코드에 대한 검증 단계를 추가 * FU-63 feat: push branch를 test branch로 변경 * FU-63 feat: develop 브랜치에 push 할 때 수행되는 cd_workflow 추가 * FU-63 refactor: github.yml을 ci workflow로 리팩터링 * FU-63 feat: test code DB를 h2 in-memory로 세팅 * FU-63 feat: DB관련 환경변수를 ci_workflow에 추가 * FU-63 fix: ci_workflow_dev name 오타 수정 --------- Co-authored-by: [email protected] <[email protected]> * [FU-63] 테스트용 CD 이벤트 트리거 수정 * FU-63 feat: CI/CD를 수행할 작업스크립트 deploy.yml 추가 * FU-63 feat: code deploy가 수행할 작업스크립트 appspec.yml 프로젝트 루트 경로에 추가 * FU-63 fix: appspec.yml에서 destination경로 수정 * FU-63 feat: 애플리케이션을 실행하는 스크립트 start.sh 추가 * FU-63 feat: 실행 중인 애플리케이션을 중지하는 스크립트 stop.sh 추가 * FU-63 feat: Personal Access Token권한 부족으로 워크플로우 폴더 삭제 * FU-63 feat: CI/CD을 위한 작업스크립트 deploy.yml 추가 * FU-63 feat: deploy.yml에서 step 이름 수정 * FU-63 feat: deploy.yml steps의 첫번째 작업 제목 삭제 * FU-63 feat: deploy.yml에서 ubuntu version 변경 * FU-63 fix: start.sh에서 jar파일명 오류 수정 * FU-63 feat: start.sh에서 jar 실행 명령어 변경 * FU-63 feat: start.sh에서 service_pid를 찾는 명령어 변경 * FU-63 feat: start.sh에서 service_pid 찾는 명령어 변경 * FU-63 feat: start.sh에서 jar 실행 명령어 변경 * FU-63 feat: start.sh에서 jar파일 실행 명령어 변경 * FU-63 feat: start.sh에서 service_pid 찾는 명령어 변경 * FU-63 chore: start.sh에서 공백 제거 * FU-63 style: stop.sh에서 주석 삭제 * FU-63 feat: github.yml 추가 * FU-63 feat: github.yml에 AWS_REGION 환경 변수 추가 * FU-63 fix: github.yml에서 공백 수정 * FU-63 feat: github.yml 삭제 * FU-63 chore: test * FU-63 feat: start.sh에서 권한 추가 * FU-63 feat: appspec.yml에서 pattern 추가 * FU-63 feat: appspec.yml에서 runas : root 추가 * FU-63 feat: start.sh에서 권한 부여 삭제 * FU-63 feat: gitHub.yml 추가 * FU-63 fix: gitHub.yml에서 오탈자 수정 * FU-63 feat: github.yml에서 환경변수 바인딩 수정 * FU-63 feat: deploy.yml 삭제 * FU-63 feat: github.yml에서 s3 업로드 경로 변경 * FU-63 feat: start.sh에 .env 환경변수 적용 명령어 추가 * FU-63 fix: start.sh에서 .env 적용 스크립트 변경 * FU-63 feat: github.yml에서 tracking하는 부분에서 PR파트 삭제 * FU-63 CI/CD 과정에서 test 코드에 대한 검증 단계를 추가 * FU-63 feat: push branch를 test branch로 변경 * FU-63 feat: develop 브랜치에 push 할 때 수행되는 cd_workflow 추가 * FU-63 refactor: github.yml을 ci workflow로 리팩터링 * FU-63 feat: test code DB를 h2 in-memory로 세팅 * FU-63 feat: DB관련 환경변수를 ci_workflow에 추가 * FU-63 fix: ci_workflow_dev name 오타 수정 * FU-63 feat: 테스트용 CD 이벤트 트리거 수정 FU-54 테스트 후 다시 원복할 예정 --------- Co-authored-by: [email protected] <[email protected]> Co-authored-by: 정유석 <[email protected]> * [FU-79] 상품등록 API 구현 (#6) * FU-79 feat: Add ApiResponseDto class for consistent API response structure * FU-79 feat: add title and description fields to Product Entity * FU-79 style: change tab indentation to 4 spaces * FU-79 feat: add @Enumerated(EnumType.STRING) to enum fields * FU-79 feat: add dto classes related to product * FU-79 feat: add repository related to product * FU-79 feat: add service interface and implementation related to product * FU-79 feat: add productController related to product * FU-79 refactor: ProductService 에서 ProductImage 에 대한 책임을 ProductImageService 클래스로 분리 * FU-79 refactor: ProductService 에서 ProductComponent 에 대한 책임을 ProductComponentService 클래스로 분리 - ProductComponent 에서 정적 팩토리 메서드 패턴 대신 빌더 패턴의 사용성을 고려하여 변경 * FU-79 refactor: ProductService 에서 ProductOption 에 대한 책임을 ProductOptionService 클래스로 분리 - ProductOption 에서 정적 팩토리 메서드 패턴 대신 빌더 패턴의 사용성을 고려하여 변경 * FU-79 refactor: ProductService 에서 ProductDiscount 에 대한 책임을 ProductDiscountService 클래스로 분리 - ProductDiscount 에서 정적 팩토리 메서드 패턴 대신 빌더 패턴의 사용성을 고려하여 변경 * FU-79 refactor: product 관련 클래스 각 도메인 별 패키지 구조로 분리 * FU-79 refactor: productService 에서 addProduct 를 registerProduct 로 변경 * FU-79 refactor: Product 관련 클래스를 Product 패키지 하위로 위치 변경 * FU-79 refactor: product 하위 서비스 클래스들을 삭제하고 ProductServiceImpl 내부에 private 메서드로 분리 * FU-79 chore: ProductServiceImpl 로직에 주석 추가 * FU-79 feat: Product의 요청 URL 변경 * FU-79 feat: productService 인터페이스 삭제 * FU-79 feat: dto 필드 validation 추가 --------- Co-authored-by: [email protected] <[email protected]> * [FU-85] 사진작가의 uniqueUrl 생성 및 등록 API 구현 (#4) * FU-85 feat: Profile Entity 구현 * FU-85 refactor: Profile 필드명 수정 * FU-85 feat: ApiResponseDto 구현 * FU-85 feat: ProfileService 인터페이스 및 구현체 추가 * FU-85 feat: ProfileRepository 추가 * FU-85 feat: ProfileController registerUniqueUrl API 추가 * FU-85 chore: controller 주석 추가 --------- Co-authored-by: [email protected] <[email protected]> * [FU-131] 에러 핸들링 base 코드 구현 (#9) * FU-131 feat: ErrorCode 인터페이스 추가 * FU-131 feat: CommonErrorCode Enum 클래스 추가 * FU-131 feat: ErrorResponse 추가 * FU-131 feat: ErrorCode에서 커스텀하게 작성한 에러들을 위해 RuntimeException을 상속 받는 RestApiException 추가 * FU-131 feat: 에러핸들링을 해주는 GlobalExceptionHandler 추가 * [FU-63] CD 이벤트 트리거 수정 및 환경변수 추가 (#12) * FU-63 feat: CI/CD를 수행할 작업스크립트 deploy.yml 추가 * FU-63 feat: code deploy가 수행할 작업스크립트 appspec.yml 프로젝트 루트 경로에 추가 * FU-63 fix: appspec.yml에서 destination경로 수정 * FU-63 feat: 애플리케이션을 실행하는 스크립트 start.sh 추가 * FU-63 feat: 실행 중인 애플리케이션을 중지하는 스크립트 stop.sh 추가 * FU-63 feat: Personal Access Token권한 부족으로 워크플로우 폴더 삭제 * FU-63 feat: CI/CD을 위한 작업스크립트 deploy.yml 추가 * FU-63 feat: deploy.yml에서 step 이름 수정 * FU-63 feat: deploy.yml steps의 첫번째 작업 제목 삭제 * FU-63 feat: deploy.yml에서 ubuntu version 변경 * FU-63 fix: start.sh에서 jar파일명 오류 수정 * FU-63 feat: start.sh에서 jar 실행 명령어 변경 * FU-63 feat: start.sh에서 service_pid를 찾는 명령어 변경 * FU-63 feat: start.sh에서 service_pid 찾는 명령어 변경 * FU-63 feat: start.sh에서 jar 실행 명령어 변경 * FU-63 feat: start.sh에서 jar파일 실행 명령어 변경 * FU-63 feat: start.sh에서 service_pid 찾는 명령어 변경 * FU-63 chore: start.sh에서 공백 제거 * FU-63 style: stop.sh에서 주석 삭제 * FU-63 feat: github.yml 추가 * FU-63 feat: github.yml에 AWS_REGION 환경 변수 추가 * FU-63 fix: github.yml에서 공백 수정 * FU-63 feat: github.yml 삭제 * FU-63 chore: test * FU-63 feat: start.sh에서 권한 추가 * FU-63 feat: appspec.yml에서 pattern 추가 * FU-63 feat: appspec.yml에서 runas : root 추가 * FU-63 feat: start.sh에서 권한 부여 삭제 * FU-63 feat: gitHub.yml 추가 * FU-63 fix: gitHub.yml에서 오탈자 수정 * FU-63 feat: github.yml에서 환경변수 바인딩 수정 * FU-63 feat: deploy.yml 삭제 * FU-63 feat: github.yml에서 s3 업로드 경로 변경 * FU-63 feat: start.sh에 .env 환경변수 적용 명령어 추가 * FU-63 fix: start.sh에서 .env 적용 스크립트 변경 * FU-63 feat: github.yml에서 tracking하는 부분에서 PR파트 삭제 * FU-63 CI/CD 과정에서 test 코드에 대한 검증 단계를 추가 * FU-63 feat: push branch를 test branch로 변경 * FU-63 feat: develop 브랜치에 push 할 때 수행되는 cd_workflow 추가 * FU-63 refactor: github.yml을 ci workflow로 리팩터링 * FU-63 feat: test code DB를 h2 in-memory로 세팅 * FU-63 feat: DB관련 환경변수를 ci_workflow에 추가 * FU-63 fix: ci_workflow_dev name 오타 수정 * FU-63 feat: 테스트용 CD 이벤트 트리거 수정 FU-54 테스트 후 다시 원복할 예정 * FU-63 feat: CD 이벤트 트리거 수정 및 환경변수 추가 --------- Co-authored-by: [email protected] <[email protected]> Co-authored-by: 정유석 <[email protected]> * feat: cd_workflow 파일 수정 (#14) * [FU-86] 등록된 상품 조회 API 구현 (#13) * FU-86 feat: member 엔티티 id 컬럼명 member_id로 변경 * FU-86 feat: product와 member 단방향 연관관계 매핑 * FU-86 feat: 등록된 상품 조회 ResponseDto 추가 * FU-86 feat: member를 통해 product들을 조회하는 쿼리메서드 추가 * FU-86 feat: 등록된 상품 조회 관련 getRegisteredProductList 메서드 추가 * FU-86 feat: 등록된 상품 조회 Controller 추가 * FU-86 feat: product 생성 시 member 추가 * FU-86 fix: RegisteredProductResponseDto 오타 수정 * FU-86 feat: 상품상태 변경을 위한 UpdateProductRequestDto 추가 * FU-86 feat: 상품상태 변경을 위한 updateProductActiveStatus 추가 * FU-86 feat: 상품상태 변경을 위한 controller 추가 * FU-86 feat: product의 상품상태 변경을 위한 메서드를 entity 클래스에 추가 * FU-86 feat: product 관련 ProductErrorCode 추가 - 여기에 추가적으로 product 관련된 ErrorCode를 정의하여 프로젝트 내에서 관리합니다. * FU-86 feat: 상품상태 변경시 잘못된 상태 값이 들어왔을 때 에러를 반환해주는 코드 추가 * FU-86 feat: 기존의 RuntimeException을 반환하던 것을 세부적인 ErrorCode로 재정의 후 변경 * FU-86 refactor: getErrorCode를 호출부로 옮겨서 가독성을 높임 * FU-86 feat: 사진작가가 상품을 등록하지 않은 경우 널값이 반환되는 경우를 고려하여 Optional로 반환값을 포괄함 * FU-86 refactor: ProductService에서 상세화된 ErrorCode를 반환하게 변경 - getRegisteredProductList(), getMember() 내부에서 변경 * FU-86 chore: 불필요한 공백 및 쉼표 삭제 * FU-86 feat: 로컬에서 지속적 테스트를 위해 ddl-auto를 update로 변경 * FU-86 fix: 현재 product의 상태와 비교하는 로직으로 수정 * FU-86 feat: ActiveStatus의 상태 변경감지를 설정하기 위해 @transactional 추가 * FU-86 refactor: httpStatus를 int타입으로 반환하도록 변경 * FU-86 fix: 리소스를 대체하는 Put method로 수정 * FU-86 fix: getMember()의 파라미터 변수명 수정 * [FU-111] 촬영 예약신청서 등록 API 구현 (#16) * FU-111 feat: Json Converting을 해줄 의존성 추가 * FU-111 feat: ReservationForm Entity 추가 * FU-111 feat: ReservationStatus Enum 추가 * FU-111 feat: ReservationFormRequest DTO 추가 * FU-111 feat: 예약신청서 등록 서비스 로직 기능 추가 * FU-111 feat: 예약신청서 등록 Controller API 추가 * FU-111 refactor: 촬영일정 후보의 타입을 Map<Integer,LocalDateTime>으로 변경 * FU-111 feat: Inactive 상태인 상품을 등록하려 했을 때 필요한 ProductErrorCode 추가 * FU-111 feat: 상품 제목으로 Product를 조회하는 쿼리메서드 추가 * FU-111 feat: Inactive 상태인 상품 등록을 검증하는 기능 추가 * [FU-54] OAuth2.0 연동 및 인증/인가 처리 (#10) * FU-54 feat: add OAuth2 client registration for kakao OAuth2 Client 등록 설정을 추가함 * FU-54 fix: client-authentication-method 변경 카카오 로그인에서 Client Secret 옵션을 활성화 함에 따라, client-authentication-method를 변경해주었음 * FU-54 feat: add OAuth2 client registration for kakao OAuth2 Client 등록 설정을 추가함 * FU-54 fix: client-authentication-method 변경 카카오 로그인에서 Client Secret 옵션을 활성화 함에 따라, client-authentication-method를 변경해주었음 * FU-54 refactor: update application.yaml FU-55가 develop에 먼저 merge되면서 rebase를 수행하여 yaml파일을 업데이트할 필요가 있었음 * FU-54 fix: application.yaml 오타 수정 autorize -> authorize * FU-54 feat: add SecurityConfig * FU-54 feat: OAuth2UserService 인터페이스 구현 - SpringSecurity에서 제공하는 기본 구현체인 OAuth2UserService를 커스텀하였음. - OAuth2UserService는 인가서버와 통신한 후, 사용자 정보를 OAuth2User 객체에 가져오게 됨. - 추후 해당 객체를 활용하여 DB에 회원등록 처리를 하기 위해 loadUser 메서드를 오버라이드 하였음. * FU-54 feat: 기본적인 회원가입 로직 구현 카카오 서버로부터 받아온 사용자 정보를 DB에 저장하는 로직을 구현하였음 * FU-54 chore: aws cognito 의존성 추가 사용자 토큰 생성 및 관리를 위해 aws cognito를 연동하고자 의존성을 추가함 * FU-54 feat: cognito user pool 등록 api 구현 카카오 서버에서 받아온 유저 정보를 cognito에 등록하기 위한 api를 구현하였음 * FU-54 fix: user pool 등록 시 phone number 포맷팅 에러 수정 - 기존에 카카오 서버에서 받아오는 phone number 포맷은 +82 10-0000-0000이었으나, 이대로 cognito 등록 시 Invalid phone number format error가 발생했음. - AWS Cognito는 전화번호의 형식을 E.164 표준으로 요구하기 때문에 문자(+, -)를 제외하고 숫자만으로 변환하였음 * FU-54 refactor: 코딩컨벤션에 어긋난 변수명 수정 kakao_account -> kakaoAccount * FU-54 refactor: yaml파일 환경변수명 수정 * FU-54 feat: aws, cognito 환경변수 바인딩 용 properties 클래스 생성 * FU-54 refactor: @Autowired 어노테이션 제거 생성자가 하나밖에 없기 때문에 어노테이션을 생략하였음 * FU-54 refactor: registerUserPool 메서드 리팩토링 * FU-54 feat: cognito 토큰 발급 API 구현 cognito 유저 풀에 등록된 유저의 인증 과정을 거쳐 엑세스 토큰 및 리프레시 토큰을 발행하는 메서드를 구현하였음 * FU-54 refactor: cognito 등록 및 토큰 발행 절차를 successHandler에서 처리하도록 수정 기존 코드에서는 카카오에서 사용자 정보를 가져오는 시점에 cognito 유저 풀에 등록하고 토큰을 발행했음. 하지만 이때 토큰을 발행하게 되면 인증이 끝나고 redirect 시키는 시점에서 accessToken, refreshToken을 쿠키에 세팅하기 위해 토큰을 다시 얻어오는 등 유사한 작업을 반복해야하므로 수행 시점을 리팩토링하게 되었음. * FU-54 feat: cognito 유저풀에 등록하기 전에 등록 여부 검증하는 절차 추가 더불어 메서드 추출 리팩토링도 함께 수행함 * FU-54 feat: 로그인 인증 후 responseCookie 생성하여 리다이렉트 로직 추가 로그인 인증을 성공적으로 수행한 뒤, successHandler에서 토큰을 쿠키에 담아 리다이렉트 시키는 로직을 추가하였음 * FU-54 refactor: 인증 관련 클래스를 auth 패키지 하위로 이동 * FU-54 refactor: 패키지명 및 구조 변경 handler를 config에 통합시키고, entity 대신 model이라는 패키지명을 사용함 * FU-54 feat: Cognito 의존성 및 코드 삭제 Cognito에서 생성한 jwt 토큰을 validate하는 API가 별도로 존재하지 않고, payload를 커스텀 하기 어렵다는 이슈가 있음. * FU-54 chore: jjwt dependency 추가 - 토큰 생성 및 검증을 위한 라이브러리 * FU-54 feat: jwt 관련 모델 구현 * FU-54 feat: 토큰 생성 로직 구현 * FU-54 feat: 리프레시 토큰 저장 로직 구현 * FU-54 feat: JwtAuthenticationFilter 설정 클라이언트 요청 시 JwtAuthenticationFilter를 먼저 수행해 jwt 기반 인증을 처리할 수 있도록 함 * FU-54 feat: 토큰 검증 로직 구현 * FU-54 feat: 요청 토큰으로부터 인증 객체 생성 엑세스토큰에서 페이로드 파싱하여 인증객체를 만들고, SecurityContext에 인증객체를 저장해 전역적으로 사용할 수 있도록 함 * FU-54 feat: 배포 테스트를 위해 로그인 후 리다이렉트 설정 변경 * FU-54 feat: cookie maxAge 수정 * FU-54 fix: 테스트 yaml -> yml 확장자 수정 테스트 PR Conflict로 파일명 수정함 * FU-54 refactor: UserDetailsServiceImpl 클래스명 수정 * FU-54 feat: ROLE 타입 변경 및 추가 - 기존에 회원가입한 유저를 ROLE_USER로만 구분하던 것을 세가지 분류로 나누었음. - ROLE_PENDING: 회원타입이 저장되기 전의 상태로, 최초 로그인 성공 후에� 일시적으로 해당 권한을 가짐 * FU-54 feat: OAuth2User 커스텀 - http request시, OAuth2User 객체에 저장된 authority가 security config의 requestMatcher에서 지정한 권한과 일치하는지 확인하는 과정을 거치게됨. - 기존 코드에서는 OAuth2User객체를 커스텀없이 구현하여 authority에 카카오에서 받아온 scope 정보만 저장되어 있었음. - 따라서 authority를 ROLE_PENDING으로 지정하기 위해 해당 객체를 커스텀하게 구현하였음. * FU-54 fix: principal name cannot be empty 에러 해결 * FU-54 fix: CI 테스트 코드 실패 에러 수정 ROLE_USER가 사라짐에 따라 테스트 코드에도 변경사항을 반영하였음 * FU-54 feat: 로그 레벨 debug로 설정 * FU-54 fix: 환경변수명 수정 * FU-54 chore: 코드 위치 변경 * FU-54 feat: actuator 의존성 추가 * FU-54 feat: 쿼리스트링 방식으로 토큰 전송 * FU-54 refactor: redirect URL 수정 * FU-54 feat: 요청 헤더에서 토큰 추출 및 검증 API 요청이 들어올때마다 JwtAuthenticationFilter에서 Authorization 헤더에 담긴 엑세스 토큰을 꺼내와 검증함 * FU-54 refactor: ROLE enum 상수의 prefix 제거 * FU-54 feat: 로그인 성공 직후 회원타입 업데이트 API 구현 * FU-54 fix: casting 에러 수정 에러 메시지: Cannot convert existing claim value of type 'class java.lang.Long' to desired type 'class java.lang.String'. JJWT only converts simple String, Date, Long, Integer, Short and Byte types automatically. Anything more complex is expected to be already converted to your desired type by the JSON Deserializer implementation. You may specify a custom Deserializer for a JwtParser with the desired conversion configuration via the JwtParserBuilder.deserializer() method. See https://github.com/jwtk/jjwt#custom-json-processor for more information. If using Jackson, you can specify custom claim POJO types as described in https://github.com/jwtk/jjwt#json-jackson-custom-types * FU-54 refactor: indent 설정 tab->space 변경 * FU-54 feat: base url 환경변수 추가 * FU-54 fix: shouldNotFilter 적용 안되는 문제 해결 /login/type 요청 시 jwtAuthenticationFilter가 적용되지 않는 문제가 있었음. 이는 shouldNotFilter에서 요청경로에 /login이 포함되는 경우에 적용이 제외되도록 설정되어있었기 때문인데, startsWith -> contains로 수정하여 해결함. * FU-54 fix: CI 동작 시 테스트코드 실행 실패 에러 수정 * FU-54 fix: RoleTypeRequest 변수명 수정 userType -> roleType * FU-54 feat: member <-> profile 일대일 연관관게 매핑 * FU-54 feat: 회원가입 로직에 사진작가측 고유 URL 생성 및 반환하는 로직 추가 * FU-54 refactor: jwt 패키지 분리 * FU-54 feat: JWT 예외처리 필터 등록 JwtAuthenticationFilter 앞단에 JwtExceptionFilter를 둬서 JwtAuthenticationFilter에서 토큰 검증 중에 예외가 발생하면 앞단으로 예외를 던지도록 처리하였음 * FU-54 refactor: CustomOauth2User, CustomUserDetails 클래스 통합 - Authentication 객체의 두 타입(oauth2User, userDetilas)을 하나로 묶어서 관리하고자 함 - 추가로 멤버 조회, 저장 등의 로직에서 카카오 아이디가 아닌 멤버 고유 아이디를 활용하도록 수정함 * FU-54 feat: 리프레시 토큰 저장 시 기존의 토큰 삭제 후 저장 * FU-54 fix: 서버 재부팅 시 secretKey가 달라지는 문제 해결 기존의 코드에서 서버 재부팅마다 secret key가 달라져 토큰 claim을 parsing할때 SignatureMismatch exception이 발생하는 문제가 있었음. * FU-54 feat: 토큰 재발행 API 구현 * FU-54 feat: 로그인 과정 예외처리 추가 * FU-54 refactor: 클래스명, 메서드명, 코드 일부 리팩토링 * FU-54 feat: member-profile 단방향 매핑으로 변경 * FU-54 fix: 불필요한 코드 삭제 및 임시 코드 수정 * FU-54 fix: 메서드명 수정 후 메서드 추출 * FU-54 feat: 인증필터에서 토큰 재발행 경로 제외 * FU-134 fix: 컴포넌트 스캔 범위 지정 (#17) * [FU-121] 사진작가측 신청서 리스트보기 API 구현 (#20) * FU-121 feat: component scan 경로 지정 * FU-121 refactor: 고객측 신청서 등록 로직 리팩토링 * FU-121 feat: 고객측 신청서 등록 요청 DTO 유효성 검증 추가 및 필수파라미터 강제화 * FU-121 feat: customer의 요청권한 확인 경로 추가 * FU-121 refactor: member 엔티티 필드 위치 수정 * FU-121 fix: 고객측 신청서 등록 시 사진작가 메모 제외 * FU-121 feat: 사진작가측 신청서 리스트뷰 조회 API 구현 * FU-121 refactor: 변수명 수정 및 �profile 엔티티 유효성 검증 타입 변경 * [FU-104] 사진의뢰자 상품 조회 API 구현 (#15) * FU-104 refactor: 클래스명 rename, 상태코드를 int형으로 변경 * FU-104 feat: product관련 dto에 빌더 추가 * FU-104 feat: product관련 repository에서 findByProduct 쿼리 메서드 추가 * FU-104 refactor: photographer 패키지 내부로 이동 * FU-104 refactor: ProfileService 인터페이스를 삭제 후 구현체로만 관리 - 아직 인터페이스의 분리에 대한 안목이 보이지 않는 시점이기에 오버 엔지니어링을 방지하였음 * FU-104 feat: findByMember 쿼리 메서드 추가 * FU-104 feat: 사진의뢰자가 상품 조회를 하기 위한 Response클래스 추가 * FU-104 refactor: 패키지 변경으로 인한 import문 변경 * FU-104 feat: 사진의뢰자가 상품 조회 기능 추가 * FU-104 feat: 사진의뢰자가 상품 조회하는 API 추가 * FU-104 chore: develop 브랜치에서 rebase 내용 추가 수정 * FU-104 chore: develop 브랜치에서 rebase 내용 추가 수정 #2 * FU-104 refactor: 사진작가와 사진의뢰자에 대한 controller, service 분리 * FU-104 refactor: 모든 상품의 상세정보를 productId에 따라 개별적으로 호출하는 API로 수정 * FU-104 feat: ProductBasicInfoResponse DTO 추가 * FU-104 feat: 전체 상품의 기본 정보를 조회하는 서비스 로직 추가 * FU-104 feat: 전체 상품의 기본 정보를 조회하는 Controller API 추가 * FU-104 chore: ProductBasicInfoResponse 주석 추가 * [FU-109] 사진의뢰자 측 예약신청서 폼에서 기본 정보 조회 API 구현 (#18) * FU-109 feat: 예약신청서 기본정보 조회를 위한 DTO 추가 * FU-109 feat: 예약신청서 기본정보 조회 서비스 로직 추가 * FU-109 feat: ProductComponentDto에 빌더 패턴 추가 * FU-109 feat: ProductComponentRepository에 findByProduct 쿼리메서드 추가 * FU-109 feat: 예약신청서 기본정보 조회를 위한 Controller API 추가 * FU-109 feat: 컴포넌트 스캔 범위 설정 추가 * FU-109 feat: Entity 생성 및 업데이트 시간 기록을 위한 BaseEntity 추가 및 적용 * FU-109 chore: CustomerReservationFormService에 TODO 주석 작성 * FU-109 feat: BasicReservationInfoResponse에 상품 옵션 필드 추가 * FU-109 feat: ProductOptionDto 빌더패턴의 생성자 추가 * FU-109 feat: BasicReservationInfoResponse에 상품 옵션을 추가하는 서비스 로직 추가 * FU-109 feat: @Valid, 로그인 정보 불러오는 어노테이션 추가 로그인 정보를 불러오는 로직 추가로 인해 전파되는 클래스까지 수정하였습니다. * [FU-107] 촬영상품의 참고 사진 조회 API 구현 (#19) * FU-107 feat: 참조사진 불러오기 기능 추가 * FU-107 feat: ApiResponseDto, ProductService Interface 삭제 * FU-107 feat: Controller에 @Valid 추가 * FU-107 fix: CustomProductController 클래스 삭제 * [FU-115] 사진작가측 신청서 상세보기 API 구현 (#21) * FU-115 refactor: 신청서 관련 DTO 클래스명 수정 신청서를 ReservationForm -> Form으로 축약해 사용하기로 결정함 * FU-115 feat: 휴대폰번호 반환 형식 수정 기존: +82 10-0000-0000 변경: 010-0000-0000 * FU-115 feat: ReservationForm 엔티티 희망일정, 고객메모 필드명 변경 * FU-115 feat: 신청서 상세보기 response dto 구성 * FU-115 feat: 사진작가측 신청서 상세보기 API 구현 * FU-115 feat: 신청서 상세보기 서비스로직 리팩토링 * FU-115 feat: 중복된 상품제목으로 상품 등록시 예외처리 추가 * FU-115 feat: 신청서 등록 및 조회 시 참고사진 추가 * FU-115 feat: response dto 필드명 수정 status -> reservationStatus * FU-115 feat: 신청서 리스트뷰에서 새 신청서 컴포넌트의 반환형식 수정 새 신청서의 경우 희망일정을 반환하지 않음 * FU-115 chore: ToDo 주석 추가 * [FU-194] OAuth 2.0 연동 흐름 변경에 따른 인증방식 및 API 수정 (#24) * FU-194 fix: 잘못된 path variable 변수 수정 * FU-194 feat: 카카오 서버로부터 토큰 정보 가져오기 로직 구현 * FU-194 chore: http 요청을 위한 라이브러리 추가 - 카카오서버로 http 요청을 보내기 위해 webClient 라이브러리를 추가함 - apple slicon환경에서 netty 사용시 발생하는 에러를 해결하기 위해 netty-resolver-dns-native-macos를 런타임 의존성에 추가하였음 * FU-194 feat: 카카오 서버로부터 사용자 정보 가져오기 구현 기존 코드에서 oAuth2UserService의 loadUser를 통해 사용자 정보를 가져오는 로직을 유지하기 위해 oAuth2UserRequest 객체를 생성하여 구현하였음 * FU-194 feat: 유저타입 등록 API 요청을 회원가입 로직 내부에 포함 기존에는 로그인 성공 후 유저타입 등록 요청을 별도로 보내야했지만, 구현방식이 변경 됨에 따라 유저타입 등록을 API 요청이 아닌 로그인/회원가입 시 이뤄지도록 수정하였음 * FU-194 feat: oauth2 client 라이브러리 및 코드 제거 * FU-194 refactor: dto 클래스명 수정 * FU-194 feat: 카카오 서버로부터 사용자 정보 가져오기 직접구현 코드로 변경 * FU-194 refactor: 사용하지 않는 코드 제거 및 리팩토링 * FU-194 feat: 사진작가측 회원가입 API 구현 * FU-194 refactor: 사진작가 회원가입 서비스로직 메소드추출 리팩토링 * FU-194 feat: 트랜잭션 처리 추가 * FU-194 refactor: 메서드명 수정 및 추출 리팩토링 * FU-194 feat: CD workflow 수정 develop으로 머지되는 시점에만 cd가 동작하도록 워크플로우를 수정하였음 * FU-194 feat: pending 처리 관련한 Role enum 상수명 수정 pending이 사진작가측에만 해당되는 만큼 상수명에 이 내용을 반영할 수 있도록 하였음 * FU-194 chore: cd 환경변수 등록 * [FU-132] CORS configuration (#25) * [FU-196] 로그인 과정에서 발생하는 버그 픽스 (#27) * FU-196 fix: CORS 요청헤더 허용 Reject: headers '[Content-type]' are not allowed 에러 해결 * FU-196 feat: 요청 경로에 따른 접근권한 수정 /photographer, /customer로 시작하는 모든 하위 경로에 대해 권한 검증이 이뤄지도록 수정하였음. /customer/product로 시작하는 요청 경로는 로그인이 이뤄지기 이전 시점이므로 접근권한을 해제하였음. * FU-196 fix: 요청 경로 매칭패턴 로직 개선 기존 코드는 요청 URI와 excludePath가 정확히 일치하는 경우에만 jwt 인증필터에서 제외되도록 구현되어 있었음. 이 경우에는 /customer/product/list/{photographerId}, /customer/product/details/{productId}와 같이� 동적으로 변하는 pathvariable을 감지할 수 없으며 와일드 카드를 사용해 하위경로를 매칭시키는 데 어려움이 있었음. 따라서 보다 유연한 패턴 매칭이 가능하도록 로직을 개선하였음. * FU-196 feat: access denied exception 처리를 위한 핸들러 구현 스프링 시큐리티 필터체인에서 예외가 발생해 글로벌 exception handling이 불가능하여 핸들러를 추가하였음 * FU-196 fix: 컬럼 길이 명시를 통한 data truncation 에러 해결 SqlExceptionHelper : SQL Error: 1265, SQLState: 01000 SqlExceptionHelper : Data truncated for column 'role' at row 1 * [FU-181] 사진의뢰자 측에서 사진작가 프로필을 조회하는 API 구현 (#23) * FU-181 feat: Profile entity에 profileUrl 필드 추가 * FU-181 feat: Link entity 추가 * FU-181 feat: ProfileResponse, LinkInfo 추가 내부에 필드 추가를 위해 LinkInfo도 함께 추가했습니다. * FU-181 feat: 잘못된 memberId 요청 시 에러 반환을 위한 errorCode 추가 * FU-181 feat: 사진의뢰자 측에서 사진작가 프로필을 조회하는 서비스 로직 추가 해당 서비스 로직에 대한 API도 같이 커밋내역으로 등록합니다. * FU-126 feat: photographerId -> uniqueUrl API 파라미터 수정 * [FU-118] 사진의뢰자 측 신청서 조회 API 구현 (#22) * FU-118 feat: ReservationForm, FormRegisterRequest에 PhotoOption 추가 * FU-118 feat: 예약신청서 등록 서비스 로직에 PhotoOption 추가 * FU-118 feat: 예약신청서 등록 API에서 reservationFormId를 반환해주는 로직 추가 예약신청서 등록시 서버에서 reservationFormId를 반환해줘야 다음 페이지인 예약신청서 확인할 때 조회할 Id를 클라이언트에서 보내줄 수 있음 * FU-118 feat: ReservationInfoResponse 추가 * FU-118 feat: 신청서 조회 서비스 로직 및 API 추가 * FU-118 feat: 예약신청서에 잘못된 접근 제한에 대한 로직 추가 * FU-118 refactor: 특정 필드에 대한 @NotNull 업데이트 * [FU-126] 이미지 업로드 및 리사이즈 로직 구현 (#26) * FU-126 chore: gradle 의존성 추가 및 application.yaml 이미지 max size 설정 의존성 - S3, Thumbnailator * FU-126 feat: 이미지 관련 ErrorCode 추가 * FU-126 feat: AWS 자격증명과 리전을 사용하여 AmazonS3 클라이언트 설정 * FU-126 feat: photoOption 추가 * FU-126 feat: 원본, 썸네일 이미지를 s3 업로드하는 서비스 로직 추가 * FU-126 feat: FormRegisterRequest 클래스 photoOptions 필드 삭제 * FU-126 feat: 원본, 썸네일 이미지 url를 반환해주는 DTO 추가 * FU-126 refactor: 기존의 preferredImage를 origin_url, thumbnail_url로 분리 * FU-126 refactor: origin_url, thumbnail_url로 분리하여 reservationForm 등록하는 서비스 로직 수정 * FU-126 feat: 예약신청서 등록 API에 MultipartFile을 활용한 이미지 업로드 파라미터 추가 * FU-126 refactor: saveReservationForm 메서드 람다스트림으로 리팩터링 * FU-126 refactor: getPreferredImages 메서드 람다스트림으로 리팩터링 * FU-126 feat: 이미지 리사이징 크기 수정 및 패키지 이동 * FU-126 feat: S3ImageService 이미지 업로드 예외처리 삭제 * FU-126 feat: TODO 테스크에 대한 작업 진행 및 TODO 작성 * FU-126 refactor: 이미지 업로드 로직 리팩터링 * FU-126 refactor: 썸네일 크기 매직넘버 상수화 * FU-126 feat: AWS에 대한 에러처리 추가 * FU-126 feat: 카멜케이스로 필드명 변경 * FU-126 feat: 상품등록 시 사진 유무에 대한 검증로직 추가 * FU-126 refactor: 썸네일 이미지 업로드 로직 리팩터링 * [FU-199] 신청서 리스트뷰 조회 API 보완 (#29) * FU-199 feat: 신청서 목록조회API 응답에 reservation form id 추가 신청서 목록조회에서 특정 신청서 클릭하면 신청서 상세보기 페이지로 이동하기 위함 * FU-199 feat: 촬영 확정일정을 저장하기 위한 컬럼 추가 * FU-199 feat: 신청서 리스트보기 조회 시 정렬로직 구현 * FU-199 refactor: 정렬 알고리즘 리팩토링 * FU-199 refactor: 정렬용 상수 정의하여 리팩토링 * FU-199 feat: d-day 표시를 위해 responseBody에 신청서접수 일자 추가 * [FU-133] 로그아웃 로직 구현 (#28) * FU-133 feat: JwtToken 만료시간, 무효화 여부를 저장하는 컬럼 추가 isRevoked 컬럼을 사용해 토큰의 무효화여부를 구분할 수 있도록 하고, 토큰 생성시 만료시간도 함께 저장하여 추후 배치잡으로 토큰 테이블을 정리할 때 사용할 수 있도록 함. * FU-133 feat: JwtErrorCode 추가 무효화된 토큰에 대한 에러처리와 DB에서 토큰을 찾을 수 없을때의 에러처리를 위함 * FU-133 feat: 로그아웃 요청 시 토큰무효화 로직 구현 로그아웃 요청 시 토큰을 무효화하고, api 요청시마다 실려오는 엑세스토큰을 통해 토큰의 무효화여부를 함께 검증하도록 구현하였음. * FU-133 feat: 로그아웃 요청 시 리프레시토큰 검증 로직 구체화 * FU-133 refactor: security 필터 위치 조정 * FU-133 feat: 로그아웃 핸들러에서 발생하는 IOException 처리 구체화 * FU-133 refactor: Jwt 검증코드를 JwtVerifier 클래스로 이동 JwtProvider: jwt 라이프사이클에 관여 JwtService: 비즈니스 로직 처리 JwtVerifier: jwt 토큰의 유효성 검증 * FU-133 feat: 만료된 리프레시토큰 삭제 로직 추가 토큰 만료여부 검증 시, 리프레시토큰이 만료된 경우 DB에서 삭제됨 * [FU-123] 신청서 상태변경 API (#30) * FU-123 feat: 사진작가측 신청서 상세보기 API 응답바디 보완 - 옵션, 사진작가측 메모를 응답바디에 추가함 * FU-123 refactor: 사진작가측 신청서관련 서비스 클래스 분리 신청서 상세보기 페이지에서 일어나는 작업들은 photographerReservationDetails에서 수행하고자 함 * FU-123 feat: 신청서 상태 변경 API 로직 구현 * FU-123 refactor: request body handling - Use Jackson for enum conversion * FU-123 feat: 신청서 취소 사유 등록 로직 구현 * FU-123 fix: 신청서 상태 유효성 검증 코드 오타 수정 * [FU-202] DTO 필드 유효성 검증 적용 (#32) * FU-202 feat: DTO 유효성 검증 어노테이션 추가 * FU-202 feat: DTO 빌더패턴 적용 및 리팩터링 * FU-202 feat: 사진작가측 상품 조회 시 예약건수 조회 로직 구현 * FU-202 feat: Product & Form DTO validation 추가 - 제목, 컴포넌트 이름 : 최대 30자 - 컴포넌트 내용, 설명 : 최대 100자 * FU-202 refactor: GlobalExceptionHandler 주석 제거 * FU-202 fix: 중복된 코드 삭제 * FU-202 feat: Exception 발생 시 에러메시지 출력 * FU-202 feat: ddl auto 전략 변경 * FU-202 feat: response dto 필드명 원복 리팩토링 과정에서 프론트엔드와 논의없이 response body에 들어갈 필드명도 바꾸게 되어서 다시 기존상태로 돌려놓았음. * FU-202 feat: 상품옵션 가격 검증 어노테이션 변경 옵션 가격은 무료를 포함할 수 있어야함 * [FU-179] 사진작가 회원가입 API 개발 (#33) * FU-179 refactor: s3 이미지 경로 환경변수 등록 * FU-179 refactor: s3 업로드 경로, 썸네일 사이즈 상수화 * FU-179 feat: ProfileImage 엔티티 구성 * FU-179 feat: 사진작가 회원가입시 프로필이미지 저장 로직 구현 * FU-179 refactor: 사진작가 프로필등록 메소드 이동 및 리팩토링 - memberService에서 프로필 등록하던걸 profileService로 이동 - 기존에 getUniqueUrl을 호출해 고유 url을 생성하던걸 get이라는 메소드명에 맞게 조회만 가능하도록 변경 - 최초 회원가입시 프로필 생성하는 메소드를 따로 분리 * FU-179 feat: S3 이미지 업로드 경로 구체화 * FU-179 chore: CD 환경변수 설정 추가 * FU-179 chore: ddl-auto 전략 임시 변경 테이블 구조 변경된 것이 있어 create로 잠시 변경함 * FU-179 feat: 프로필이미지 저장 전 널체크 * [FU-182] 사진작가 측 프로필 업데이트 API (#34) * FU-182 feat: 사진작가의 현재 프로필 정보조회 로직 구현 * FU-182 feat: 사진작가의 현재 프로필 정보조회 controller 추가 * FU-182 feat: 사진작가 외부링크 추가 API 구현 * FU-182 feat: 사진작가 측 프로필 업데이트 API 구현 * FU-182 feat: 사진작가 측 프로필 업데이트 및 조회 테스트 코드 구현 * FU-182 refactor: ProfileImage Entity 추가에 따른 코드 변경 - 불필요한 @transactional 삭제 및 접근 제어자 수정 * FU-182 feat: ddl-auto 업데이트 * [FU-201] ResponseEntity<ResponseBody<T>>으로 responseType 변경 (#35) * FU-201 refactor: ResponseEntity<ResponseBody<T>>으로 responseType 변경 * FU-201 refactor: 의뢰자 측 레퍼런스 이미지 조회 시 photographerId -> productId로 변경 * FU-201 feat: "/customer/profile/**" 경로에 대한 접근 및 토큰 권한 설정 추가 * FU-201 fix: product entity 생성 시 검증로직 중 해당 사진작가의 상품 내에서 검증하도록 수정 * FU-201 feat: profileImage entity의 null에 대한 분기 처리 추가 추가로 updateProfile() 메서드에서 instagramId를 업데이트하는 과정중에 member 객체가 영속화 되어 있지 않아서 변경감지가 이뤄지지 않는 것을 findById()를 통해 영속성 컨텍스트에 포함시켰습니다. * FU-201 refactor: 예약신청서 등록 시 사진작가의 상품 검증 로직에 member도 함께 검증하는 로직으로 변경 * FU-201 refactor: 리팩터링한 코드를 기반으로 테스트 코드 리팩터링 * FU-201 refactor: member 영속화에 대한 테스트 코드 리팩터링 * FU-201 refactor: findOrRegisterMember에서 응답 객체 정의를 controller로 책임 이전 * FU-228 feat: cd 이벤트 트리거에 pull_request 추가 * [FU-228] CodeDeploy 배포 자동화 오류 분석 및 문제해결을 위한 스크립트 개선 (#36) * FU-228 chore: CD 안정성을 위한 스크립트 개선 - start.sh: 로그 메시지 구체화 - stop.sh: 실행중인 프로세스 여러개를 모두 종료할 수 있도록 스크립트 수정 및 로그 메시지 구체화 * FU-228 chore: kill pid 명령어 로그파일에 기록 kill 명령어가 실제로 어떻게 동작하는지 확인하기 위함 * FU-228 chore: 로그 date 형식 수정 * FU-228 chore: start.log, stop.log에 구분선 추가 * FU-228 chore: stop.log 구분선 추가, ddl-auto 전략 임시 변경 변경된 DB 구조 반영이 필요해 임시로 create로 설정 * FU-228 chore: ddl-auto 전략 update로 원복 * FU-228 feat: cd 이벤트 트리거에 pull_request 추가 * FU-228 chore: CD 이벤트 트리거 원복 이번 PR에서 수정한 스크립트로 배포 실행했을때 버그픽스가 되는지 검증하기 위해 일시적으로 pull_request를 CD 이벤트 트리거로 등록했었는데, 검증이 완료되어 다시 원복함 --------- Co-authored-by: 정유석 <[email protected]> * FU-207 chore: 버그픽스 브랜치에 대한 CD전략 업데이트 버그픽스 브랜치의 경우 PR에 푸시할때마다 CD 이벤트 트리거가 동작하도록 함 * [FU-207] 로그인 버그 픽스 (#37) * FU-207 feat: 사진작가 고유 url 구성방식 변경 *프론트엔드 요청으로 변경하게됨 * FU-207 feat: DB 컬럼 길이제한 예외 추가 DB컬럼 길이제한을 넘는 데이터 삽입 시도 시, INVALID_PARAMETER 예외 발생 * FU-207 fix: 로그아웃 성공 이후 리다이렉트 주소 수정 배포환경에서 api.freebe.co.kr/login...으로 리다이렉트 되고 있었기때문에 앞에 baseUrl을 명시해줌 * [FU-48] Add qodana CI checks (#39) * Add qodana.yaml file * Add github workflow file * [FU-48] update qodana_code_quality.yml develop 브랜치로 향하는 PR이 작성될때 qodana를 동작시킴 --------- Co-authored-by: Qodana Application <[email protected]> Co-authored-by: 이유리 <[email protected]> * [FU-212] 고객측 신청서 취소 API 개발 (#38) * FU-212 refactor: reservation form 유효성 검증 클래스 추출 customer, photographer의 reservation 서비스 레이어에서 폼 유효성 검증과 관련해 메소드 재사용성을 늘리기 위해 validator 클래스를 추출하였음 * FU-212 feat: 의뢰자측 신청서 취소 API 개발 및 신청서 관련 공통로직 추출 사진작가 측 신청서 상태변경 메소드를 의뢰자측 신청서 취소 요청 시에 공통으로 사용하고자 ReservationService로 분리하였음. * FU-212 feat: 신청서 상태 세분화 및 다음상태 관리 * FU-212 fix: 작가측 상품등록 시 유효성검증 오류 수정 상품등록 시 등록하려는 상품의 제목이 자신의 기존상품들의 상품제목과 일치하지 않는지를 검증해야 하지만, 기존코드에서는 모든 사진작가들의 상품제목과 비교했기 때문에 코드에 오류가 있었음. * FU-212 refactor: 메소드명, 변수명 리팩터링 * FU-212 fix: 의뢰자측 신청서 등록시 유효성검증 오류 수정 의뢰자가 신청서를 접수하려는 사진작가가 등록한 상품이 맞는지 검증함 * FU-212 fix: 의뢰자측 신청서 취소 요청에 @RequestBody 어노테이션 추가 * FU-212 feat: 신청서 취소 시 취소사유 입력 강제화 * FU-212 feat: 신청서 취소 권한 관련 에러코드 추가 * FU-212 feat: 의뢰자측 신청 취소 테스트코드 작성 * FU-212 refactor: 테스트코드 display name, 메서드명 구체화 * FU-212 refactor: 신청서 상태변경 서비스 코드의 반환형 변경 컨트롤러에서 response entity반환하도록 수정함 * FU-212 feat: product repository의 findByTitle 메서드 반환형 변경 * FU-212 refactor: 상품 등록전 검증 로직 최적화 * FU-212 refactor: 신청서 상태전환 관련 예외메시지 수정 * FU-212 fix: 직전 커밋에 대한 테스트코드 수정 * [FU-256] 사진작가 회원가입/프로필 관리 로직 업데이트 (#41) * FU-256 feat: 사진작가 고유 링크 생성방식 변경 uuid로 랜덤하게 고유 링크를 생성했던 방식에서 -> 작가측 회원가입시 입력한 프로필명으로 고유 링크를 생성하고 접근할 수 있도록 변경하였음 * FU-256 feat: 사진작가 회원가입 시 프로필명 중복체크 로직 추가 * FU-256 feat: 사진작가 회원가입 시 프로필이미지 등록 로직 제거 비즈니스 로직 변경에 따름 * FU-256 feat: 사진작가 프로필 배너이미지 업데이트 로직 추가 * [FU-257] Profile service 테스트코드 리팩터링 (#42) * FU-257 feat: s3 이미지 업로드 경로 수정 * FU-257 feat: s3 이미지 업로드 시 기존이미지 삭제 로직 추가 * FU-257 feat: ProfileService 테스트코드 리팩터링 * FU-257 chore: 테스트코드에서 필요없는 주석 제거 * [FU-260] 코드 커버리지 분석을 위한 Qodana + Jacoco 적용 (#43) * FU-260 chore: jacoco 도입 현재 테스트코드 작성이 많이 되어있지 않은 관계로 커버리지 기준은 minimum 0.00으로 설정해두었음 (추후 룰 수립 예정) * FU-260 chore: qodana 코드 커버리지 분석을 git action을 통해 pr에 적용 * FU-260 fix: actions/upload-artifact 버전 업데이트 * FU-260 fix: Qodana github Actions 워크플로우 업데이트 git action에서 qodana로 테스트 실행시 JDK 버전 오류 발생해 Java17버전 설치하는 단계 추가 * [FU-217] 상품 관리 API 구현 (#40) * FU-217 refactor: entity를 dto로 변환해주는 로직을 클래스 분리를 통해 재사용성을 높임 * FU-217 feat: 상품 상세 정보 조회 api 구현 * FU-217 feat: @transactional 어노테이션 추가 * FU-217 feat: InputStream 리소스 사용에 대한 반환 로직 추가 * FU-217 feat: 상품 정보 수정 API 구현 * FU-217 refactor: 상품과 연관 있는 엔티티 업데이트에 대한 로직 수정 * FU-217 feat: 상품 삭제 API 구현 * FU-217 chore: 주석 삭제 * FU-217 feat: productImage imageHash 필드 삭제 * FU-217 fix: image 파일 최소 한 개이상 받도록 required=false 삭제 * FU-217 refactor: ProductDetailRequest 클래스명 변경 * FU-217 fix: 주석 해제 * FU-217 feat: 에러 메시지 변경 * FU-217 feat: 업데이트 할 상품 제목의 중복 체크 로직 추가 * FU-217 feat: @Valid 추가 * FU-217 feat: productImage s3 객체 삭제 로직 추가 * FU-217 feat: 단일 이미지 등록에 대한 로직 구현 * FU-217 feat: @service로 어노테이션 변경 * FU-217 refactor: 기존의 이미지 유지와 새 이미지 등록에 대한 타입 차이를 고려하여 이미지 업데이트 로직 리팩터링 * FU-217 feat: 이미지 업데이트 로직에 대한 테스트 코드 작성 * FU-217 fix: S3 이미지 업로드 관련 오류 해결 * FU-217 chore: 불필요한 메서드 삭제 * FU-217 chore: 불필요한 주석 삭제 * FU-217 refactor: 기존의 상품제목 검증로직을 사용하여 리팩터링 * [FU-264] S3관련 환경변수 수정 (#45) * FU-217 refactor: 배포 자동화에 필요한 버킷과 서비스 데이터에 대한 버킷을 분리 * FU-217 chore: github secret 적용 * [FU-124] 신청서 상태변경 & 회원가입 API 테스트코드 작성 (#44) * FU-124 feat: 사진작가측 신청서 상태변경 테스트코드 작성 * FU-124 refactor: 회원가입, 로그인 관련 서비스클래스 분리 회원가입 서비스로직을 담당하는 클래스 - 기존: MemberService - 변경: PhotographerJoinService 카카오 인증 서버와 통신을 담당하는 클래스 - 기존: AuthService - 변경: KakaoAuthService 서비스 자체 로그인 로직을 담당하는 클래스 - 기존: AuthService - 변경: KakaoLoginService * FU-124 feat: 사진작가측 회원가입 API 테스트코드 작성 * FU-124 chore: update cd workflow * [FU-215] 지난예약 목록 조회 및 필터링+페이징 기능 구현 (#46) * FU-215 feat: 지난예약 조회 API 개발 * FU-215 feat: pageableDefault 페이지별 데이터 사이즈 조정 * FU-215 fix: 고객측에서 상품목록 조회 시 활성화상태인 상품만 조회하도록 수정 * FU-215 fix: 고객측 상품 조회 시 반환하는 이미지 유형 변경 상품 목록조회 시 -> 썸네일 이미지 상품 상세 조회 시 -> 원본 이미지 * [FU-269] 레퍼런스 이미지 Multipart parsing 에러, 배너이미지 삭제 안되는 문제 해결 (#48) * FU-269 feat: formRegisterRequest dto 유효성 검증 추가 * FU-269 feat: 프로필명, 인스타그램 아이디에 대한 유효성 검증 추가 - 최소 3자 이상 최대 30자 이하로 구성 - 영어 소문자, '-', '.'만 허용 * FU-269 refactor: s3 이미지 업로드 로직 리팩터링 * FU-269 feat: 신청서 등록시 Multipart File + url 처리 로직 구현 * FU-269 fix: 배너이미지 삭제 안되는 문제 해결 * [FU-267] 신청서 리스트 필터링 API 구현 (#47) * FU-267 feat: 전체 상품 제목 조회 API 구현 * FU-267 feat: 상품 제목으로 필터링 후 신청서 리스트 보기 * FU-267 feat: 잘못된 상품 제목을 요청 받는 경우 에러 핸들링 로직 추가 * FU-267 chore: 깃헙 문서 추가 * FU-267 feat: 필터링 처리 후 예약서 조회 API 삭제 * [FU-254] 카카오 로그인 배포용 애플리케이션 설정 (#52) 카카오 로그인 배포용 애플리케이션 설정 * [FU-270] 베타버전 출시 전 비즈니스 로직 개선 (#50) * FU-270 fix: 상품 상세 조회 시 썸네일 이미지 반환 * FU-270 fix: 프로필 수정요청에서 배너이미지 삭제/유지 구분 기존에 배너이미지 수정 시 MultipartFile로 들어오는 요청을 가지고 업데이트를 진행했는데, 삭제 요청과 유지해야하는 경우를 구분하지 못하는 문제가 있었음. 따라서 existingBannerImageUrl이라는 요청 필드를 추가하여 삭제와 유지를 구분할 수 있도록 함 * FU-270 refactor: ProfileService 클래스 분리 사진작가측 서비스 로직: PhotographerProfileService 고객측 서비스 로직: CustomerProfileService 공통 서비스 로직: ProfileService * FU-270 feat: 프로필 관련 에러메시지 보완 * FU-270 fix: 지난예약 전체상태 조회 안되는 문제 해결 switch문을 못 타게 되면 List<reservationFormPage>가 null이 되는데, null인 상태에서 reservationFormPage.getContent(); 로 접근하게 되면서 문제가 있었음 * FU-270 feat: 사진작가-의뢰자 권한 확대 사진작가가 의뢰자로서 가입을 원하면 사진작가의 권한으로 의뢰자 페이지에 접근하고 기능을 수행할 수 있다. 사진의뢰자가 사진작가로서 가입을 원하면 사진작가로 역할을 바꾸고 사진작가의 페이지에 접근하고 기능을 수행할 수 있다. * FU-270 feat: 예약서 등록 록직 변경 기존: productTitle, photoInfo를 클라이언트 요청으로 받아서 등록함 변경: productId를 요청으로 받아서 productTitle, photoInfo를 DB에서 조회한 뒤 예약서를 등록함 * FU-270 feat: dto 유효성 검증 추가 * FU-270 feat: 상품 기본정보 필드 필수화 상품 및 예약서 조회/수정 시 기본정보 조회와 업데이트 가능하도록 수정함 * FU-270 fix: PHOTOGRAPHER_PENDING 로그인 처리 보완 * FU-270 feat: 배너이미지 S3 이미지 경로 추가 * FU-270 feat: 프로필 이미지 수정/삭제/유지 요청 구분하기 위한 로직 보완 existingProfileImageUrl를 보고 판단하도록 수정함 * FU-270 fix: ProductImage 엔티티의 'order'컬럼 예약어 충돌문제 order -> imageOrder로 수정함 * FU-270 refactor: 상품이미지 업데이트 시 업로드 순서 조정하는 로직 재구성 ProfileImage 엔티티에 imageOrder 컬럼을 추가하여 상품이미지 등록 및 수정 시 저장되는 순서를 기록하도록 함 * FU-270 feat: 작가측 상품목록 조회 시 대표이미지 응답 추가 * FU-270 refactor: 상품 조회 시 원본/썸네일 반환값 구분 고객측 상품상세 조회 페이지에서는 원본 이미지를, 작가측 상품목록 조회 페이지에서는 썸네일 이미지를 반환 * FU-270 feat: 상품 이미지 조회 시 등록된 순서대로 반환 * FU-270 refactor: 에러코드 세분화 및 CustomerReservationService 메서드추출 리팩터링 * FU-270 feat: 상품 등록 시 컴포넌트 타이틀 중복여부 검증 로직 구현 * [FU-274] 외부링크 업데이트 로직 추가 구현 (#53) * FU-274 chore: develop 브랜치와 conflict 해결 * FU-274 feat: 링크의 url 중복에 대한 로직 삭제 * FU-274 refactor: link 업데이트 로직 리팩터링 기존에 있던 링크를 살려두고 업데이트 하는 방식의 성능보다 모두 삭제하고 새로 등록하는 로직이 더 성능이 좋다고 판단하여 방식을 변경함. * [FU-268] 촬영일자에 대한 업데이트 API 구현 (#49) * FU-268 feat: 촬영일자에 대한 업데이트 API 구현 * FU-268 feat: 예약서 상세 정보 조회에 shootingDate 추가 * FU-268 feat: shootingDate 업데이트 테스트 코드 작성 * FU-268 refactor: PreferredDate를 TimeSlot으로 클래스명 변경 * FU-268 feat: 확정일짜 업데이트에 대한 검증로직 추가 * FU-268 refactor: shootingDate 검증로직 순서 변경 * FU-268 feat: 확정일자가 없는 경우, 예약서를 특정 상태로 옮길 수 없도록 검증 로직 추가 * FU-268 refactor: ReservationErrorCode의 httpStatus 변경 * [FU-249] Kakao OAuth 연결 끊기(회원 탈퇴) API 구현 (#51) * FU-249 refactor: List<T> 반환하는 쿼리 메서드에 Optional<> 제거 * FU-249 feat: profile 관련 엔티티 삭제 로직 구현 * FU-249 feat: 회원 탈퇴한 Member를 백업하는 entity 추가 * FU-249 feat: 회원 탈퇴 API 구현 * FU-249 chore: 주석 삭제 * FU-268 refactor: RestTemplateBuilder의 변수명 변경 * FU-249 feat: 회원탈퇴 시 탈퇴 사유를 저장하는 로직 추가 * FU-249 refactor: RestTemplate 대신 WebClient로 카카오 API 호출로직 변경 * FU-249 feat: Kakao 회원탈퇴 API에 대한 응답이 OK가 아닌 경우 에러 로직 추가 * FU-249 feat: Pending 상태의 사진작가 탈퇴 로직 추가 및 탈퇴 Role을 Leaving으로 통합 * FU-249 feat: Pending 상태의 사진작가 탈퇴 로직 중 DeletedMember entity 생성 로직 추가 * FU-249 feat: kakaoUnlinkUrl을 final로 처리 * FU-249 chore: conflict 미해결 부분 처리 * FU-249 feat: 탈퇴사유 존재 여부 검증 로직 추가 * FU-249 feat: 탈퇴사유 존재 여부 검증 로직 삭제 * [FU-293] 사진작가 메모 등록 및 회원가입 시 연락처 등록 API (#54) * FU-293 feat: 사진작가 회원가입 시 연락처 등록 API 추가 * FU-293 chore: env 설정 스크립트 수정 * FU-293 feat: 프로필 업데이트 request에 contact 필드 추가 * FU-293 feat: 신청서에 사진작가 메모 업데이트 API 구현 * FU-293 feat: 이미지 관련 컬럼 VARCHAR(600)으로 설정 * FU-293 feat: 상황에 따라 검증하는 어노테이션 수정 * FU-293 feat: 서비스 레이어에서 contact에 대한 검증로직 삭제 * FU-293 feat: 신청서에 대한 formId를 request body에서 경로변수로 설정 * FU-293 refactor: 요청에 대한 dto 클래스명 수정 * FU-293 refactor: @NotNull -> @notblank * FU-293 refactor: dto 클래스명 Response로 수정 * [FU-295] 신청서 등록 API 에러 픽스 (#55) * FU-295 feat: 사진작가 프로필 조회 시 contact 필드 추가 기존에 있던 ProfileResponse를 사진작가 측에서 보여지는 데이터와 사진의뢰자 측에서 보여지는 데이터 차이가 있어서 분리하게 되었습니다. * FU-295 feat: 상품 상세정보 업데이트 시 MutipartFile 없어도 가능하게 어노테이션 수정 * FU-295 fix: 기존의 상품 이미지 originUrl을 사용해서 productImage를 조회하도록 수정 * FU-295 chore: CI 정상구동을 위해 테스트코드 주석처리 추후 리팩터링 예정 * FU-295 style: 불필요한 공백 제거 * [FU-237] New Relic Integration (#56) * FU-237 chore: New Relic configure gradle * FU-237 chore: update start.sh 배포 환경에서 start.sh으로 애플리케이션 실행할 때 뉴렐릭 에이전트도 함께 실행되도록 스크립트 수정했음 * FU-237 chore: cd_workflow 전략 임시 수정 배포 환경에서 뉴렐릭 에이전트가 잘 실행되는지 확인하고자 함. 병합하기 전에 원복예정 * FU-237 chore: trigger github action 환경변수 세팅이 안되어있어서 등록 후 다시 github action 동작 * FU-237 chore: 환경변수 설정문제 테스트 * FU-237 chore: 환경변수 추가 설정 * FU-237 chore: 환경변수 참조 수정 * FU-237 chore: start.sh 주석 삭제 * FU-237 chore: cd workflow 원복 뉴렐릭 통합 테스트가 끝나서 원복함 * [FU-299] 촬영 확정일자 업데이트 API 에러 픽스 (#57) * FU-299 feat: 등록 이미지가 없어도 등록 가능하게 어노테이션 수정 * FU-299 refactor: 촬영일자 업데이트 Request, 경로변수 업데이트 * FU-299 refactor: 촬영일자 업데이트 url 수정 및 파라미터 변수명 수정 * [FU-278] 사진작가 공지사항 관련 API 구현 (#58) * FU-278 chore: 디렉토리명 수정 및 사용하지 않는 코드 제거 * FU-278 feat: 공지사항 업데이트 API 구현 * FU-278 feat: 공지사항 조회 API 구현 * FU-278 feat: notice엔티티에 member대신 profile와 연관관계 매핑 * FU-278 feat: "/customer/notice/**" 접근 권한 설정 * FU-278 feat: 사진의뢰자 측에서 사진작가 공지사항 조회 API 구현 * FU-278 feat: 회원탈퇴 시 회원의 공지사항도 삭제되도록 로직 추가 * FU-278 chore: 로그 삭제 * FU-278 chore: inline 적용 * FU-278 refactor: @PathVariable로 변경 * FU-278 feat: 의뢰자 측 신청서 상세조회 시 profileName필드 추가 * FU-278 feat: 신청서 등록 시 이미지 파일 없이도 등록가능하게 어노테이션 설정 * [FU-300] 촬영 장소 관련한 필드 추가 (#59) * FU-300 feat: 상품 등록 시 기본 촬영장소 및 선호장소 입력 허용 여부에 대한 필드를 추가 * FU-300 feat: 상품 상세정보 조회 시 기본 촬영장소, 선호장소 입력허용 필드 추가 * FU-300 feat: 상품 상세정보 변경 request 객체에 기본 촬영장소, 선호장소 입력 허용 필드 추가 * FU-300 feat: 신청서 등록 시 선호장소 필드 추가 * FU-300 feat: 신청서 조회 시 선호장소 필드 추가 * FU-300 feat: 신청서 기본 정보 조회 시 basicPlace 필드 추가 * FU-300 feat: 사진작가 측 신청서 상세조회 시 기본 촬영장소, 선호 장소에 대한 필드 추가 * FU-300 feat: 사진작가 측 촬영날 정보 업데이트 시 확정 촬영장소 필드 추가 * FU-300 feat: 사진의뢰자 측 신청서 조회 시 기본 촬영장소 필드 추가 * FU-300 feat: 사진작가 측 신청서 상세보기 shootingPlace 필드 추가 * FU-300 feat: 예약신청서 기본정보 조회 시 allowPreferredPlace * FU-300 feat: 의뢰자 측 신청서 상세조회 시 shootingPlace, shootingDate 필드 추가 * FU-300 feat: 의뢰자 측 신청서 상세조회 시 productId 필드 추가 * �[FU-303] 이미지 관련 개선사항 (#61) * FU-303 feat: 상품 리사이즈 크기 300으로 설정 및 banner이미지에 대한 리사이즈 케이스 삭제 * FU-303 feat: 이미지 제한에 대한 에러 핸들링 로직 추가 * [FU-301] 사진작가 필수 규정 설정 (#60) * FU-301 feat: '취소 및 환불 규정, '예약 변경 규정'이 모두 포함되어 있는지 검증하는 로직 추가 * FU-301 feat: ReservationForm에서 기존 동의 항목 필드를 공지에 대한 동의 필드로 수정, PhotoNotice를 통해 신청시 공지사항 스냅샷을 저장하도록 필드 추가 * FU-301 feat: 문자열 상수화 및 에러 메시지 수정 * FU-301 feat: @notblank 어노테이션 수정 * Fix/fu 305 register product (#63) * FU-305 feat: Product Entity에 촬영상품에 대한 공지 필드를 추가 및 상품 등록 API에서 해당 부분 업데이트 * FU-305 feat: 상품 상세정보 조회 API 업데이트 * FU-305 feat: 상품 상세 정보 변경 API 업데이트 * [FU-306] 의뢰자 측 공지사항 조회 시 pathvariable 에러 픽스 (#64) * FU-306 fix: 의뢰자 측에서 상품 공지사항 조회 API 수정 * FU-306 fix: 의뢰자 측 신청서 조회 API 수정 * FU-306 fix: 양측 신청서 조회 시 photoNotice 필드 추가 * [FU-244] 개발/프로덕션 인프라 분리 구축 (#66) * [FU-244] 백엔드 개발인프라 분리 구축 테스트 (#62) * FU-244 chore: 프로덕션, 개발 서버 환경변수 분리 세팅 * FU-244 chore: cd_workflow 배포환경 분리 * FU-244 chore: code deploy 배포 실패 문제 해결을 위한 출력문 추가 * FU-244 chore: 환경변수 세팅을 위한 변수 수정 * FU-244 fix: start.sh 에러출력 리렉션에서 공백 제거 * FU-244 fix: 명령어 줄바꿈 백슬래시 추가 * FU-244 chore: dev, prod용 cd workflow 분리 * FU-244 fix: cd_workflow 주석 제거 * FU-244 fix: workflow 줄바꿈 제거 * FU-244 fix: cd_workflow_prod.yml 줄바꿈 백슬래시 제거 * FU-244 chore: prod 워크플로우 테스트용 * FU-244 chore: cd_workflow에서 pr 트리거 삭제 * FU-244 chore: update ci_workflow * [FU-309] (bug fix) dev server env setting (#67) * FU-309 fix: env 세팅 시 개행 제거 * FU-309 chore: 배포 테스트용 트리거 임시 수정 개발서버에 환경변수 세팅 잘 되는지 확인한 이후 해당 트리거 삭제 예정 * FU-309 fix: env run 명령어에 파이프 추가 kakao_client_id만 환경변수에 세팅되는 것 확인했으며, 파이프 빠져있어서 발생한 문제로 파악됨 * FU-309 chore: 배포테스트용 CD 트리거 원복 * chore: add cd_workflow_dev trigger event release 브랜치가 생성될 때도 배포 자동화가 이뤄지도록 추가함 * chore: cd_workflow_dev.yml create 트리거 수정 * fix: DeploymentLimitExceededException 문제 해결 배포 과정에서 S3에 이미 존재하는 파일이 있어서 발생하는 문제. * chore: cd_workflow_dev.yml create 이벤트 제거 --------- Co-authored-by: [email protected] <[email protected]> Co-authored-by: 정유석 <[email protected]> Co-authored-by: qodana-cloud[bot] <163413896+qodana-cloud[bot]@users.noreply.github.com> Co-authored-by: Qodana Application <[email protected]>
- Loading branch information