Skip to content

Commit 686bf28

Browse files
committed
Fix: 방 입퇴장 @deprecated 메서드 제거
1 parent d8fd6f0 commit 686bf28

File tree

2 files changed

+0
-207
lines changed

2 files changed

+0
-207
lines changed

src/main/java/com/back/global/websocket/controller/WebSocketMessageController.java

Lines changed: 0 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import lombok.RequiredArgsConstructor;
88
import lombok.extern.slf4j.Slf4j;
99
import org.springframework.messaging.handler.annotation.MessageMapping;
10-
import org.springframework.messaging.handler.annotation.DestinationVariable;
1110
import org.springframework.messaging.handler.annotation.Payload;
1211
import org.springframework.messaging.simp.SimpMessageHeaderAccessor;
1312
import org.springframework.stereotype.Controller;
@@ -42,68 +41,6 @@ public void handleHeartbeat(@Payload HeartbeatMessage message,
4241
}
4342
}
4443

45-
/**
46-
* 방 입장 처리
47-
*
48-
* @deprecated 이 STOMP 엔드포인트는 REST API로 대체되었습니다.
49-
* 대신 POST /api/rooms/{roomId}/join을 사용하세요.
50-
*
51-
* 참고: REST API 호출 시 자동으로 Redis에 입장 처리되며 WebSocket 알림도 전송됩니다.
52-
* 이 엔드포인트는 하위 호환성을 위해 유지되지만 사용을 권장하지 않습니다.
53-
*/
54-
@Deprecated
55-
@MessageMapping("/rooms/{roomId}/join")
56-
public void handleJoinRoom(@DestinationVariable Long roomId,
57-
@Payload HeartbeatMessage message,
58-
SimpMessageHeaderAccessor headerAccessor) {
59-
try {
60-
if (message.userId() != null) {
61-
sessionManager.joinRoom(message.userId(), roomId);
62-
log.info("STOMP 방 입장 처리 완료 - 사용자: {}, 방: {}", message.userId(), roomId);
63-
} else {
64-
log.warn("유효하지 않은 방 입장 요청: userId가 null");
65-
errorHelper.sendInvalidRequestError(headerAccessor.getSessionId(), "사용자 ID가 필요합니다");
66-
}
67-
} catch (CustomException e) {
68-
log.error("방 입장 처리 실패 - 방: {}, 에러: {}", roomId, e.getMessage());
69-
errorHelper.sendCustomExceptionToUser(headerAccessor.getSessionId(), e);
70-
} catch (Exception e) {
71-
log.error("방 입장 처리 중 예상치 못한 오류 - 방: {}", roomId, e);
72-
errorHelper.sendGenericErrorToUser(headerAccessor.getSessionId(), e, "방 입장 중 오류가 발생했습니다");
73-
}
74-
}
75-
76-
/**
77-
* 방 퇴장 처리
78-
*
79-
* @deprecated 이 STOMP 엔드포인트는 REST API로 대체되었습니다.
80-
* 대신 POST /api/rooms/{roomId}/leave를 사용하세요.
81-
*
82-
* 참고: REST API 호출 시 자동으로 Redis에서 퇴장 처리되며 WebSocket 알림도 전송됩니다.
83-
* 이 엔드포인트는 하위 호환성을 위해 유지되지만 사용을 권장하지 않습니다.
84-
*/
85-
@Deprecated
86-
@MessageMapping("/rooms/{roomId}/leave")
87-
public void handleLeaveRoom(@DestinationVariable Long roomId,
88-
@Payload HeartbeatMessage message,
89-
SimpMessageHeaderAccessor headerAccessor) {
90-
try {
91-
if (message.userId() != null) {
92-
sessionManager.leaveRoom(message.userId(), roomId);
93-
log.info("STOMP 방 퇴장 처리 완료 - 사용자: {}, 방: {}", message.userId(), roomId);
94-
} else {
95-
log.warn("유효하지 않은 방 퇴장 요청: userId가 null");
96-
errorHelper.sendInvalidRequestError(headerAccessor.getSessionId(), "사용자 ID가 필요합니다");
97-
}
98-
} catch (CustomException e) {
99-
log.error("방 퇴장 처리 실패 - 방: {}, 에러: {}", roomId, e.getMessage());
100-
errorHelper.sendCustomExceptionToUser(headerAccessor.getSessionId(), e);
101-
} catch (Exception e) {
102-
log.error("방 퇴장 처리 중 예상치 못한 오류 - 방: {}", roomId, e);
103-
errorHelper.sendGenericErrorToUser(headerAccessor.getSessionId(), e, "방 퇴장 중 오류가 발생했습니다");
104-
}
105-
}
106-
10744
// 사용자 활동 신호 처리
10845
@MessageMapping("/activity")
10946
public void handleActivity(@Payload HeartbeatMessage message,

src/test/java/com/back/global/websocket/controller/WebSocketMessageControllerTest.java

Lines changed: 0 additions & 144 deletions
Original file line numberDiff line numberDiff line change
@@ -118,150 +118,6 @@ void t4() {
118118
}
119119
}
120120

