Client - Server
방식으로 만들어진 프로그램을 뜻한다. CS
방식에 속하나 구분을 위해 후자를 Web
프로그래밍이라고 부른다.CS
에서 Web
방식으로 전환되었다.Server
에서 데이터를Client
는 UI를 담당한다.
- Client 프로그램을 다운로드받아 PC에 설치해야 하는 배포의 번거로움
- 버그 수정 시 배포가 어려움
- 특정 OS 및 하드웨어에 종속적
- OS와 브라우저의 제품에 상관없이 어디서든 동작 가능하다.
- 수정된 부분을 쉽게 배포할 수 있다.
- 성능이 떨어지고 속도가 느리다.
- 너무 다양한 기술이 접목되어 관리하기 어려울 수 있다.
Socket
) : 일종의 통신 접속점으로, 두 프로그램이 네트워크를 통해 통신할 수 있도록 양쪽에 생성되는 링크의 단자이다. 떨어져 있는 두 호스트를 연결해 주는 인터페이스 역할을 하며 데이터를 주고받을 수 있는 구조체이다.
- 서버 소켓(
Server Socket
) :
서버 프로그램에서 사용하는 소켓. 클라이언트의 연결 요청을 기다렸다가 요청시 클라이언트와 연결을 맺고 다른 소켓을 만든다.- 클라이언트 소켓(
Client Socket)
:
클라이언트 프로그램에서 사용하는 소켓. 서버프로그램으로 연결을 요청하고 데이터를 전송한다.
- 프로토콜 :시스템 간 통신의 규약
- IP : 컴퓨터 고유 식별 주소
- 포트 : 네트워크 통신을 위해 호스트 내부적으로 프로세스가 할당받아야하는 고유한 숫자. 같은 호스트 내에서 통신을 하고 있는 프로세스를 식별하는 번호이기에 프로세스별로 다른 포트 넘버를 가져야 한다.
- 서버 응답 후에는 사용자와의 연결을 끊는다. 다만 성능상 이유로 최근에는 Keep Alive옵션을 통해 일정 기간 연결을 유지하는 방식도 사용된다.
- HTTP 통신도 소켓 통신을 활용한 통신 방식의 일종이지만 단방향 통신의 특성상 별도 프로토콜로 구분한다.
- 서로 데이터를 주고받을 수 있는 양방향 통신이다.
- 계속해서 클라이언트 - 서버 커넥션을 유지하므로 스트리밍, 채팅 등 실시간으로 데이터를 자주 주고받아야 하는 환경에 적합하다.
- 클라이언트 요청에 서버가 응답하는 단방향 통신이다.
- 요청 시에만 커넥션이 발생하므로 자주 데이터를 주고받는 환경이 아닐 시 리소스를 절약하기에 적합하다.
OSI(Open Systems Interconnection
) 7 Layer
: ISO(국제표준기구)에서 만든, 네트워크를 7계층으로 만든 모델이다.
- 응용 계층(
Application Layer
)
: 통신의 최종 목적지로서 응용 프로세스와 직접 관계하는 계층이다. 일반적인 응용 서비스를 수행하고 관련된 프로세스들 사이의 전환을 제공한다. UI나 사용자 입출력 부분이 속한다.
- 표현 계층(
Presentation Layer
)
: 코드 간 번역을 통해 데이터의 형식상 차이를 다룬다. 인코딩, 암호화 등의 동작이 이루어지며 데이터 표현이 상이한 응용 프로세스의 독립성을 제공한다.
- 세션 계층(
Session Layer
) :
두 컴퓨터 간 대화나 세션을 관리하며 포트 연결이라고도 한다. 장치 간 연결을 설정, 관리, 종료하고 정상적으로 호스트를 연결하는 데 책임이 있다. 사용자들을 동기화하고 오류복구 명령을 일괄적으로 다루며 통신 세션을 확립, 유지, 중단한다.
- 전송 계층(
Transport Layer
) :
컴퓨터 간에 신뢰성 있는 연결을 담당한다. 데이터를 분해하거나 재조립하고 데이터 흐름과 오류를 제어함으로써 상위 계층이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 지원하는 역할을 한다.
- 네트워크 계층(
Network Layer
) :
데이터를 목적지까지 라우팅(전달)하는 기능을 한다. 경로를 설정하고 패킷을 전달해 주는 역할을 하며, 라우터 등의 장비가 속한다. 이 때 데이터 전달을 위해 IP주소(논리적 주소)를 사용한다.
전송 계층으로부터 받은 데이터에 송수신 장치의 IP주소들을 포함하는 IP프로토콜 헤더를 붙여 패킷을 전송하는데 이를 캡슐화라고 한다.
- 데이터 링크 계층(
Data Link Layer
) :
물리 계층에서 발생할 수 있는 통신 오류와 흐름을 관리하여 안전한 정보 전달을 수행할 수 있도록 한다. 맥 주소(물리적 주소)를 가지고 통신하며, 이 계층에서 전송되는 단위를 프레임이라고 한다. 브릿지, 스위치 등의 장비가 속한다.
- 맥 주소 : 네트워크 통신을 하는 하드웨어에 할당되는 고유한 ID. 48비트(8비트 6자리)로 구성되어 있다.
- 물리 계층(
Physical Layer
) :
주로 통신 케이블로 데이터를 전송하는 전기적, 기계적 특성을 갖는 계층이다. 통신 단위로는 0과 1로 이루어진 비트를 사용한다. 케이블, 리피터, 허브 등의 장비가 속한다.
TCP/IP 4 Layer
: OSI 7 Layer를 4개로 단순화한 계층으로, 서로 다른 기종 간 기기들이 데이터를 주고받을 수 있도록 하는 인터넷 표준 프로토콜을 만들기 위한 모형이다. 사실상 인터넷 프로토콜을 대표하는 용어로 사용되며 이를 통해 컴퓨터를 연결하는 체계를 이더넷(Ethernet
)이라고 부른다.
- 응용 계층(
Application Layer
) :
OSI 계층의 세션, 표현, 응용 계층과 유사한 계층- 전송 계층(
Transport Layer
) :
OSI 계층의 전송 계층과 유사한 계층- 인터넷 계층(
Internet Layer
) :
OSI 계층의 네트워크 계층과 유사한 계층- 네트워크 액세스 계층(
Network Access Area Layer
) :
OSI 계층의 데이터링크, 물리 계층과 유사한 계층
Internet Protocol
)Transmission Control Protocol
)
- HTTP : Hyper Text Transfer Protocol
- HTTPS : Hyper Text Transfer Protocol Secure
- FTP : File Transfer Protocol
- SFTP : Secure File Transfer Protocol
- Telnet : Terminal Network
- SSH : Secure Shell
- SMTP : Simple Mail Transfer Protocol