백엔드 개발이나 인프라 작업을 하다 보면 192.168.0.1/24 같은 IP 주소나 서브넷(Subnet), 서브넷 마스크(Subnet Mask)라는 단어를 자주 마주하게 됩니다.
네트워크의 기본 중의 기본이지만, 막상 누군가에게 설명하려고 하면 이진법 계산이나 기호 때문에 머리가 복잡해지곤 하는데요. 오늘은 네트워크 초보자도 한 번에 이해할 수 있도록, 아주 쉬운 일상생활의 비유와 함께 서브넷의 핵심 개념을 완벽하게 정리해 보겠습니다.
1. 서브넷(Subnet)이 필요한 이유: "거대한 동네를 단지별로 쪼개기"
인터넷상에는 수억 대가 넘는 컴퓨터(장치)가 연결되어 있습니다. 만약 전 세계의 모든 컴퓨터가 하나의 거대한 네트워크 공간에 뭉쳐 있다면 어떻게 될까요? 데이터를 보낼 때마다 수많은 컴퓨터를 하나하나 다 확인해야 하므로 시간이 엄청나게 오래 걸릴 것입니다.
그래서 등장한 개념이 바로 서브넷(Subnet, 하위 네트워크)입니다. 거대한 네트워크를 관리하기 쉽도록 더 작고 쪼개진 여러 개의 네트워크 그룹으로 나누는 행위를 '서브네팅(Subnetting)'이라고 합니다.

쉽게 비유하자면, 전 세계의 모든 집이 하나의 거대한 '동'에 모여 있다면 우체부가 편지를 배달하기 너무 힘들겠죠? 그래서 이 거대한 행정구역을 '1단지, 2단지, 3단지'처럼 작은 구역으로 쪼개서 관리하는 것과 같습니다.
2. 서브넷 마스크(Subnet Mask)의 역할: "회사 부서별 우편물 분류"
그렇다면 컴퓨터는 내가 보낸 데이터 패킷이 어떤 서브넷(그룹)으로 가야 하는지 어떻게 알 수 있을까요? 이때 사용하는 안내판이 바로 서브넷 마스크(Subnet Mask)입니다.
이 개념은 회사 우편물 분류 비유로 이해하면 아주 쉽습니다.
우체부가 어떤 대기업 건물에 도착해서 '홍길동'이라는 직원에게 편지를 전달하려고 합니다. 건물 전체를 돌아다니며 길동이의 자리를 찾는 것은 불가능에 가깝습니다. 대신, 우체국과 회사 관리팀은 편지 주소에 적힌 '고객지원팀(부서)'이라는 소속을 먼저 확인합니다. 부서 위치로 편지를 보낸 뒤, 그 부서 안에서 홍길동이라는 개인을 찾는 것은 매우 간단하죠.
이 비유에서 각 요소는 다음과 매칭됩니다.
- IP 주소: 홍길동의 정확한 자리 번호
- 서브넷 마스크: 홍길동이 속한 '부서'를 걸러내는 필터

