8/26 TIL 채팅과 DB.. / 기술면접 TCP/UDP에 대해서

이승준·2023년 8월 26일
0
post-thumbnail

🤔token 사용..

  1. const [tokenType, token] = authorization.split('%');

  2. const [tokenType, token] = authorization.split('%20');

token 추출을 하며 시간을 정말 많이 허비했다..
URI 인코딩? 디코딩? 그런 문제였다..
%20 은 공백을 뜻하고 디코딩하여

const [tokenType, token] = authorization.split(' ');
으로 쓸 수도 있다.

그 다음으로 user_id와 user_name이 필요했는데
DB에서 모든 정보를 갖고올 필요가 없는데 리소스낭비에다가..
그래서 토큰에 user_name까지 저장했다.

🤔API 서버와 소켓 서버를 한 서버에 운영중

소켓 서버에서 DB에 접근할 일이 있으면 api호출, 직접 DB접근 어떤 방법을 써야하는가?

  • api호출
    • 재사용성이 좋다
    • 보안과 추상화가 가능하다
  • 직접 접근
    • 응답시간
    • 더 낮은 부하

의 장점이 있다

프로그램 규모가 크고 복잡하면 api호출의 장점이 더 도드라질 것 같다.
!!!직접접근!!!!

🤔소켓 서버에서 접속한 유저들LIST

처음부터 io.sockets.adapter.sids 에 접근을 하여 .. 어찌저찌
소켓에 저장한 socket['name'] ,socket['id'] 등
의 데이터를 가져오려고 했는데

  • 접근하기도 어렵고
  • 뭔가 세팅할 게 많다.

그래서 빈배열값을 만들어 id,name,socket.id 를 객체형식으로
connect 시 넣고
disconnect 시 배열에서 제외한 후 프론트엔드 쪽에 emit하는 방식을 택했다.

기술면접 9번 TCP와 UDP에 대해서 설명해주세요

TCP와 UDP 는 전송 계층을 담당하는 프로토콜로 데이터를 네트워크를 통해 전송하는 방법을 정의한다

TCP는 연결지향적이며 신뢰성이 있는 연결방식이다.
흐름제어와 순서보장이 되는 특징이 있다
UDP보단 조금 시간이 소요될 수 있다.
카카오톡 이미지전송?

UDP는 비연결지향적이며 데이터를 체크하지않고 막 보낸다
한번 연결되면 그 이후로 체크하지 않고 데이터를 보낸다
해서 실시간통신에는 유리하지만 데이터의 신뢰성이 보장되지 않는다
실시간 스트리밍 같은 서비스에 유리하다

0개의 댓글