121-
@Nested
122-
@DisplayName("방 입장 처리")
123-
class HandleJoinRoomTest {
124-
125-
@Test
126-
@DisplayName("정상 - 방 입장")
127-
void t5() {
128-
// given
129-
HeartbeatMessage message = new HeartbeatMessage(userId);
130-
doNothing().when(sessionManager).joinRoom(userId, roomId);
131-
132-
// when
133-
controller.handleJoinRoom(roomId, message, headerAccessor);
134-
135-
// then
136-
verify(sessionManager).joinRoom(userId, roomId);
137-
verify(errorHelper, never()).sendInvalidRequestError(anyString(), anyString());
138-
verify(errorHelper, never()).sendCustomExceptionToUser(anyString(), any());
139-
verify(errorHelper, never()).sendGenericErrorToUser(anyString(), any(), anyString());
140-
}
141-
142-
@Test
143-
@DisplayName("실패 - userId가 null")
144-
void t6() {
145-
// given
146-
HeartbeatMessage message = new HeartbeatMessage(null);
147-
148-
// when
149-
controller.handleJoinRoom(roomId, message, headerAccessor);
150-
151-
// then
152-
verify(sessionManager, never()).joinRoom(any(), any());
153-
verify(errorHelper).sendInvalidRequestError(sessionId, "사용자 ID가 필요합니다");
154-
}
155-
156-
@Test
157-
@DisplayName("실패 - CustomException 발생")
158-
void t7() {
159-
// given
160-
HeartbeatMessage message = new HeartbeatMessage(userId);
161-
CustomException exception = new CustomException(ErrorCode.NOT_ROOM_MEMBER);
162-
doThrow(exception).when(sessionManager).joinRoom(userId, roomId);
163-
164-
// when
165-
controller.handleJoinRoom(roomId, message, headerAccessor);
166-
167-
// then
168-
verify(sessionManager).joinRoom(userId, roomId);
169-
verify(errorHelper).sendCustomExceptionToUser(sessionId, exception);
170-
}
171-
172-
@Test
173-
@DisplayName("실패 - 일반 Exception 발생")
174-
void t8() {
175-
// given
176-
HeartbeatMessage message = new HeartbeatMessage(userId);
177-
RuntimeException exception = new RuntimeException("예상치 못한 오류");
178-
doThrow(exception).when(sessionManager).joinRoom(userId, roomId);
179-
180-
// when
181-
controller.handleJoinRoom(roomId, message, headerAccessor);
182-
183-
// then
184-
verify(sessionManager).joinRoom(userId, roomId);
185-
verify(errorHelper).sendGenericErrorToUser(
186-
eq(sessionId),
187-
any(Exception.class),
188-
eq("방 입장 중 오류가 발생했습니다")
189-
);
190-
}
191-
}
192-
193-
@Nested
194-
@DisplayName("방 퇴장 처리")
195-
class HandleLeaveRoomTest {
196-
197-
@Test
198-
@DisplayName("정상 - 방 퇴장")
199-
void t9() {
200-
// given
201-
HeartbeatMessage message = new HeartbeatMessage(userId);
202-
doNothing().when(sessionManager).leaveRoom(userId, roomId);
203-
204-
// when
205-
controller.handleLeaveRoom(roomId, message, headerAccessor);
206-
207-
// then
208-
verify(sessionManager).leaveRoom(userId, roomId);
209-
verify(errorHelper, never()).sendInvalidRequestError(anyString(), anyString());
210-
verify(errorHelper, never()).sendCustomExceptionToUser(anyString(), any());
211-
verify(errorHelper, never()).sendGenericErrorToUser(anyString(), any(), anyString());
212-
}
213-
214-
@Test
215-
@DisplayName("실패 - userId가 null")
216-
void t10() {
217-
// given
218-
HeartbeatMessage message = new HeartbeatMessage(null);
219-
220-
// when
221-
controller.handleLeaveRoom(roomId, message, headerAccessor);
222-
223-
// then
224-
verify(sessionManager, never()).leaveRoom(any(), any());
225-
verify(errorHelper).sendInvalidRequestError(sessionId, "사용자 ID가 필요합니다");
226-
}
227-
228-
@Test
229-
@DisplayName("실패 - CustomException 발생")
230-
void t11() {
231-
// given
232-
HeartbeatMessage message = new HeartbeatMessage(userId);
233-
CustomException exception = new CustomException(ErrorCode.NOT_ROOM_MEMBER);
234-
doThrow(exception).when(sessionManager).leaveRoom(userId, roomId);
235-
236-
// when
237-
controller.handleLeaveRoom(roomId, message, headerAccessor);
238-
239-
// then
240-
verify(sessionManager).leaveRoom(userId, roomId);
241-
verify(errorHelper).sendCustomExceptionToUser(sessionId, exception);
242-
}
243-
244-
@Test
245-
@DisplayName("실패 - 일반 Exception 발생")
246-
void t12() {
247-
// given
248-
HeartbeatMessage message = new HeartbeatMessage(userId);
249-
RuntimeException exception = new RuntimeException("예상치 못한 오류");
250-
doThrow(exception).when(sessionManager).leaveRoom(userId, roomId);
251-
252-
// when
253-
controller.handleLeaveRoom(roomId, message, headerAccessor);
254-
255-
// then
256-
verify(sessionManager).leaveRoom(userId, roomId);
257-
verify(errorHelper).sendGenericErrorToUser(
258-
eq(sessionId),
259-
any(Exception.class),
260-
eq("방 퇴장 중 오류가 발생했습니다")
261-
);
262-
}
263-
}
264-
265121
@Nested
266122
@DisplayName("활동 신호 처리")
267123
class HandleActivityTest {

0 commit comments

Comments
 (0)