[Java] WebSocket Parameter Encoding


Development note/Java  2015. 4. 21. 23:00

안녕하세요 명월입니다.


이번 포스팅에서는 Websocket의 파라미터 설정에 대해 알아보도록 하겠습니다. Parameter Encoding 이라 해서 무슨 뜻인지 설명을 하자면, 보통 WebSocket으로 전송해오는 메시지는 String형식으로 데이터를 받습니다.

String이라고 해도 안에는 JSON을 해서 보내겠지요.

그러면 message를 받아서 일일이 objectMapping을 이용해서 클래스로 변환을 해야 합니다.

사실 이렇게 해도 그렇게 문제가 되지는 않습니다만, 조금은 깔끔한 프로그래밍(?) 답지 못해 보이네요..

(저는 소스에 new가 많을수록 허접한 프로그램이라고 보는 입장이라… 퍼포먼스도 new가 많을수록 느려지는 거 아시죠??)

이걸 어노테이션에 값을 넣어서 수정할 수 있습니다.

아래의 이미지로 확인해 보겠습니다.

위 이미지를 보면 위의 함수는 String으로 받아서 String으로 리턴을 합니다. 물론 String은 Json 데이터로 되어있으니 ObjectMapper로 변환을 하고 다시 리턴을 할때는 디코딩을 해서 보냅니다.

이런 형식을 밑의 함수처럼 class로 받아서 class로 리턴하고 싶은 것 입니다.


그럼 classExam 클래스를 확인 해 보겠습니다.

그리고 여기에 Decoder,Encoder를 추가 하겠습니다.

그리고 위 이미지와 같이 encode, edcode를 추가하겠습니다. 이 함수가 클래스로 들어올 때 혹은 나갈 때 자동으로 인코딩,디코딩 해주는 부분 입니다.

그리고 websocket 클래스에 어노테이션을 추가하겠습니다.

위 같이 어노테이션에 추가 하면 Encoding,Decoding이 되겠습니다.

아래는 결과화면입니다.

예상된 결과를 얻었습니다…