해결된 질문
작성
·
43
0
의도와 구현이 잘 이해가 가지 않아 예전에 작성 했던 코드를 가져와 아래와 같이 이해를 해볼려고 했는데 맞게 이해를 한건지 궁금합니다.
save라는 네이밍으로 저장한다는 의미를 뜻함 -> 의도
코드 내부에는 DTO를 받아와 엔티티 객체로 변환하고 DB에 저장 로직 -> 구현
save 메서드
@Override
public ServerMessageDto save(ServerMessageCreateRequest createRequest) {
ServerMessage serverMessage = ServerMessage.builder()
.serverId(createRequest.getServerId())
.channelId(createRequest.getChannelId())
.userId(createRequest.getUserId())
.parentId(createRequest.getParentId())
.profileImage(createRequest.getProfileImage())
.content(createRequest.getContent())
.writer(createRequest.getWriter())
.chatType(ChatType.SERVER)
.actionType(ActionType.SEND)
.files(createRequest.getFiles())
.build();
serverMessage.generateSequence(sequenceGenerator.generateSequence(ServerMessage.SEQUENCE_NAME));
return ServerMessageDto.from(messageRepository.save(serverMessage));
}
postSend 라는 네이밍으로 ~ 후의 전송이라는 의미 -> 의도
코드 내부에는 특정 조건에 따라 함수 호출 로직 -> 구현
postSend 메서드
@Override
public void postSend(Message<?> message, MessageChannel channel, boolean sent) {
StompHeaderAccessor headerAccessor = StompHeaderAccessor.wrap(message);
if (StompCommand.CONNECT.equals(headerAccessor.getCommand())) {
Long userId = sendConnectionStateInfo(headerAccessor);
sendConnectionStateEvent(userId);
}
if (StompCommand.DISCONNECT.equals(headerAccessor.getCommand())) {
Long userId = saveDisconnectionState(headerAccessor);
if (userId != null) {
sendDisConnectionStateEvent(userId);
}
}
}
답변 1
0
첫번째 메서드는 직관적으로 의도가 이해되는 이름인거 같은데요. 두번째는 잘 모르겠습니다. 내용을 보면 message에 따라 Connect 또는 Disconnect 이벤트를 보내는것 같은데 postSend 라는 이름이 좀 모호하네요.