///
Search
Duplicate
📝

코드 감상회

1번

우선 176-179줄이 이후로도 계속 반복되고 있습니다. 이를 content를 매개변수로 받아 PostReadResList를 반환하는 메서드로 분리하고, 따로 dto에 따라 post를 반환하는 메서드를 만들어서 중복을 최소화 하는 것이 좋을 것 같습니다. 제가 querydsl 에 대해서는 잘 몰라서 여기까지.. 못할 것 같습니다.
스위치 케이스 문을 쓴다면 개선된 switch 표현식을 써보시면 더욱 가독성 있습니다.
천천히 읽어 봤는데 제 기준에서는 괜찮은 것 같습니다. QPost.post를 import static 해주셔서 post만 쓰면 조금 더 깔끔해질 것 같습니다.
ALL 빼고 매개변수의 형태가 같으니, 이를 추상 메소드로 뽑아서 관리해보는건 어떨까요? 즉, switch문을 서비스단이 아닌 레포단에서 작성해서 분기시키면 어떨까라는 생각이 듭니다!

2번

POST맨으로 웹소켓연결이 확인이 안되는건 주소를 잘못 입력했을 가능성이 높아보입니다. ws://localhost:8080/ws 를 잘입력하셨는지 확인해 보시고 그래도 연결이 안된다면 securityconfig에서 /ws를 permitAll하고 테스트 해봐주시면 될 것같습니다. 그리고 stomp를 활용한 채팅기능테스트는 https://jxy.me/websocket-debug-tool/이 사이트를 통해서 실제로 채팅이 전송되는지 확인했습니다.
저희 같은 경우는 채팅이 대부분 프론트 쪽에서 이루어지다 보니 채팅 테스트 할 때 정말 간단한 페이지를 만들어서 테스트 했습니다. 페이지에 접속하게 되면 엔드포인트 주소로 웹소켓 연결 맺어주고 채팅이 제대로 가는지 확인하면서 테스트 했습니다.
혹시 프론트에서 SockJS를 사용하신 상태이신가요? 그렇다면, 다음과 같이 SockJS를 등록하는 코드를 추가해보시면 어떨까 싶어요!
@Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/ws") .setAllowedOriginPatterns("*"); .withSockJS(); //버전 낮은 브라우저에서도 적용 가능 }
Plain Text
복사

3번

맥락에 따라 코드를 공백 라인으로 나누면 더욱 가독성 좋을 것 같습니다.
빌더를 한 줄로 다 적기보다, 한 줄에 .메서드 하나씩 적어서 줄을 넘기면 더욱 가독성 좋을 것 같습니다.
System.out.println 보단 로그를 이용하면 디버깅하는데 더욱 좋을 것 같습니다(시간, 실행객체 확인 등등)
updateReviewByManners, updateReviewByTime 이런 식으로 나누고 ==1 보다는 빼주는 것이 그나마 깔끔해보이지 않을까 생각합니다. 고수님들을 통해 좋은 방법 찾으시길 바랍니다!
개인적으로, for문을 통해 데이터를 접근하기 보단 stream을 사용해보면 좀 더 깔끔해지지 않을까라는 생각이 듭니다!

튜터님

System.out.println을 사용한 코드가 보입니다. 실제 운영 환경에서는 로깅 라이브러리인 Slf4j를 사용하도록 하고 로그 level을 설정하여 꼭 필요한 로그들만 출력될 수 있도록 만드는것이 좋습니다.
3번 피드백의 조건문이 아주 길게 잡혀있는데 이러한 부분은 가독성을 매우 나쁘게 만들기 때문에 별도의 메서드로 추출하거나 조건문을 단순화할 수 있도록 만들어주시면 좋겠습니다.