socket.io 에 대한 간단한 질문
411
작성한 질문수 3
안녕하세요 선생님!
강의에서 사용한 socket.io에 대해 문득 궁금한 점이 들어 질문 남기게 되었습니다.
기존에 Websocket API 등장 이전에는 Ajax 통신 등으로 실시간 정보를 받아오기 위해 매번 요청을 보내야 했고,
그 과정에서 좀 더 효율성을 위해 Long Polling 또는 Streaming 방식 등이 등장했다고 이해했습니다.
반면 Websocket 의 경우 한 번 연결을 맺으면 그 연결을 유지하기 때문에 실시간 정보를 다루기 편하고 클라이언트와 서버간 양방향 통신 역시 용이하다고 소개된 것 같습니다,
이때 클라이언트와 서버 간의 통신은 등록한 이벤트 핸들러(?)를 통해 해당 이벤트가 감지되면 데이터를 내보내주는 등의 반응을 한다라고 이해했습니다.
여기서 드는 간단한 의문은
1) 클라이언트의 HTTP 요청 -> 서버가 수신 -> 서버에서 데이터 처리 -> 클라이언트에게 HTTP 응답 -> 연결 해제
2) 클라이언트에서 socket 연결 요청 -> 서버와 연결 -> 클라이언트에서 이벤트 발생 -> 서버가 감지 -> 서버에서 데이터 처리 후 전달 -> 다음 이벤트 대기...
와 같은 과정으로 이해가 되는데 HTTP요청이나 이벤트 발생 시 모두 서버에서 데이터를 처리해서 보내주는 로직은 동일한 것 같은데, 서버에서 매번 HTTP 요청을 받아 응답을 보내주는 것 보다 이벤트 핸들러(사실 이벤트가 맞는지는 확실히 모르겠습니다) 방식으로 처리하는 것이 효율이 더 좋은건가요?
글을 작성하다 보니 내용이 좀 두서가 없는 것 같은데 질문의 요지는,
클라이언트에서 서버로 요청을 보내고 이에 서버가 데이터를 보내주는 것은 둘 모두 동일한 로직인 듯 한데 이 요청이 HTTP 요청인가 아닌가에 따라 서버에 걸리는 부하의 차이가 꽤 큰 것 인지 궁금합니다.
번외)
아 그리고 선생님이 사용하시는 에디터에서 주로 함수의 인자에 음영처리되어 자동으로 데이터 타입이 표시가 되던데,
이는 Webstorm 에디터만의 기능인가요? 아니면 VSCode에서도 이를 적용할 수 있는 Extension이 있을까요?
감사합니다.
답변 2
1
1.꽤 많이 차이납니다. 주기적으로 http 요청을 보낼 때는 데이터가 없어도 응답을 보내야하며 요청이나 응답을 보낼 때 쿠키나 헤더 등의 데이터도 포함되어 상당히 무거워집니다. 그리고 웹소켓보다 실시간성도 낮습니다.
2. 웹스톰 기능입니다. vs코드에서 가능한지는 잘 모르겠습니다.
0
vscode extension:
Inline Parameters for VSCodev0.2.1
Liam Hammett
Function parameter annotations displaying inline in VSCode
를 사용하시면 됩니다.
기본 셋팅과 관련하여
0
91
1
초기 셋팅 back과 front만 남겨두고 다 지운 후 진행 방법
0
96
2
focus 시에만 화면 업데이트 되는 이유 + 해결방법
0
148
2
useEffect 개수 관리
0
109
2
라이브러리 서치 방법
0
103
2
함수 정의 패턴
0
77
1
npm run dev 에러
0
152
3
npx webpack 후 에러
0
178
2
'void' 형식 식의 truthiness를 테스트할 수 없습니다.ts(1345)
0
142
2
사용자 가입시 에러발생 (TypeError: Cannot read properties of null (reading 'addMembers')
1
177
2
초기세팅중 packge.json 에러떠요
0
154
2
CORS - Access-Control-Allow-Origin 누락 문제
0
430
3
로그인 페이지 무한 새로고침 현상
0
598
2
Module not found: Error: Can't resolve './App' 에러
0
952
1
배포 방법
0
295
2
npm run dev 시 빌드가 매우 느려졌습니다
0
987
2
alias 경로 설정 오류
0
448
2
fetcher 함수의 data 값이 두번 찍히는 이유
0
274
1
제네릭 질문
0
217
2
ts-node 대신 tsx 사용여부
0
373
1
배포 관련 질문
0
247
1
[nginx + https] 서비스를 실행하면 niginx가 아닌 서비스 화면을 보여주게 하고 싶습니다.
0
385
2
[배포하기] webpack에 aws 퍼블릭 IPv4 주소 와 포트 주소를 작성하고 나서 빌드후 실행하면 오류가 발생합니다.
0
336
1
users 호출 시 쿠키가 담기지 않는 이슈 질문드립니다.
0
247
2