3. IP 주소는 사실 32칸의 비밀 방이다
우리가 흔히 보는 IP 주소(IPv4)는 192.168.0.1 처럼 생겼습니다. 점(.)으로 구분된 4개의 숫자로 보이지만, 사실 컴퓨터가 이해할 수 있는 0과 1로 이루어진 32칸(32비트)의 이진수입니다.
사람이 32자리의 이진수(1100000010101000...)를 읽기는 너무 힘들기 때문에, 8칸(8비트)씩 4등분하여 우리가 아는 십진수 숫자로 번역해 놓은 것입니다.
이 32칸의 주소 공간 안에서 어디까지를 부서 번호(네트워크 ID)로 쓰고, 어디서부터를 개인 번호(호스트 ID)로 쓸지 결정하는 것이 바로 서브넷 마스크의 본질입니다.
CIDR 표기법 (슬래시 / 뒤에 붙는 숫자의 의미)
IP 주소 뒤에 /24 나 /15 같은 숫자가 붙어 있는 것을 본 적이 있으실 겁니다. 이를 CIDR(Classless Inter-Domain Routing) 표기법이라고 합니다.
- /24 의 의미: "총 32칸 중에서 앞에서부터 24칸을 부서 번호(네트워크)로 고정하고, 남은 8칸만 개인 번호(호스트)로 쓰겠다."
- /15 의 의미: "앞에서부터 15칸만 부서 번호로 고정하고, 남은 17칸을 전부 개인 번호로 쓰겠다."
즉, 슬래시 뒤의 숫자가 작아질수록 개인 번호로 쓸 수 있는 공간(칸)이 많아지므로, 한 네트워크 안에 수용할 수 있는 컴퓨터의 대수가 엄청나게 커집니다.
4. 보통 궁금한 건 : 호스트 개수 계산할 때 왜 -1과 -2를 할까?
네트워크 자격증이나 기술 면접에서 자주 나오는 단골 퀴즈가 있습니다. 바로 "8비트 크기의 호스트 주소 공간에서 실제로 컴퓨터에 할당할 수 있는 IP 대수는 몇 개인가?"라는 질문입니다.
여기서 많은 분이 -1을 빼는 경우와 -2를 빼는 경우를 헷갈려하곤 합니다. 깔끔하게 정리해 드립니다.
① IP 주소의 가장 큰 숫자가 왜 2^8 - 1 (= 255) 일까?
8칸(8비트)으로 만들 수 있는 숫자의 가짓수는 총 $2^8 = 256$개입니다.
하지만 컴퓨터는 숫자를 셀 때 0부터 시작합니다.
따라서 256개의 숫자를 0부터 차례대로 나열하면 가장 마지막에 오는 최대 숫자는 $256 - 1 = 255$가 됩니다. IP 주소에서 256이라는 숫자를 볼 수 없고 255가 한계인 이유가 바로 이 때문입니다.
② 실제로 쓸 수 있는 컴퓨터 대수는 왜 2^8 - 2 (= 254) 대일까?
하나의 서브넷 안에서 컴퓨터들에게 번호를 나눠줄 때, 맨 처음 번호와 맨 마지막 번호 딱 2개는 특수한 목적을 위해 예약되어 있어 일반 컴퓨터에 줄 수 없습니다.
- 네트워크 주소 (맨 처음 번호, 예: x.x.x.0)
- 개인 컴퓨터의 자리가 아니라 '이 네트워크 그룹(부서) 그 자체'를 대표하는 이름표로 사용됩니다.
- 브로드캐스트 주소 (맨 마지막 번호, 예: x.x.x.255)
- 해당 네트워크에 있는 모든 컴퓨터에 동시에 데이터를 보낼 때 사용하는 '사내 확성기(방송) 번호'입니다. 이 번호로 데이터를 보내면 그룹 내 모든 컴퓨터가 수신하게 됩니다.
따라서 전체 256개의 주소 중에서 부서 대표 번호(-1)와 확성기 번호(-1)를 제외한 총 254개(2^8 - 2)의 주소만 실제 컴퓨터(호스트)에 나누어 줄 수 있는 것입니다.
💡 요약 및 마무리
- 서브넷: 거대한 네트워크를 효율적으로 관리하기 위해 쪼갠 작은 네트워크 그룹
- 서브넷 마스크: IP 주소에서 어디까지가 그룹(네트워크) 번호이고 어디서부터가 개인(호스트) 번호인지 구별해 주는 필터
- 호스트 개수 계산: 0부터 시작하므로 최대 숫자는 -1이 되지만, 실제 컴퓨터에 줄 수 있는 주소는 네트워크 주소와 브로드캐스트 주소를 제외해야 하므로 -2를 해야 한다.
개발자로서 클라우드(AWS VPC 등) 환경을 구축하거나 Docker 컨테이너 내부 네트워크 망을 설계할 때 이 서브넷 개념을 정확히 이해하고 있으면, IP 충돌이나 라우팅 오류가 발생했을 때 훨씬 더 빠르고 정확하게 트러블슈팅을 할 수 있습니다.
'DevOps' 카테고리의 다른 글
| [Network] NAT 완벽 정리: 사설 IP와 공인 IP ? (0) | 2026.06.06 |
|---|---|
| [Network] k3s 기반 고가용성(HA) 3-Tier 아키텍처 (3) | 2024.05.21 |
질문이나 보충 의견이 있다면 댓글로 남겨주세요.
오류 제보, 추가 사례, 실무 경험 공유 모두 환영합니다.