-
Notifications
You must be signed in to change notification settings - Fork 0
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
✨ 프로필 이미지 업로드 API #37
Conversation
Walkthrough이 PR은 Changes
Possibly related PRs
Suggested reviewers
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🧹 Outside diff range and nitpick comments (1)
openapi.yaml (1)
1057-1073
: 스키마 정의의 개선이 필요합니다.
- PNG 외의 다른 이미지 포맷(예: JPEG, WEBP)도 고려해야 합니다.
- 이미지 메타데이터(width, height) 검증이 필요합니다.
다음과 같은 스키마 수정을 제안합니다:
ProfileImageExtension: type: string - enum: [ PNG ] + enum: [ PNG, JPEG, WEBP ] description: 프로필 이미지 확장자 CompleteProfileImageUploadRequest: type: object properties: imageId: type: string format: uuid description: 이미지 ID extension: $ref: '#/components/schemas/ProfileImageExtension' + width: + type: integer + minimum: 100 + maximum: 4096 + description: 이미지 너비 (픽셀) + height: + type: integer + minimum: 100 + maximum: 4096 + description: 이미지 높이 (픽셀) required: - imageId + - width + - heightAlso applies to: 1138-1149, 1184-1187
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Outside diff range and nitpick comments (2)
openapi.yaml (2)
1142-1153
: 업로드 완료 요청 스키마에 추가 검증이 필요합니다.이미지 업로드 완료 시 이미지의 무결성을 검증하기 위한 추가 필드를 고려해보세요:
- 파일 크기 (contentLength)
- 체크섬 (checksum)
properties: imageId: type: string format: uuid description: 이미지 ID extension: $ref: '#/components/schemas/ProfileImageExtension' + contentLength: + type: integer + description: 업로드된 이미지의 크기 (바이트) + checksum: + type: string + description: 업로드된 이미지의 SHA-256 체크섬 required: - imageId + - contentLength + - checksum
1188-1191
: 추가 이미지 형식 지원을 고려해보세요.현재는 PNG 형식만 지원하고 있습니다. 사용자 편의성을 위해 다음 형식들도 고려해보세요:
- JPEG/JPG
- WebP
ProfileImageExtension: type: string - enum: [ PNG ] + enum: [ PNG, JPEG, WEBP ] description: 프로필 이미지 확장자
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (1)
openapi.yaml
(4 hunks)
🔇 Additional comments (3)
openapi.yaml (3)
217-243
: 업로드 완료 콜백 처리 로직 개선이 필요합니다.
이전 리뷰에서 지적된 사항이 아직 해결되지 않았습니다:
- 업로드 완료 제한 시간이 명시되어 있지 않습니다.
- 이미지 처리 실패 시의 오류 응답이 정의되어 있지 않습니다.
1057-1077
: 응답 스키마가 잘 정의되어 있습니다.
필요한 모든 필드가 포함되어 있으며, 특히 uploadExpiresIn
필드를 통해 업로드 URL의 만료 시간을 명확히 전달할 수 있습니다.
185-216
: 🛠️ Refactor suggestion
파일 크기 제한이 필요합니다.
업로드 URL을 생성하기 전에 파일 크기 제한을 검증해야 합니다. 다음 사항을 추가하는 것을 제안합니다:
- 파일 크기 제한 쿼리 파라미터 추가
- 최대 허용 크기 명시 (예: 5MB)
parameters:
- in: query
name: extension
required: true
schema:
$ref: '#/components/schemas/ProfileImageExtension'
description: 이미지 확장자
+ - in: query
+ name: contentLength
+ required: true
+ schema:
+ type: integer
+ minimum: 1
+ maximum: 5242880 # 5MB
+ description: 업로드할 이미지의 크기 (바이트)
Likely invalid or redundant comment.
Summary by CodeRabbit
GET /users/my/profile-images/upload-url
).POST /users/my/profile-images/upload-complete
).GetProfileImageUploadUrlResponse
추가.CompleteProfileImageUploadRequest
추가.ProfileImageExtension
추가.