- Client, Server 모델
- 간단한 구조로 되어 있는 구조이고, 대부분 server에서 데이터를 처리하고 client는 UI를 담당한다.
- 구조가 간단하여 속도가 좋은 특징이 있으나 확장성은 조금 떨어진다.
- 구조가 간단하여 속도가 빠르다.
- 대부분 C/C++ 언어로 작성되므로 속도가 좋다.
- 구조상 확장의 어려움이 있다.
- Client 프로그램을 다운로드 받아 PC에 설치해야 하는 배포의 번거로움이 있다.
- 버그를 수정하여도 배포하기 어렵다.
- 특정 OS 및 하드웨어에 종속적이다.
- 서버와 클라이언트 양방향 연결이 이루어지는 통신으로, 클라이언트도 서버로 요청을 보낼 수 있고 서버도 클라이언트로 요청을 보낼 수 있는 통신이다.
- 클라이언트와 서버 양쪽에서 서로에게 데이터 전달을 하는 방식의 양방향 통신이다.
- 보통 스트리밍이나 실시간 채팅 등 실시간으로 데이터를 주고 받아야 하는 경우 connection을 자주 맺고 끊는 HTTP 통신 보다는 소켓 통신이 적합하다.
- 소켓 통신은 계속해서 connection을 들고 있기 때문에 HTTP 통신에 비해 많은 리소스가 소모된다.
- CS환경이 배포가 어렵다는 단점을 보완한 모델
- 브라우저만 있다면 어디서든 쉽게 접근 가능
- OS와 브라우저의 제품에 상관없이 어디서든 동작 가능
- 수정된 부분을 쉽게 배포가 가능함
- 성능이 떨어지고, 속도가 느리다. 화면의 복잡도가 증가하면 더더욱 성능이 떨어진다.
- 다양한 기술이 접목되어 관리가 어렵다.
- HTTP란 Hyper Text Transfer Protocol 의 약자로 HTML 파일을 전송하는 프로토콜이라는 의미를 가진다.
- 웹브라우저에서 통신이 일어나며, 초기에는 HTML 파일을 전송하려는 목적으로 만들어졌으나 현재는 Json, Image, 파일 등 또한 전송한다.
- HTTP 통신은 클라이언트에서 서버로 요청을 보내고, 서버가 응답하는 방식으로 통신이 이루어진다. 응답에는 클라이언트의 요청에 따른 결과를 반환한다.
- 클라이언트의 요청이 있을 때만 서버가 응답하는 방식 (단방향 통신)
- 필요한 경우에만 Sever로 접근하는 콘텐츠 위주의 데이터를 사용할 때 용이하다.
- 자주 데이터를 주고 받는 환경이 아닌 경우에는 HTTP 통신을 통해 받는 것이 유리하다.
- 자주 데이터를 주고 받아야 하는 환경에서는 소켓 통신이 유리하다.
- HTTP 통신은 사용자가 서버에 요청을 보내는 단방향 통신인 반면, 소켓 통신은 양방향 통신이다.
🔍 90년대 cs의 주류에서 2000년 이후에는 급격하게 web으로 전환이 되었으나, 두 가지의 경우 서로 장단점이 있으므로 비교해보고 사용하는 것이 중요하다.