Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: 경매 등록 이미지 처리 방식 수정 #59

Merged

Conversation

viaunixue
Copy link
Member

@viaunixue viaunixue commented Sep 29, 2024

#️⃣연관된 이슈

CHZZ-111

📝작업 내용

  • 경매 등록 프로세스에서 이미지 저장 방식 수정
    • S3에는 {UUID}_{원본파일명} 파일 형식로 변환된 이미지 파일명을 저장
    • DB에는 https://{CDN 경로}/{UUID}_{원본파일명} 형식으로 저장
    • 파일 확장자 검증 로직 추가 및 수정 (gif 제거, 별도 메서드 구성)
    • 전체 URI 글자수 제한 255자
    • Cloudfront, S3 이미지 접근 정책 설정
  • 경매 등록 시작가 조건 @ThousandMultiple 어노테이션 추가
  • 상품 Entity 시작가 조건 @ThousandMultiple 어노테이션 제거

✅테스트 결과

이미지 저장 쿼리

image

S3에는 UUID로 변환된 이미지 파일명을 저장

image

DB에는 https://{CDN 경로}/{UUID}.{확장자} 형식으로 저장

image

확장자 검증 로직 추가

image]

원본 액세스 제어 설정

image

퍼블릭 액세스 차단

image

버킷 정책 세팅

image

cloudfront를 통해서만 이미지 접근 성공

image

🙏리뷰 요구사항(선택)

- @ThousandMultiple 어노테이션 추가

CHZZ-111
- 이미지 저장 시 full path 사용하도록 변경
- ImageService 이미지 업로드 저장 로직 수정

CHZZ-111
- 각 서비스 volumes 제거

CHZZ-111
@viaunixue viaunixue self-assigned this Sep 29, 2024
Copy link
Collaborator

@junest66 junest66 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR 제목을 refactor: 로 하는게 더 좋을 것 같아요!
기능 브랜치의 feat랑 다른 개념이라.. 그리고.. 라벨도 추가해주세요!! 👍

@viaunixue viaunixue changed the title feat: 경매 등록 이미지 처리 방식 수정 refactor: 경매 등록 이미지 처리 방식 수정 Sep 29, 2024
@viaunixue viaunixue added the 🪄refactor 리팩토링 label Sep 29, 2024
- 이미지 저장 시 올바른 full ImageUrl 저장
- 이미지 저장 시 한글 URL 인코딩
- 이미지 삭제 시 URL 디코딩

CHZZ-111
- entity 단에 유효성 검사 제거

CHZZ-111
- @ThousandMultiple 어노테이션 메시지 옵션 제거

CHZZ-111
- 불필요한 삼항 연산자 제거

CHZZ-111
- S3에는 UUID로 변환된 이미지 파일명을 저장
- DB에는 https://{CDN 경로}/{UUID}.{확장자} 형식으로 저장

CHZZ-111
- 허용된 확장자 목록 : jpg, jpeg, png, gif, webp

CHZZ-111
- 지원하지 않는 이미지 확장자일 경우 BAD_REQUEST

CHZZ-111
- 유효하지 않은 파일명일 경우 BAD_REQUEST

CHZZ-111
- 저장할 이미지 파일 형식 {UUID}_{원본파일명}.{확장자}로 수정
- 파일 확장자 검증 로직 수정 (gif 제거, 별도 메서드 구성)
- 전체 URI 글자수 제한 255자

CHZZ-111
- 저장할 이미지 파일 형식 {UUID}_{원본파일명}로 수정 (확장자 제거)

CHZZ-111
- ImageException 클래스에 상세 메시지 필드 추가
- uploadImage 메소드에서 파일명 길이 체크 로직 개선
- 파일명 길이 초과 시 상세한 에러 메시지 생성 및 전달
- GlobalExceptionHandler에서 ImageException 처리 로직 수정
- 기존 에러 처리 구조 유지하며 상세 메시지 지원 추가

CHZZ-111
- {UUID}_{원본파일명} 에서 {UUID} 로 수정
- 파일명 유효성 검사 제거

CHZZ-111
@junest66 junest66 merged commit e344d1b into JECT-Study:develop Oct 1, 2024
2 checks passed
YeaChan05 added a commit that referenced this pull request Oct 1, 2024
* test: redirect url 테스트 삭제

CHZZ-109

