채팅방 목록 순환참조 문제
·
Spring/Spring 트러블 슈팅
원인은?프로젝트에서 채팅방 목록을 조회할 때 발생하는 순환 참조 문제를 해결하기 위해 코드를 개선하였다. 기존에는 ChatRoom 엔티티를 그대로 반환하거나 참조하는 과정에서 @ManyToOne 또는 @OneToMany와 같은 양방향 관계로 인해 순환 참조가 발생할 수 있었으나, 이로 인해, 직렬화 과정에서 무한 루프에 빠지는 문제가 있었다. 어떻게 해결했나?이를 해결하기 위해 DTO(Data Transfer Object)를 활용하여 필요한 필드만 가져오도록 하였다. ChatDto.ChatRoomDto라는 DTO를 정의하여 채팅방 조회 시 필요한 최소한의 필드(chatRoomId, createdAt)만 반환하도록 하고,ChatRoom 엔티티의 조회 메서드를 변경하여 ChatRoomDto로 변환 후 반환하..
Could not write JSON
·
Spring/Spring 트러블 슈팅
유저 등록을 한 후 로그인을 받고 토큰을 받은걸 AUthorization에 토큰값을 넣어준 뒤 로그인 된 유저 정보 바탕으로 단건 다건 조회가 된다. 근데 post에서 request 정보 넣고 send를 했지만 해당 메세지가 뜬다. Could not write JSON: failed to lazily initialize a collection of role: com.sparta.newsfeed19.user.User.followerList: could not initialize proxy - no Session "이 에러 메시지는 Hibernate와 관련된 Lazy Loading 문제로, Session이 없는 상태에서 지연 로딩(Lazy Loading)된 엔티티를 초기화하려고 할 때 발생합니다. 구체적으로..
Spring Port 8080 is already in use
·
Spring/Spring 트러블 슈팅
이미 8080포트를 사용중이라면서 에러메세지를 받았다 이 경우는 8080이 이미 다른 프로세스에서 사용 중이라는 의미이다. 해당 해결방법은 이미 사용되고 있는 프로세스를 종료시키거나 포트번호를 바꾸는 방법이다. 첫번째로 PID를 찾아서 kill 명령어를 이용해 종료시키는 거다. mac 기준Terminal 들어가서 포트 사용중인 프로세스를 찾는다.lsof -i :8080 이 명령어는 포트 8080을 사용 중인 프로세스를 찾는다. Ex) 여기서 '1234'가 PID이다. PID 확인 후 다음 명령어로 프로세스를 종료한다.kill -9  예를 들어 PID가 1234인 경우kill -9 1234 Window 기준cmd에서 포트 사용 중인 프로세스를 찾는다.netstat -ano | findstr :8080이 명..