Skip to content

[FEAT] 프로필 조회 API 분리 (me, other)#121

Merged
Be-HinD merged 1 commit intomainfrom
feat/profile-me
Dec 17, 2025
Merged

[FEAT] 프로필 조회 API 분리 (me, other)#121
Be-HinD merged 1 commit intomainfrom
feat/profile-me

Conversation

@Be-HinD
Copy link
Member

@Be-HinD Be-HinD commented Dec 17, 2025

📝 Pull Request

📌 PR 종류

해당하는 항목에 체크해주세요.

  • 기능 추가 (Feature)
  • 버그 수정 (Fix)
  • 문서 수정 (Docs)
  • 코드 리팩터링 (Refactor)
  • 테스트 추가 (Test)
  • 기타 변경 (Chore)

✨ 변경 내용

프론트측 요청에 따라 본인 프로필 조회, 타인 프로필 조회 엔드포인트를 분리하였습니다.


🔍 관련 이슈

해당 PR이 해결하는 이슈가 있다면 연결해주세요.


🧪 테스트

변경된 기능에 대한 테스트 범위 또는 테스트 결과를 작성해주세요.

  • 유닛 테스트 추가 / 수정
  • 통합 테스트 검증
  • 수동 테스트 완료

🚨 확인해야 할 사항 (Checklist)

PR을 제출하기 전에 아래 항목들을 확인해주세요.

  • 코드 포매팅 완료
  • 불필요한 파일/코드 제거
  • 로직 검증 완료
  • 프로젝트 빌드 성공
  • 린트/정적 분석 통과 (해당 시)

🙋 기타 참고 사항

리뷰어가 참고하면 좋을 만한 추가 설명이 있다면 적어주세요.

Summary by CodeRabbit

새로운 기능

  • 인증된 사용자가 토큰을 통해 자신의 프로필 정보를 조회할 수 있는 새로운 개인 프로필 조회 엔드포인트 추가
  • 기존 사용자 프로필 조회 기능과 별도로 제공되는 전용 엔드포인트 운영

✏️ Tip: You can customize this high-level summary in your review settings.

@Be-HinD Be-HinD self-assigned this Dec 17, 2025
@Be-HinD Be-HinD added the ✨enhancement New feature or request label Dec 17, 2025
@coderabbitai
Copy link

coderabbitai bot commented Dec 17, 2025

Walkthrough

인증된 사용자의 프로필을 조회하는 새로운 엔드포인트 GET /api/v1/users/me를 추가합니다. 보안 설정을 수정하여 이 경로에 인증을 요구하고, 서비스 레이어에 새로운 프로필 조회 메서드를 구현하며, 컨트롤러와 API 문서를 업데이트합니다.

Changes

Cohort / File(s) Summary
보안 설정 변경
src/main/java/team/wego/wegobackend/common/security/JwtAuthenticationFilter.java, src/main/java/team/wego/wegobackend/common/security/SecurityConfig.java
/api/v1/users/me 경로에 대한 공개 접근을 제거하고, 보안 설정에서 이 엔드포인트를 인증 필수로 설정합니다.
사용자 프로필 조회 기능 추가
src/main/java/team/wego/wegobackend/user/application/UserService.java, src/main/java/team/wego/wegobackend/user/presentation/UserController.java, src/main/java/team/wego/wegobackend/user/presentation/UserControllerDocs.java
인증된 사용자의 프로필을 조회하는 getProfile(Long userId) 메서드를 서비스에 추가하고, 이를 호출하는 새로운 /api/v1/users/me 엔드포인트를 컨트롤러에 추가합니다. API 문서도 함께 업데이트됩니다.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12분

  • 추가 검토 필요 영역:
    • SecurityConfig의 매처 순서 및 인증 요구사항이 올바르게 적용되는지 확인
    • getProfile(Long loginUserId, Long targetUserId) 메서드에서 로그인 사용자 조회 제거가 팔로우 상태 로직에 영향을 주지 않는지 검증

Possibly related PRs

