Skip to content

Comments

[FEAT] 프로필 사진 변경 API (#355)#356

Merged
lingard1234 merged 4 commits intodevfrom
feat/355-profileimage
Feb 10, 2026
Merged

[FEAT] 프로필 사진 변경 API (#355)#356
lingard1234 merged 4 commits intodevfrom
feat/355-profileimage

Conversation

@lingard1234
Copy link
Contributor

Summary

프로필 사진 바꾸는 PATCH

Changes

MyprofileImageDto

Type of Change

  • Bug fix (기존 기능에 영향을 주지 않는 버그 수정)
  • New feature (기존 기능에 영향을 주지 않는 새로운 기능 추가)
  • Breaking change (기존 기능에 영향을 주는 수정)
  • Refactoring (기능 변경 없는 코드 개선)
  • Documentation (문서 수정)
  • Chore (빌드, 설정 등 기타 변경)
  • Release (develop → main 배포)

Related Issues

참고 사항

@lingard1234 lingard1234 self-assigned this Feb 10, 2026
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @lingard1234, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 PR은 사용자가 자신의 프로필 사진을 변경할 수 있는 새로운 기능을 도입합니다. 이를 위해 새로운 API 엔드포인트, 관련 서비스 로직, 그리고 요청 데이터 전송 객체가 추가되었습니다. 이 변경 사항은 사용자 경험을 향상시키고 프로필 관리 기능을 확장합니다.

Highlights

  • 새로운 API 엔드포인트 추가: 사용자 프로필 사진을 변경하기 위한 새로운 PATCH API 엔드포인트 /me/profile-image가 추가되었습니다.
  • 프로필 이미지 업데이트 서비스 로직 구현: 사용자 ID와 새로운 프로필 이미지 URL을 받아 사용자 프로필 이미지를 업데이트하고, 관련 프로필 카드 정보를 재생성하는 서비스 로직이 UserService에 추가되었습니다.
  • 요청 DTO 도입: 프로필 이미지 업데이트 요청을 위한 MyProfileCardUpdateRequestDto가 새로 정의되었습니다.
  • Swagger 문서 업데이트: 새로운 프로필 이미지 업데이트 API에 대한 Swagger 문서가 추가되었으며, 기존 회원 탈퇴 API의 설명도 업데이트되었습니다.
Changelog
  • src/main/java/com/example/RealMatch/user/application/service/UserService.java
    • MyProfileCardUpdateRequestDto를 임포트했습니다.
    • 사용자 프로필 이미지를 업데이트하는 updateMyProfileImage 메서드를 추가했습니다.
  • src/main/java/com/example/RealMatch/user/presentation/controller/UserController.java
    • MyProfileCardUpdateRequestDto를 임포트했습니다.
    • /me/profile-image 경로에 프로필 이미지 업데이트를 위한 PATCH 엔드포인트를 추가했습니다.
  • src/main/java/com/example/RealMatch/user/presentation/dto/request/MyProfileCardUpdateRequestDto.java
    • 프로필 이미지 URL을 포함하는 새로운 요청 DTO를 생성했습니다.
  • src/main/java/com/example/RealMatch/user/presentation/swagger/UserSwagger.java
    • MyProfileCardUpdateRequestDto를 임포트했습니다.
    • 새로운 프로필 이미지 업데이트 API에 대한 Swagger 설명을 추가했습니다.
    • 기존 '회원 탈퇴' API의 설명을 업데이트했습니다.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

안녕하세요. 프로필 사진 변경 API 추가에 대한 코드 리뷰입니다.
전반적으로 기능 구현은 잘 되었지만, 몇 가지 개선점을 제안드립니다.

  • 서비스 레이어에서 코드 중복이 발견되었으며, 이는 향후 리팩토링 과제로 고려될 수 있습니다.
  • DTO에 유효성 검사를 추가하여 API의 안정성을 높이는 방안을 제시했습니다.
  • Swagger 문서에서 일관성을 해치는 부분을 수정하도록 제안했습니다.

자세한 내용은 각 파일에 남긴 코멘트를 참고해주세요.

@NoArgsConstructor
public class MyProfileCardUpdateRequestDto {

@Size(max = 255)
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

프로필 이미지 URL은 비어있지 않은 값이어야 할 것으로 보입니다. profileImageUrl 필드에 @NotBlank 어노테이션을 추가하여 null 이나 공백 문자열이 전달되는 것을 방지하는 것이 좋습니다. 이렇게 하면 API의 유효성 검사가 더 명확해지고, 클라이언트에게 더 빠른 피드백을 줄 수 있습니다.

User.updateProfileImage 메소드에서 null 이나 공백을 처리하고 있지만, DTO 레벨에서 검증하는 것이 더 바람직합니다.

    @jakarta.validation.constraints.NotBlank
    @Size(max = 255)

);

@Operation(summary = "회원 탈퇴", description = "회원 탈퇴(Soft Delete) 처리 후 role을 WITHDRAWN으로 변경합니다.")
@Operation(summary = "회원 탈퇴 API By 고경수 ", description = "회원 탈퇴(Soft Delete) 처리 후 role을 WITHDRAWN으로 변경합니다.")
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

Swagger API 문서의 summary에 개발자 이름을 포함하는 것은 일반적인 관행이 아닙니다. API 문서는 기능 자체에 초점을 맞춰야 하며, 작성자 정보는 Git 커밋 히스토리 등을 통해 추적하는 것이 좋습니다. summary에서 " By 고경수 " 부분을 제거하여 문서를 더 깔끔하고 전문적으로 유지하는 것을 제안합니다.

Suggested change
@Operation(summary = "회원 탈퇴 API By 고경수 ", description = "회원 탈퇴(Soft Delete) 처리 후 role을 WITHDRAWN으로 변경합니다.")
@Operation(summary = "회원 탈퇴 API", description = "회원 탈퇴(Soft Delete) 처리 후 role을 WITHDRAWN으로 변경합니다.")

Comment on lines +212 to +213
@Operation(summary = "프로필 이미지 수정 API By 고경수",
description = "Attachment API로 업로드된 이미지 URL을 받아 프로필 이미지를 변경합니다")
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

Swagger API 문서의 summary에 개발자 이름을 포함하는 것은 일반적인 관행이 아닙니다. API 문서는 기능 자체에 초점을 맞춰야 하며, 작성자 정보는 Git 커밋 히스토리 등을 통해 추적하는 것이 좋습니다. summary에서 " By 고경수" 부분을 제거하여 문서를 더 깔끔하고 전문적으로 유지하는 것을 제안합니다.

Suggested change
@Operation(summary = "프로필 이미지 수정 API By 고경수",
description = "Attachment API로 업로드된 이미지 URL을 받아 프로필 이미지를 변경합니다")
@Operation(summary = "프로필 이미지 수정 API",
description = "Attachment API로 업로드된 이미지 URL을 받아 프로필 이미지를 변경합니다")

@lingard1234 lingard1234 merged commit 859ed4e into dev Feb 10, 2026
1 check passed
@lingard1234 lingard1234 deleted the feat/355-profileimage branch February 10, 2026 08:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant