[22.10.10] Daily 회고록 (웹소켓 메세지 변경, 프로젝트 read.me 작성)
일간 회고록(TIL)

[22.10.10] Daily 회고록 (웹소켓 메세지 변경, 프로젝트 read.me 작성)

[일일회고]

데스트톱이 고장났다.. CPU가 항상 90도 전후를 유지해서 본체에서 계속 이상한 소리가 나고, 서멀구리스를 재도포 했지만 전혀 해결되지 않아 수냉 쿨러의 고장인 듯 싶다. 그래서 요즘 공부를 제대로 못하고 있어서 주말동안 멘토링을 받은 것을 기반으로 정리를 하고 있다. 다음주부터 시험기간이라 그 동안 쿨러를 보내놓고 공부에 전념하려고 한다.

 

[프로젝트]

프로젝트 readme.md 작성
프로젝트의 끝이 보이기 시작하고, 취업 시즌이 다가오면서 서류에 깃허브 링크를 달아놓아서, 프로젝트에 리드미를 추가했다. 기존에 리드미에 적었던 정보들이 많이 부실한 정보임을 알았고, 멘토님은 처음 이 프로젝트를 보는 사람들(ex 신입) 기준으로 보고 오픈소스를 실행하지 못하는 리드미는 다시 설정을 한다고 한다. 그 조언을 기반으로 작성하기 시작했고, secret file이 한 번 실수로 올라가서 git reset으로 날리고 했다 ㅋㅋㅋ.. 나중에 한 번 더 다듬도록 해야겠다.

 

GitHub - rhkd2612/exquiz.me-backend

Contribute to rhkd2612/exquiz.me-backend development by creating an account on GitHub.

github.com

 



웹소켓 메세지 변경
웹소켓은 기존 HTTP 통신과 달리 처음과 끝 연결에만 헤더를 붙이고, 중간에는 payload만 전송하기 때문에 헤더를 사용하는 방식인 http response는 적합하지 않다. 그렇기 때문에 에러를 감지해도 서버에서는 뜨지만 payload에는 담을 수가 없었고, 이를 해결하는 겸, 웹소켓 메세지를 구분하기 위해 messageType이라는 enum 타입을 하나 제작하였다. 그래서 에러가 발생할 경우 타입을 에러로, 그리고 에러 메시지를 담아서 구독자들에게 보내고 아닐 경우에는 정상 페이로드의 messageType을 구분하여 반응하는 식으로 진행을 하였다.

Callback:
{
        "messageType" : MessageType // "PARTICIPANT"
        "fromSession" : String, // 사용자 session id - google login시 발급
        "id" : Long  // 사용자 id 
        "name" : String // 사용자 구분 이름 
        "nickname" : String // 사용자 닉네임
        "entryDate" : Date // 생성일(입장시간) 
        "currentScore" : int // 점수 
        "imageNumber" : int // 사용자 이미지 
        "colorNumber" : int // 사용자 배경색
}

프론트에서 웹소켓 통신이 정상 작동한다!