개인 프로젝트 | KPP - 12

trevor1107·2021년 3월 23일
0

오늘의 목표

  • 소켓통신으로 실시간 채팅 구현

데이터베이스 DATE NOW 시간이 UTC ??

글 작성시 생성되는 NOW의 값이 UTC 기준으로 한국시간의 -9시간으로 표시가되었다..

같은 문제를 겪는 사람들에게서 timezone을 설정하는 것을 찾을 수 있었다.
시퀄라이즈 라이브러리를 사용하고 있는데, 설정 값에 timezone : '+09:00';를 추가해주었다.
타임존을 설정하니까.. 오히려 -9시간으로 적용되어서 시간 값들이 과거로 돌아갔다;;
그리고 timezone을 제거하니까 다시 한국시간으로 변경되는 이상한 현상이??!

그래서 timezone : 'Asia/Seoul';으로 설정해보니 +09:00과 같이 설정되어 -9시간으로 표시가 되었다. 내부적으로는 Asia/Seoul이 +09:00와 같은 것으로 되어있는 것이 아닐까..

데이터베이스를 확인해보니 시간은 한국시간으로 잘 들어가져있는데, 게시판에 표기되는 시간이 이상해졌다.

그래서 timezone : '+00:00';으로 바꿔주니 한국시간으로 표기가 잘되었다..
시퀄라이즈에서는 데이터 베이스의 데이터 타입이 DATE이라면 timezone의 영향을 받는 것 같다.

소켓 연결

우선 Node.js 교과서 책을 참고해서 해보려고하는데,, 순서가 틀린건지.. 찾아본 내용대로 적용하기 생각보다 어려움을 겪었다. 공식문서를 참고해도 나는 web.js와 app.js가 나누어져있으니 헷갈렸다.
천천히 실행 순서를 찾아가보자 web.js를 기준으로 실행되고 있으니 require의 순서가 곧 실행순서 라고 봐도 되었다. 이제 소켓을 분리해서 작업해보자!

socket.js와 chat.js를 만들고 socket.js에 기본 메인 소켓을 실행할 함수를 만들어서 chat.js의 데이터를 포함시키는 방법으로 소켓을 나누어서 작업한다.
app.js에는 socket.js를 포함해서 만들어놓은 메인 소켓함수를 실행해 매개변수로 app에서 생성한 app.io를 넣어주었다.

app.io의 서버연결은 web.js의 http server를 생성하는 곳에서 attach함수를 통해 연결해주었다.

profile
프론트엔드 개발자

0개의 댓글