자니? 아니 아직.
핵심 내용
인터넷 네트워크 통신 기법중 하나인 polling에 대해 간단히 정리하고자 한다.
HTTP통신 방식
- polling에 대해 정리하기 전에 HTTP 통신 방식에 대한 약간의 이해가 필요하다. HTTP의 통신 방식은 "단방향"이다. 여기서 말하는 통신 방식이란 클라이언트와 서버가 정보를 주고 받는 방식을 뜻한다.
- 즉, 단방향이라는 것은 = 클라이언트(요청) -> 서버(응답) 구조는 가능하나, 서버(요청) -> 클라이언트 (응답) 구조는 불가능하다는 의미이다.
- 적절한 비유인지는 모르겠지만? HTTP통신은 우리가 자판기에서 물건을 사는 것과 유사하다고 볼 수 있다.
- 클라이언트가 요청을 한다 = 자판기에 돈을 넣는다. = 연결되어 있음 -> 물건을 고른다 -> 서버가 응답을 준다(=자판기가 음료수를 준다) -> 연결 종료(= 다시 돈을 넣지 않는다면)
Polling
- 이런 문제를 해결하기 위해 고안된 기법이 Polling이다. 좀 쉬운 설명을 위해 말도 안되는 가정을 하나 하겠다. 지금부터 서버는 전여친이고 클라이언트는 전남친이다.
- Polling은 전남친이 계속 자니?라고 물어보는 것과 유사하다. 즉, 클라이언트 쪽에서 서버로 계속해서 메시지를 보내는 것이다. 어떻게 보면 일종의 눈속임에 불과하다.
- 그러니까, 주기적으로 계속 요청을 보내다 보면 어쩌다 한번쯤 얻어 걸려서 답장을 해줄 수도 있지 않겠는가? 그럼 마치 실시간으로 연결이 된 듯한 착각을 줄 수 있다.
- 이러한 방식을 polling이라고 한다. 즉, 클라이언트가 서버에 한번이 아니라 지속적으로 요청을 하는 방식.
- 위 카톡의 경우 전여친(서버)은 아직 답장을 줄 마음은 없는 모양 근데, 만약에 내 친구가 저렇게 계속 메시지를 보내면 뭐라고 하겠는가?
- 그만해라고 하지 않겠는가? 그래, 계속 이렇게 메시지를 보내는 건 확실히 비효율적이다.
Long Polling
- 그래서, 나온 것이 Long Polling!
- 전남친이 자니?라고 물어봤는데, 아직 차단은 안한 상태라고 할 수 있다. 그러다가, 전여친이 "답장을 해주겠다는 마음이 생김"이라는 사건이 발생하면 답장(=응답)을 주는 것이다.
- 이렇게 한참을 기다리고... 서버(전여친)에서 "응"이라는 단답을 주면 클라이언트(구남친)는 다시 밥은 잘 먹고다녀..?라고 보내고 한~참 있다가 "응" 이라고 오고... 뭐 이런 시츄에이션이 반복될 것이다.
- 이를 좀 유식한 표현으로 하자면, 응답할만한 내용이 있을 때 까지 서버에서 클라이언트의 요청 사항에 대한 응답을 대기하고 있는 것이다. 그리고, 응답하면 클라이언트는 다시 요청을 날려 다음 응답을 기다리는 것이다. 언제까지? 서버에서 응답을 줄만한 사건이 있을 때까지.
'일일아이티 일일데분' 카테고리의 다른 글
[네트워크] 패킷과 라우터 (0) | 2022.12.10 |
---|---|
커널 - 알맹이 (0) | 2022.10.30 |
SSH(Secure Shell Protocol) 개념 도식화 (0) | 2021.06.02 |
[오늘의 지식] 허영 지표 (0) | 2021.03.24 |
[API] 에러 함수에 대한 예외 처리 (0) | 2021.02.21 |
제 블로그에 와주셔서 감사합니다! 다들 오늘 하루도 좋은 일 있으시길~~
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!