← SEARCHABLE ARCHIVE
Network · 2026-07-07

네트워크란 무엇인가?

클라이언트와 서버가 데이터를 주고받는 방법

INTERACTIVE READING MODE →

본 블로그 작성 글들은, 강의를 목표로 하고 제작되었습니다. 또한 작성된 글의 정보도 틀렸을 수 있으니, 주의해주세요.

네트워크는 서로 떨어진 컴퓨터가 정해진 규칙에 따라 데이터를 주고받는 구조다. 온라인 게임, 웹 브라우저, 채팅 프로그램도 기본적으로는 데이터를 보내고 응답을 받는 과정에서 시작한다.

주소와 포트로 프로그램을 찾는다

IP 주소는 네트워크에서 컴퓨터를 찾기 위한 주소다. 포트 번호는 그 컴퓨터 안에서 어떤 프로그램과 통신할지 구분한다.

192.168.0.10:7777
└─ IP 주소      └─ 포트

서버가 특정 포트에서 요청을 기다리고, 클라이언트가 서버의 주소와 포트로 연결을 시도한다. 연결된 뒤에는 양쪽이 약속한 형태의 메시지를 주고받는다.

프로토콜은 데이터 교환 규칙이다

보낸 바이트만 보고는 그것이 로그인 요청인지 캐릭터 위치인지 알 수 없다. 그래서 메시지 종류, 길이, 값의 순서를 미리 정한다.

[메시지 종류][데이터 길이][실제 데이터]
[MOVE        ][12         ][x, y, z]

이 약속을 프로토콜이라고 부른다. 서버와 클라이언트가 같은 규칙을 사용하지 않으면 정상적으로 해석할 수 없다.

TCP와 UDP

TCP는 데이터가 순서대로 도착하는지 확인하고 손실되면 다시 보낸다. 파일 전송, 로그인, 채팅처럼 정확성이 중요한 작업에 사용하기 좋다.

UDP는 연결과 재전송 관리가 단순해서 지연을 줄이기 쉽다. 대신 데이터가 사라지거나 순서가 바뀔 수 있으므로 필요한 신뢰성 처리를 프로그램이 결정해야 한다.

TCP: 정확한 전달을 우선한다.
UDP: 빠른 전달과 최신 상태를 우선하기 좋다.

온라인 게임은 지연을 숨겨야 한다

네트워크 데이터는 즉시 도착하지 않는다. 클라이언트 화면을 부드럽게 만들기 위해 예측과 보간을 사용하고, 중요한 판정은 서버가 최종 결정하는 구조를 자주 사용한다.

네트워크 프로그래밍의 시작은 복잡한 동기화가 아니다. 한 클라이언트가 문자열 하나를 보내고 서버가 같은 문자열을 돌려주는 작은 Echo 프로그램부터 연결, 메시지, 오류 처리를 확인하는 것이 좋다.