Poem

🐰 인증의 문을 지나 me 엔드포인트 하나,
토끼가 들려준 보안 이야기,
공개는 닫고 인증은 열어,
내 프로필 데이터는 이제 안전해! 🔐

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 37.50% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목이 변경 사항의 핵심을 명확하게 반영하고 있습니다. 본인 프로필 조회(me)와 타인 프로필 조회(other) 엔드포인트 분리라는 주요 변경 사항을 간결하고 구체적으로 설명합니다.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/profile-me

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a 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

🧹 Nitpick comments (1)
src/main/java/team/wego/wegobackend/common/security/JwtAuthenticationFilter.java (1)

133-135: 인증 로직은 정확하나 개선이 필요합니다.

/api/v1/users/me 경로에 대한 인증 요구사항이 올바르게 구현되었습니다. 와일드카드 패턴보다 먼저 평가되어 의도한 대로 동작합니다.

하지만 이 하드코딩 방식은 유지보수성이 떨어집니다. Line 132의 TODO 주석처럼, HTTP 메서드까지 포함하는 중앙화된 설정 방식으로 개선하는 것을 권장합니다.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between eb903fe and d63acd1.

📒 Files selected for processing (5)
  • src/main/java/team/wego/wegobackend/common/security/JwtAuthenticationFilter.java (1 hunks)
  • src/main/java/team/wego/wegobackend/common/security/SecurityConfig.java (1 hunks)
  • src/main/java/team/wego/wegobackend/user/application/UserService.java (1 hunks)
  • src/main/java/team/wego/wegobackend/user/presentation/UserController.java (1 hunks)
  • src/main/java/team/wego/wegobackend/user/presentation/UserControllerDocs.java (1 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
src/main/java/team/wego/wegobackend/user/application/UserService.java (1)
src/main/java/team/wego/wegobackend/user/exception/UserNotFoundException.java (1)
  • UserNotFoundException (6-11)
🔇 Additional comments (4)
src/main/java/team/wego/wegobackend/user/application/UserService.java (1)

31-38: 구현이 적절합니다.

본인 프로필 조회를 위한 새로운 메서드가 깔끔하게 구현되었습니다. 읽기 전용 트랜잭션 설정과 예외 처리가 적절하며, 본인 프로필 조회 시에는 팔로우 상태를 포함하지 않는 것이 맞습니다.

src/main/java/team/wego/wegobackend/common/security/SecurityConfig.java (1)

38-38: 보안 설정이 올바르게 적용되었습니다.

/api/v1/users/me 경로에 대한 인증 요구사항이 정확하게 설정되었습니다. 일반적인 permitAll 매처보다 먼저 평가되어 의도한 대로 동작하며, JwtAuthenticationFilter의 변경사항과 일관성 있게 구현되었습니다.

src/main/java/team/wego/wegobackend/user/presentation/UserController.java (1)

43-57: 본인 프로필 조회 엔드포인트가 깔끔하게 구현되었습니다.

새로운 /me 엔드포인트가 적절하게 구현되었습니다. 인증된 사용자 정보를 통해 본인 프로필을 조회하는 로직이 명확하고, 보안 설정에 의해 userDetails가 항상 존재하도록 보장됩니다. 기존 /{userId} 엔드포인트와의 분리가 적절합니다.

src/main/java/team/wego/wegobackend/user/presentation/UserControllerDocs.java (1)

26-29: API 문서가 명확하게 작성되었습니다.

새로운 본인 프로필 조회 API에 대한 문서가 적절하게 추가되었습니다. 설명이 명확하고 메서드 시그니처가 컨트롤러 구현과 정확히 일치합니다.

@Be-HinD Be-HinD merged commit 20e3f84 into main Dec 17, 2025
1 check passed
@Be-HinD Be-HinD deleted the feat/profile-me branch December 17, 2025 10:15
@github-project-automation github-project-automation bot moved this from Backlog to Done in WeGo-Together Backend Dec 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨enhancement New feature or request

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant