Web/NetWork 7

[NetWork] TCP/IP 4계층 및 TCP Header 구조

TCP/IP 4계층 데이터 전송과 캡슐화 TCP/IP에서 데이터 전송시 데이터는 상위 계층에서 하위 계층으로 이동하고 계층 이동마다 필요한 정보(헤더)가 추가되며 이를 캡슐화 라고 한다. 데이터 수신과 역캡슐화 데이터는 하위 계층에서 상위계층으로 이동하고 계층이동 마다 추가된 헤더를 읽고 해당 헤더에 따라 처리를 하며 헤더를 제거하고 이를 역캡슐화 라고 한다. 계층구조 4계층 - 응용프로그램 계층 역할 : 사용자와 소프트웨어간 소통을 담당하는 계층이다. 데이터 단위 : Data 전송 주소 : 없음. 프로토콜 : HTTP, HTTPS, DNS, Telnet, 파일전송, 이메일 등 장비 : 없음 3계층 - 전송 계층 역할 : 호스트간 자료 송수신 및 통신간 신뢰되는 데이터를 전송하는 보장 계층이다. 네트워크..

Web/NetWork 2023.05.30

[NetWork] SPA와 MPA

SPA란? SPA 작동방식 SPA(Single Page Application)는 모던 웹의 패러다임이다. SPA는 단일 페이지로 기존의 서버 사이드 렌더링과 비교할 때, 배포가 간단하며 네이티브 앱과 비슷한 사용자 경험을 제공한다는 장점이 있다. SPA는 웹 앱에 필요한 모든 정적 리소스를 처음에 한번 다운로드한다. 페이지 간 이동 시, 페이지 갱신에 필요한 데이터만을 JSON으로 전달받아 페이지를 갱신하므로 전체적인 트래픽을 감소할 수 있고, 전체 페이지를 다시 렌더링하지 않고 변경되는 부분만을 갱신하므로 새로고침이 발생하지 않아 네이티브 앱과 유사한 사용자 경험을 제공할 수 있다. 이런 특징들은 SPA가 모바일 웹에 최적화 된 이유이기도 하다. 속도, 사용성, 반응성의 향상으로 더 나은 사용자 경험을..

Web/NetWork 2022.11.09

[NetWork] WebSocket 이란?

정의 하나의 TCP 접속에 전이중 통신 채널을 제공하는 컴퓨터 통신 프로토콜 목적 기존 방식의 단점 개선. 기존의 양방향 통신 (왜 써야할까?) HTTP 프로토콜 HTTP는 클라이언트의 요청이 있어야만 서버가 응답할 수 있다. 반대로 서버가 먼저 보내는 요청은 클라이언트가 받을 수 없다. 이 단점을 개선하기 위해 나온 기술이 Polling이다. Polling은 주기적으로 서버에 요청을 보내서 받을게 있는지 확인하는 방법이다. 단점은 서버측에서 보낼 내용이 없어도 클라이언트는 알 수 없기 때문에 계속해서 request를 보내 확인을 해야하고, 지속적인 연결과 해제는 handshake가 필요하기 때문에 서버에 부담을 준다. 클라이언트가 많아질수록 더욱 커지게 된다. 이 polling의 단점을 조금 개선한 것..

Web/NetWork 2022.08.25

[NetWork] http통신을 이용한 양방향 통신기법, Polling VS Long Polling

웹에서 프로그래밍을 하다보면 결국 채팅프로그램을 만드는 예제를 많이 하게된다. 채팅을 하기위해서 여러분이 선택하는 방법은 사실상 웹소켓으로 기결된다. 브라우저상에서 사용하지 않는다면 TCP소켓을 사용하는 경우도 있다. 일단 만고의 진리부터 한번보고 지나가자. http는 절대 절대 절대 양방향이 되지 않는다. http는 양방향이 되지 않는 모델이다. request, response형태로 단방향만 가능하다. 또한 불변의 진리, http는 서버에서 원하는 타이밍에 클라이언트에게 데이터를 보낼 수 없다. 문제는 http에서 서버에서 클라이언트로 역으로 요청하는건 불가능 하다는 것이다. 애당초 Client만이 Server로 연락할 수 있고 Server는 Client의 요청을 응답하는것만 가능하다는 것이다. 과거에..

Web/NetWork 2022.08.25

[NetWork] 데이터 통신 방식(Realtime, push, polling)

Realtime 실시간은 사용자가 즉시라고 느낄 정도로 충분히 빠르거나, 또는 컴퓨터가 외부에서 진행되는 처리에 뒤떨어지지 않을 정도로 빠르게 동작하는 컴퓨터의 반응 수준이다 Push push server는 클라이언트의 요청이 오면 응답해주는 방식이 아닌 서버가 클라이언트에게 공지사항과 같은 무엇인가 통지해주기 위한 방법이다. 다시 말해 클라이언트의 요청이 없이도 서버는 클라이언트에게 응답하는 방식이다. Polling 폴링(polling)이란 하나의 장치(또는 프로그램)가 충돌 회피 또는 동기화 처리 등을 목적으로 다른 장치(또는 프로그램)의 상태를 주기적으로 검사하여 일정한 조건을 만족할 때 송수신 등의 자료처리를 하는 방식을 말한다 Long Polling(COMET) 클라이언트가 웹서버에게 새로운 내..

Web/NetWork 2022.08.25

[NetWork] 폴링(Polling)이란?

폴링은 리얼타임 웹을 위한 기법으로, 일정한 주기(특정한 시간)을 가지고 서버와 응답을 주고 받는 방식을 말한다. 이렇게 서버와 응답을 주고 받는 이유는 웹이 태생 자체부터 실시간을 위해 필수적인 persistent connection이 불가능하기 때문이다. 클라이언트가 서버에 특정 요청을 하면 서버가 응답해준 후 연결이 끊어지는게 HTTP의 특징이기 때문이다. 따라서 실시간 서비스라고 불리는 서비스들 대부분이 실시간이 아니다. 실시간으로 변하는 야구 중계 같은 경우, 브라우저에서 5초 단위로 서버에 요청을 보내 업데이트 하는 방식으로 구현된다. 폴링을 위키피디아식으로 다시 정의해보면 폴링이란 하나의 장치(혹은 프로그램)가 충돌 회피 또는 동기화 처리 등을 목적으로 다른 장치 (또는 프로그램)의 상태를 ..

Web/NetWork 2022.08.25

[NetWork] REST API와 Websocket통신 차이점

1. Http 통신 Client의 요청이 있을 때만 서버가 응답하여 해당 정보를 전송하고 곧바로 연결을 종료하는 방식 이러한 방식은 client가 요청을 보낸 경우에만 server가 응답하기 때문에 단방향적 통신으로 볼 수 있습니다. 따라서 server가 client로 요청을 보낼 수는 없습니다. 요청을 보낼 때, 내용을 기다리는 시간과 함께 연결하는 시간이 들어가게 됩니다. 이러한 Http 통신은 실시간 연결이 아닌, 필요한 경우에만 server로 접근하는 콘텐츠 위주의 데이터를 사용할 때 용이합니다. 만약 게시물에 대한 내용을 요청하기 위해 실시간으로 연결을 유지하는 Socket 통신을 사용하게 되면, 게시물을 받은 후에도 계속 통신을 위한 연결이 성립되어 있어 부하가 걸리게 됩니다. 일반적으로 모바..

Web/NetWork 2022.08.25