본문 바로가기
1. CS(Computer Science) 기초 지식/네트워크

전 세계 컴퓨터를 연결하는 거대한 약속, 네트워크와 OSI 7 계층의 본질

by 심플리Do 2026. 6. 11.

우리가 웹 브라우저 주소창에 URL을 입력하고 엔터를 누르면, 눈깜짝할 사이에 지구 반대편에 있는 서버로부터 웹 페이지 데이터가 날아와 화면에 펼쳐진다. 스마트폰으로 메시지를 보내고, 대용량 파일을 다운로드하는 이 모든 일상 뒤에는 전 세계의 컴퓨터들을 유기적으로 연결하는 '컴퓨터 네트워크'가 존재한다.

 

네트워크는 단순히 '선으로 컴퓨터를 연결하는 것'을 넘어, 복잡한 하드웨어와 소프트웨어가 철저한 규칙 속에서 데이터를 주고받는 정교한 시스템이다. 첫 번째 포스팅에서는 네트워크의 핵심인 '프로토콜'의 개념과 복잡한 통신 과정을 구조화한 'OSI 7 계층'의 본질을 정리해 본다.

 

1. 네트워크의 핵심: 프로토콜(Protocol)이란 무엇인가?

서로 다른 제조사가 만든 컴퓨터, 서로 다른 운영체제(OS)를 사용하는 기기들이 아무런 문제 없이 통신할 수 있는 이유는 무엇일까? 정답은 바로 프로토콜(Protocol, 통신 규약)이 존재하기 때문이다.

프로토콜은 컴퓨터 간에 데이터를 주고받기 위해 정의한 '공통의 약속이자 규약'이다.

  • 데이터를 어떤 크기로 나눌 것인가?
  • 데이터의 앞부분(Header)에는 어떤 정보를 담을 것인가?
  • 데이터가 가는 도중에 손실되면 어떻게 대처할 것인가?

만약 이러한 약속이 없다면 각 컴퓨터는 상대방이 보낸 신호를 전혀 해석할 수 없다. 우리가 웹 서핑을 할 때 쓰는 HTTP, 파일 전송에 쓰는 FTP, 안전한 통신을 위한 HTTPS 등이 모두 대표적인 프로토콜이다.

 

2. 복잡한 통신을 나누어 해결하다: OSI 7 계층 (OSI 7 Layer)

컴퓨터 간에 데이터를 보내는 과정은 생각보다 훨씬 복잡하다. 애플리케이션의 데이터를 0과 1의 전기 신호로 바꾸고, 물리적인 케이블이나 무선 전파를 통해 목적지 라우터들을 거쳐 정확한 대상에게 배달해야 한다.

 

국제표준화기구(ISO)는 이 복잡한 네트워크 통신 과정을 상호 호환성이 높은 7개의 독립적인 단계로 나누었는데, 이를 OSI 7 계층이라고 부른다. 이렇게 계층을 나눈 이유는 각 계층이 자신의 역할에만 집중하게 함으로써, 특정 계층에 문제가 생기면 다른 곳을 건드리지 않고 그 계층만 수정·트러블슈팅할 수 있기 때문이다.

  • 하위 계층 (물리적 전송 담당): * 1계층 - 물리 계층 (Physical Layer): 데이터를 전기적, 물리적 신호로 변환하여 케이블로 전송한다. (허브, 리피터)
    • 2계층 - 데이터 링크 계층 (Data Link Layer): 물리적인 네트워크 사이의 안전한 데이터 전송을 담당하며, 물리적 주소인 MAC 주소를 사용한다. (스위치)
    • 3계층 - 네트워크 계층 (Network Layer): 데이터를 목적지까지 가장 안전하고 빠른 경로로 안내하는 '라우팅'을 담당하며, 논리적 주소인 IP 주소를 사용한다. (라우터)
  • 상위 계층 (데이터 제어 및 사용자 인터페이스 담당):
    • 4계층 - 전송 계층 (Transport Layer): 송신자와 수신자 간의 신뢰성 있는 데이터 전송을 보장한다. 패킷이 유실되면 재전송을 요청하며, TCP와 UDP가 여기에 속한다.
    • 5계층 - 세션 계층 (Session Layer): 통신하는 두 컴퓨터 간의 연결(세션)을 생성하고 유지하며 종료하는 제어를 담당한다.
    • 6계층 - 표현 계층 (Presentation Layer): 데이터의 형식(인코딩, 암호화, 압축)을 정의하여 서로 다른 기기가 데이터를 이해할 수 있도록 변환한다.
    • 7계층 - 응용 계층 (Application Layer): 사용자가 네트워크에 접근할 수 있도록 인터페이스를 제공하는 최상위 계층이다. (HTTP, FTP, SMTP 등)

현대 인터넷 체계에서는 이를 조금 더 단순화한 TCP/IP 4계층 모델이 실무적인 표준으로 널리 쓰이지만, 네트워크의 흐름과 이론적 뼈대를 이해하는 데는 OSI 7 계층이 여전히 가장 완벽한 기준이 된다.

 

3. 개발자가 네트워크를 깊이 공부해야 하는 이유

"프론트엔드나 백엔드 개발은 API 연산이나 화면 구현이 위주인데, 왜 라우터나 계층 구조까지 알아야 할까?"라는 의문이 들 수 있다.

하지만 우리가 만드는 모든 소프트웨어는 결국 네트워크라는 파이프라인 위에서 동작한다.

  • 성능 최적화와 비용 절감: TCP의 3-Way Handshake 동작 원리를 알아야 HTTP 연결 오버헤드를 줄이는 최적화(Keep-Alive, HTTP/2, HTTP/3 등)를 이해할 수 있고, 불필요한 네트워크 트래픽 비용을 아낄 수 있다.
  • 보안 솔루션 설계: 데이터가 암호화되는 SSL/TLS 인증서의 동작 메커니즘(HTTPS)이나 CORS(Cross-Origin Resource Sharing) 에러, 대규모 트래픽 분산을 위한 로드 밸런싱을 이해하려면 네트워크 기초 체력이 필수적이다.
  • 거시적 트러블슈팅: 서비스에 접속이 안 되거나 지연이 발생할 때, 문제가 내 소스 코드에 있는지, DNS 서버의 문제인지, 아니면 방화벽이나 네트워크 서브넷 설정의 문제인지 논리적으로 추적하여 빠르게 해결할 수 있는 시야를 갖추게 된다.

 

마치며: 세상과 소통하는 시스템의 통로를 이해하는 일

네트워크를 공부한다는 것은 내가 만든 작은 프로그램이 세상 밖으로 나가 다른 시스템과 어떻게 악수하고, 대화하며, 협력하는지 그 통로를 배우는 과정이다.

 

앞으로 이 카테고리에서는 TCP와 UDP의 결정적 차이, IP 주소 체계와 서브네팅, DNS의 작동 원리, 웹을 지탱하는 HTTP 프로토콜의 진화 등 실무에서 뼈대가 되는 핵심 통신 메커니즘을 하나씩 명확하게 파헤쳐 볼 것이다. 기본기가 탄탄한 전공자로서, 거대한 데이터의 흐름을 꿰뚫어 보는 안목을 길러보자.