인프런 커뮤니티 질문&답변

김재연님의 프로필 이미지
김재연

작성한 질문수

스프링 핵심 원리 - 고급편

댓글 구현에 대한 질문

해결된 질문

작성

·

244

0

댓글 구현 중에 질문이 있어서 남깁니다.

 

댓글 수정 기능 구현할 때, 댓글의 주인인지 아닌지를 검사해야하는데

  1. findByCommentIdAndUsername으로 한번에 가져오는 것 (조인)

  2. findByCommentId해서 게시자 지연로딩

  3. findByCommentIdWithUser해서 user도 같이 가져오도록 fetch join

 

어떤게 가장 좋은 방법일까요.

 

그리고 성공시에 클라이언트에게 어떤 정보를 리턴하는 게 가장 좋을까요?

댓글을 리턴해주면 될까요?

답변 1

0

안녕하세요, 김재연 님. 공식 서포터즈 y2gcoder 입니다.

먼저 이러한 부분은 정확한 요구사항에 따라 달라질 수 있고, 제 개인적인 생각을 말씀드린다는 점 유념해주시기 바랍니다 :)

댓글 수정 기능을 구현 중이시고, 댓글 수정 요청 에 수정 요청한 사용자를 식별할 수 있는 값, 댓글 ID, 댓글 수정 내용이 있다고 가정했습니다.

댓글 수정할 때는 말씀하신 것처럼 댓글의 주인인지만 판단하면 된다고 생각합니다. 그 방식으로는 여러가지가 있는데 저는 1번과 2번 중에 하나를 선택할 것 같습니다. 1번에서는 댓글에서 작성자를 식별할 수 있는 값이 있다면 그것을 조건으로 걸어서 할 것 같습니다. userId가 fk로 걸려있다면 그냥 userId를 조건으로 할 것 같습니다.

그리고 성공시에 클라이언트에 줄 정보도 요구사항에 따라 달라질 것 같습니다. 프론트에서는 댓글 수정 요청 시 댓글 수정 내용을 이미 담고 있기 때문에 백엔드로 요청을 보내면서 미리 값을 바꿔놓을 수도 있고(Optimistic Update), 댓글 수정 요청의 응답이 성공적으로 오면 그에 따라 프론트의 값을 바꿀 수도 있습니다. 만약 전자와 같이 미리 바꾼다고 하면 사실 댓글 수정 요청에 대한 응답으로는 성공했는지 여부만 전달할 것 같고, 댓글 수정 요청의 응답에 따라 댓글을 업데이트 한다면 그 때는 변경된 댓글의 내용들을 반환해서 그 내용에 따라 UI 를 업데이트할 수도 있을 것 같습니다.



감사합니다.

김재연님의 프로필 이미지
김재연

작성한 질문수

질문하기