* chore: nginx 업로드 용량 제한 설정 (#58)

* chore: nginx upload 용량 제한 설정

CHZZ-110

* chore: git tag 추가하는 부분 삭제

CHZZ-110

* chore: 로컬 모니터링 도구 주석 처리 및 mysql 볼륨 설정

CHZZ-110

* chore: 초기 flyway 파일 스크립트 수정

- 주석 삭제
- 테이블 생성 순서 변경

CHZZ-110

* refactor: 경매 등록 이미지 처리 방식 수정 (#59)

* refactor: 경매 등록 경매 시작가 조건 개선

- @ThousandMultiple 어노테이션 추가

CHZZ-111

* feat: 이미지 처리 방식 변경

- 이미지 저장 시 full path 사용하도록 변경
- ImageService 이미지 업로드 저장 로직 수정

CHZZ-111

* feat: compose-local.yaml 파일 수정

- 각 서비스 volumes 제거

CHZZ-111

* refactor: 이미지 처리 프로세스 URL 수정

- 이미지 저장 시 올바른 full ImageUrl 저장
- 이미지 저장 시 한글 URL 인코딩
- 이미지 삭제 시 URL 디코딩

CHZZ-111

* refactor: 경매 등록 시 경매 시작가 조건 수정

- @min 유효성 검사 제거

CHZZ-111

* refactor: 상품 경매 시작가 조건 수정

- entity 단에 유효성 검사 제거

CHZZ-111

* refactor: 경매 등록 경매 시작가 조건 개선

- @ThousandMultiple 어노테이션 메시지 옵션 제거

CHZZ-111

* refactor: getFullImageUrl 메서드 개선

- 불필요한 삼항 연산자 제거

CHZZ-111

* refactor: Slf4j 어노테이션으로 변경

CHZZ-111

* refactor: 이미지 처리 방식 변경

- S3에는 UUID로 변환된 이미지 파일명을 저장
- DB에는 https://{CDN 경로}/{UUID}.{확장자} 형식으로 저장

CHZZ-111

* feat: 이미지 처리 확장자 검증 로직 추가

- 허용된 확장자 목록 : jpg, jpeg, png, gif, webp

CHZZ-111

* feat: 이미지 처리 비즈니스 에러코드 추가

- 지원하지 않는 이미지 확장자일 경우 BAD_REQUEST

CHZZ-111

* feat: 이미지 처리 비즈니스 에러코드 추가

- 유효하지 않은 파일명일 경우 BAD_REQUEST

CHZZ-111

* refactor: 이미지 저장 방식 변경

- 저장할 이미지 파일 형식 {UUID}_{원본파일명}.{확장자}로 수정
- 파일 확장자 검증 로직 수정 (gif 제거, 별도 메서드 구성)
- 전체 URI 글자수 제한 255자

CHZZ-111

* refactor: 이미지 저장 방식 변경

- 저장할 이미지 파일 형식 {UUID}_{원본파일명}로 수정 (확장자 제거)

CHZZ-111

* refactor: 이미지 업로드 시 파일명 길이 제한 로직 개선 및 상세 에러 메시지 추가

- ImageException 클래스에 상세 메시지 필드 추가
- uploadImage 메소드에서 파일명 길이 체크 로직 개선
- 파일명 길이 초과 시 상세한 에러 메시지 생성 및 전달
- GlobalExceptionHandler에서 ImageException 처리 로직 수정
- 기존 에러 처리 구조 유지하며 상세 메시지 지원 추가

CHZZ-111

* refactor: 이미지 처리 비즈니스 에러코드 롤백

CHZZ-111

* refactor: 이미지 저장 방식 변경

- {UUID}_{원본파일명} 에서 {UUID} 로 수정
- 파일명 유효성 검사 제거

CHZZ-111

* refactor: 이미지 처리 비즈니스 에러코드 수정

CHZZ-111

* feat: find registered product auction (#61)

* feat: 인증 기반 경매 및 상품 조회 엔드포인트 구현

인증 기반 경매 및 상품 조회 엔드포인트 구현

CHZZ-113

* refactor: 경매/사전등록 조회를 id 기반으로 구현

경매/사전등록 조회를 id 기반으로 구현

CHZZ-113

* chore: pr 타이틀 검증 수정

pr 타이틀 검증 수정

CHZZ-113

* fix: path 수정

path를 registered에서 users로 변경

CHZZ-113

* refactor: fix simple profile (#60)

* fix: 에러 코드 추가

식별 불가능한 서버 예외에 대한 에러 코드 추가

CHZZ-104

* refactor: 갯수 조회 쿼리 작성 및 공통 코드 리팩토링

1. 갯수 조회 로직을 쿼리를 통한 방식으로 변경하면서 추가적 코드 작성
2. 사용자가 참여한 경매 조회를 공통 메서드로 병합

CHZZ-104

* refactor:
사용자의 경매 관련 수량 조회 로직 변경

CHZZ-104

* test: 로직 변경에 따른 테스트 수정

로직 변경에 따른 테스트 수정

CHZZ-104

* refactor: import 정리

import 정리

CHZZ-104

* refactor: 쿼리 메서드 리팩토링

- Optional 제거
- 공통 코드 추출

CHZZ-104

* refactor: Optional 제거에 따른 코드 수정

- Optional 제거에 따라 예외처리 및 예외 코드 제거

CHZZ-104

* refactor: Optional 제거에 따른 테스트코드 수정

- Optional 제거에 따른 테스트코드 수정

CHZZ-104

* refactor: fix nullable

- fix nullable

CHZZ-104

* refactor: resolve conflict

- resolve conflict

CHZZ-104

* refactor: ErrorResponse 응답 구조 변경 (#62)

* style: 불필요한 파일 제거

CHZZ-112

* refactor: ErrorResponse message 타입 변경 및 에러 이름 추가

- String message -> String[] message
- Error name 추가

CHZZ-112

* feat: 글로벌 예외코드에 유호성 검사 실패 코드 추가

CHZZ-112

* refactor: 유효성 검사 실패시 발생하는 에러 메세지 배열 형태로 수정

CHZZ-112

* style: 가독성 향상을 위해 함수 순서 변경

- GET, POST, PUT, PATCH, DELETE 순서로 메서드 순서 변경

CHZZ-112

* refactor: Override 함수 파라미터 'NonNull' 어노테이션 추가

CHZZ-112

---------

Co-authored-by: JongHyun <[email protected]>
Co-authored-by: 신예찬 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🪄refactor 리팩토링
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants