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

[feat] #17 유저 프로필 수정 조회 #17

Merged
merged 5 commits into from
Nov 3, 2024

Conversation

hyxklee
Copy link
Member

@hyxklee hyxklee commented Oct 29, 2024

1. 무슨 이유로 코드를 변경했나요?

  • 유저 도메인 중 프로필 조회, 프로필 수정 API를 구현했습니다

2. 어떤 위험이나 장애를 발견했나요?

X

3. 관련 스크린샷을 첨부해주세요.

X

4. 완료 사항

  • 정적 팩토리 메서드 + 빌더 패턴을 적용해 엔티티->DTO로 변환을 간편하게 하도록 구현했습니다
  • 내 프로필인지 남의 프로필인지 구분하기 위해 boolean 변수를 추가했는데 프론트와 조율 후 확정할 예정입니다
  • 프로필 수정의 경우 @Setter 사용을 지양하기 때문에 엔티티 내부에서 변수를 수정하는 update 메서드를 구현하였고, 해당 메서드를 통해 엔티티를 수정하게 되면 JPA의 변경감지로 인해 DB에도 적용이 됩니다
  • 또한 @transactional 어노테이션을 사용해 해당 메서드를 트랜잭션화 시켜 무결성을 지킬 수 있습니다
  • 요구사항을 확인해보니 성별, 전화번호도 필요가 없는 컬럼이라 우선 주석처리 했습니다

5. 추가 사항

  • 현재 유저 도메인으로만 구현가능한 API는 2개 밖에 없어서 팔로우, 좋아요 도메인 구현 후 완성할 예정입니다

@hyxklee hyxklee added the feat 기능 개발, 구현 label Oct 29, 2024
@hyxklee hyxklee self-assigned this Oct 29, 2024
@hyxklee hyxklee changed the title Feat #17 유저 프로필 수정 조회 [feat] #17 유저 프로필 수정 조회 Oct 29, 2024
Long followerCount
) {
// 정적 팩토리 메서드
public static UserProfileResponse from(User user, Boolean isMyProfile) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

저도 서칭을 해가며 이런 방식의 코드를 사용하였는데 , 단순히 객체를 생성한다는 점에서 생성자와 개념이 헷갈렸었는데
객체의 재사용, 메서드 이름 설정 가능, 복잡한 로직을 캡슐화 할 수 있다는점에서 유용하게 사용할 수 있는 static 메서드 인 것을 알았습니다!

@@ -47,4 +49,19 @@ public ResponseDto<String> initUserProfile(@RequestBody @Valid UserInitializeReq
return ResponseDto.response(INIT_PROFILE_SUCCESS.getCode(), INIT_PROFILE_SUCCESS.getMessage());
}

@GetMapping("/profile/{userId}")
@Operation(summary = "유저 기본 프로필 조회")
Copy link
Collaborator

Choose a reason for hiding this comment

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

@operation 애너테이션의 용도를 몰랐는데 Swagger 문서 자동화 생성에 사용되는 애너테이션임을 이번 기회에 알게되었습니다!
제 코드에도 수정해 놓겠습니다!

@hyxklee hyxklee merged commit b8c4668 into main Nov 3, 2024
2 checks passed
@hyxklee hyxklee deleted the feat/#16/유저-프로필-수정-조회 branch November 3, 2024 10:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feat 기능 개발, 구현
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants