네트워크 프로그래밍의 이해
네트워크 프로그래밍의 이해
두 컴퓨터간의 데이터를 주고 받을 수 있도록 프로그래밍을 하는 것을 네트워크 프로그래밍이라 한다.
인터넷 망을 통한 디바이스( 예를들어 핸드폰 )과 컴퓨터간의 데이터를 주고 받는 것도 역시 네트워크 프로그래밍이라 한다.
요즘은 어떤 프로그래밍을 해도 네트워크가 들어가는 경우가 많이 있다.
SNS, 채팅, 게임, IOT, 클라우드 등등 다 인터넷이 안되면 동작 하지 않는것이 대부분이다.
또한 네트워크 프로그램은 어떠한 언어로 구현하여도 개념이 거의 동일하니 개념을 잘 숙지하는 것이 중요하다.
두 컴퓨터간에 데이터를 주고 받을려면 물리적 연결이 필요한데 이러한 연결을 도울수 있는 것을 소켓(socket)이라 한다.
두개의 컴퓨터가 연결이 되면 아래 그림과 같은 상태가 된다.
이렇게 연결이 되면 서로 데이터를 주고 받을 수 있다.
여기서 Server는 연결을 대기하는 컴퓨터이며 Client는 연결을 시도하는 컴퓨터를 뜻 한다.
Server는 여러 Client를 연결 받아서 관리 할 수도 있다.
모든 데이터 송수신 작업이 끝나면 소켓을 닫으면 두개의 컴퓨터 연결을 사라진다.
컴퓨터의 주소 (IP, PORT)
우리가 누구에게 전화를 하려면 고유한 전화번호를 알고 있어야 한다.
또한 친구 집에 찾아 가려면 친구 집 주소가 있어야 찾아간다.
그와 마찬가지로 어떤 컴퓨터가 내 컴퓨터를 접속 하려고 하면 내 컴퓨터 주소를 알아야 하며 그렇다면 컴퓨터에서의 주소는 어떻게 표현이 되는가?
바로 컴퓨터에서의 주소를 IP와 PORT를 사용 한다.
IP는 어떤 컴퓨터인지를 식별하며 하나의 컴퓨터에서 PORT는 어떤 프로그램이냐를 식별한다.
예를 들어 내컴퓨터에서 온라인 게임을 실행 시키면 내부적으로 211.111.11.1 IP에 PORT 10을 넣어 게임 프로그램 서버로 접속 하게 된다는 이야기다.
오늘은 네트워크 프로그램에 대한 이야기와 컴퓨터 주소에 대한 설명을 하였다 다음에는 두 컴퓨터가 연결이 되는 과정을 설명 하도록 하겠다.
'프로그램 > Network' 카테고리의 다른 글
[네트워크] 바이트 순서 빅 엔디안, 리틀 엔디안) (0) | 2017.12.17 |
---|---|
프로토콜 체계와 소켓 타입(TCP/UDP) (1) | 2017.01.27 |
[Network] Python을 이용한 네트워크 프로그래밍 (2) | 2016.12.28 |
[네트워크] 네트워크 프로그래밍의 이해 2 (0) | 2016.12.25 |