댓글 구현에 대한 질문
댓글 구현 중에 질문이 있어서 남깁니다.
댓글 수정 기능 구현할 때, 댓글의 주인인지 아닌지를 검사해야하는데
findByCommentIdAndUsername으로 한번에 가져오는 것 (조인)
findByCommentId해서 게시자 지연로딩
findByCommentIdWithUser해서 user도 같이 가져오도록 fetch join
어떤게 가장 좋은 방법일까요.
그리고 성공시에 클라이언트에게 어떤 정보를 리턴하는 게 가장 좋을까요?
댓글을 리턴해주면 될까요?
답변 1
0
안녕하세요, 김재연 님. 공식 서포터즈 y2gcoder 입니다.
먼저 이러한 부분은 정확한 요구사항에 따라 달라질 수 있고, 제 개인적인 생각을 말씀드린다는 점 유념해주시기 바랍니다 :)
댓글 수정 기능을 구현 중이시고, 댓글 수정 요청 에 수정 요청한 사용자를 식별할 수 있는 값, 댓글 ID, 댓글 수정 내용이 있다고 가정했습니다.
댓글 수정할 때는 말씀하신 것처럼 댓글의 주인인지만 판단하면 된다고 생각합니다. 그 방식으로는 여러가지가 있는데 저는 1번과 2번 중에 하나를 선택할 것 같습니다. 1번에서는 댓글에서 작성자를 식별할 수 있는 값이 있다면 그것을 조건으로 걸어서 할 것 같습니다. userId가 fk로 걸려있다면 그냥 userId를 조건으로 할 것 같습니다.
그리고 성공시에 클라이언트에 줄 정보도 요구사항에 따라 달라질 것 같습니다. 프론트에서는 댓글 수정 요청 시 댓글 수정 내용을 이미 담고 있기 때문에 백엔드로 요청을 보내면서 미리 값을 바꿔놓을 수도 있고(Optimistic Update), 댓글 수정 요청의 응답이 성공적으로 오면 그에 따라 프론트의 값을 바꿀 수도 있습니다. 만약 전자와 같이 미리 바꾼다고 하면 사실 댓글 수정 요청에 대한 응답으로는 성공했는지 여부만 전달할 것 같고, 댓글 수정 요청의 응답에 따라 댓글을 업데이트 한다면 그 때는 변경된 댓글의 내용들을 반환해서 그 내용에 따라 UI 를 업데이트할 수도 있을 것 같습니다.
감사합니다.
어드바이스 순서 디폴트 기준이 궁금합니다.
0
55
1
AspectV1 예제를 @Configuration 수동 등록으로도 가능한가요?
0
81
2
구체 클래스를 상속받아 확장한 형태도 클래스패턴/데코레이터 패턴이라고 칭하나요?
0
57
1
TraceTemplate 을 미리 빈으로 등록해서 사용할때 이렇게 설정하는게 맞는건가요?
0
54
1
Decorator 에서 추상메서드로 뺄때 질문 있습니다.
0
56
1
대상 클래스에 기본 생성자가 없을 때
0
76
1
스프링 부트 버전 4.0 aop 의존성 명칭 변경
1
362
2
final 키워드 사용 관련 질문
0
78
1
안녕하세요
0
65
1
ThradLocal 실무 사례
0
98
2
실무에서의 동시성 문제
0
64
1
로그 등 부가 기능에 대한 테스트코드
0
50
1
ProceedingJoinPoint와 MethodInvocation에 대하여
0
67
1
실무 멀티스레딩에 대한 궁금증
0
70
1
안녕하세요 질문있습니다
0
45
1
AspectV3 aop 실행 순서 문의 드립니다
0
38
1
MDC vs AOP 중에 고민중입니다.
0
76
1
순환참조
0
161
2
this를 단독으로 사용할때랑 파라미터 바인딩 할때 차이
0
78
1
빈 후처리에 등록 질문 있습니다.
0
77
1
AppConfig 설정하는 설명중에 이해가 안되는게 있습니다.
0
90
1
ThreadLocal을 지역변수로 선언하면 remove가 필요할까요?
0
118
2
@Aspect 어노테이션으로 생성된 Advisor의 Bean 저장 여부
0
69
1
ThreadLocal 사용시 부작용이 있을수 있을까요? (ThreadLocal.remove()를 잘한다고 해도..)
0
73
2





