정처기 감자
네트워크/OSIP

서브넷 마스크(Subnet Mask)

네트워크/OSIP
읽는데 19분 소요
처음 쓰인 날: 2025-09-11
마지막 수정일: 2026-10-20
조회수: —

요약

IPv4 주소 체계의 핵심인 서브넷 마스크의 원리와 역할을 설명합니다. 서브넷 마스크를 이용해 네트워크에서 사용 가능한 IP 주소 개수를 계산하고, 주어진 호스트 주소로부터 네트워크 주소(AND 연산)와 브로드캐스트 주소(NOT → OR 연산)를 거쳐 장치에 할당 가능한 IP 범위까지 구하는 방법을 /22처럼 셋째 자리가 바뀌는 예시와 함께 상세히 다룹니다. 서브넷 마스크 계산 문제를 통해 학습 내용을 점검할 수 있습니다.

헷갈리기 쉬운 용어 요약

용어설명
서브넷 마스크네트워크 주소 구하는데 사용
서브네팅(FLSM)서브넷 구하는데 사용

IP 주소의 기본 개념(IPv4/IPv6, 네트워크/호스트/브로드캐스트 주소)은 IP 주소에서 확인하세요.

서브넷 마스크

서브넷 마스크 문제는 IPv4 주소 문제만 나옵니다.(IPv6일 경우 너무 길어짐)

IPv4 주소는 32비트로 구성되어 있으며, 8비트씩 4개로 나눕니다. 각 8비트는 0~255 범위의 10진수로 표현되어 IP주소는 0.0.0.0 ~ 255.255.255.255 까지 표현할 수 있습니다.


서브넷 마스크를 쓰는 이유

서브넷 마스크를 쓰면 IP주소 고갈을 해결할 수 있다고 오해할 수 있지만 사실이 아닙니다.

IPv4에 의한 IP 주소 총량은 정해져있습니다. (대략 43억개 정도입니다.)

2011년 이미 IPv4 주소는 모두 소진되었습니다.

현재 IP 주소 할당 방법

이로 인해 신규 서비스, 모바일의 경우 IPv6가 할당되거나 기존 할당한 IPv4 주소가 중고 거래되고 있습니다. 또한 NAT 기술이 적용되어 공유 아이피가 사설 IP 주소(192.168.x.x)를 사용할 수 있게 되어 IPv4 주소를 절약할 수 있게 되었습니다.

이렇게 빠르게 IPv4가 소진된 이유는 PC, 스마트폰 등 기기들의 급속한 증가 때문이기도 하지만 IPv4를 임대하는 기존 방식도 문제였습니다.

기존 방식인 클래스 할당 방식은 국가, 초대형 기업에 한 번에 많은 IP 주소(약 1650만개)를 임대하는 방식이었습니다.

서브넷 마스크 감자
IP주소를 잘게 나눠서 할당할 수 있도록 해주는게 서브넷 마스크의 장점

서브넷 마스크는 IPv4 주소를 더 잘게 나누어서 임대할 수 있도록 해줍니다.


IP 주소를 임대해보자

제가 192.168.1.0 ~ 192.168.255.255 까지의 IP 주소를 갖고 있다고 가정해보겠습니다.

A기업에 256개의 IP 주소를 임대해주고 싶습니다. 192.168.1.0 ~ 192.168.1.255 까지의 IP 주소를 임대해주면 될겁니다.

이 때 이렇게 임대해주면 됩니다.

"A기업은 192.168.1.0 네트워크 주소를 사용하세요. 서브넷 마스크는 255.255.255.0 입니다."

감자 집주인이 네트워크 주소와 서브넷 마스크가 적힌 계약서를 A기업 감자에게 건네는 모습
임대 계약서에는 늘 두 줄이 한 세트입니다
위 문장에서 네트워크 주소는 뭘까요? IP주소와 같은 걸까요?

IP 주소 종류

IP 주소는 네트워크 주소, 호스트 주소, 브로드캐스트 주소로 나눌 수 있습니다. (자세히 보기)

"A기업은 192.168.1.0 네트워크 주소를 사용하세요."

이 문장을 통해 A기업은 192.168.1.0 이 내가 할당받은 네트워크의 대표 주소임을 알게 됩니다.

서브넷 마스크가 255.255.255.0일 때 네트워크 주소, 호스트 주소, 브로드캐스트 주소 범위
끝자리 0은 네트워크, 255는 브로드캐스트, 그 사이가 호스트

그렇다면 "서브넷 마스크는 255.255.255.0 입니다." 라는 문장은 무엇을 의미할까요?


서브넷 마스크는 임대받은 기업이 사용할 수 있는 주소의 범위를 결정한다

255.255.255.0 은 2진수로 11111111.11111111.11111111.00000000 이 됩니다.

뒤의 0의 개수가 사용할 수 있는 주소의 범위를 결정합니다. 2진수로 00000000 에서 11111111 까지의 모든 조합을 IP주소로 사용할 수 있는 것이죠.

IP 주소의 네트워크 부분과 호스트 부분, 그 경계를 표시하는 서브넷 마스크의 1과 0
나뉘는 건 IP 주소, 마스크는 그 자리를 가리킬 뿐입니다

서브넷 마스크는 앞부분이 1, 뒷부분이 0으로 구성됩니다.

여기서 헷갈리기 쉬운 점이 있습니다. 네트워크 부분과 호스트 부분으로 나뉘는 것은 마스크가 아니라 IP 주소입니다. 서브넷 마스크는 IP 주소에서 "여기까지가 네트워크 부분이고, 나머지는 호스트 부분입니다"라는 경계를 표시해주는 자(ruler)입니다. 주소를 자르는 도구가 아니라, 주소 옆에 나란히 대보고 눈금을 읽는 도구입니다.

감자가 나무 자 모양의 서브넷 마스크를 IP 주소 막대에 대보며 눈금을 읽는 모습
마스크가 바뀌면 재는 자리도 바뀝니다

마스크의 1이 놓인 자리가 IP 주소의 네트워크 부분(같은 그룹 내 모든 장치가 동일), 0이 놓인 자리가 호스트 부분(각 장치에 할당하는 부분)입니다. 따라서 0의 개수가 곧 사용 가능한 주소의 범위를 결정합니다.

네트워크 부분과 호스트 부분
여기서 '네트워크'란 하나로 묶인 장치들의 그룹을 뜻합니다. 아파트로 비유하면 네트워크 부분은 '몇 동'(같은 그룹), 호스트 부분은 '몇 호'(그룹 안의 개별 장치)에 해당합니다.

1개 비트(2진수) 당 2가지 경우의 수(0 아니면 1)가 있죠.

위 서브넷 마스크 11111111.11111111.11111111.00000000에서 호스트 부분의 0이 8개이므로, 8개의 비트를 사용할 수 있습니다. 따라서 28=2562^8 = 25628=256개의 IP 주소를 임대해줄 수 있습니다.

다른 예시를 들어볼까요? 만약 서브넷 마스크가 255.255.255.224 라면 어떨까요?

255.255.255.224 를 2진수로 바꾸면 11111111.11111111.11111111.11100000 이 됩니다.

뒤의 0의 개수가 5개 이므로 IP주소를 결정하는데 사용할 수 있는 비트는 5개 입니다.

따라서 25=322^5 = 3225=32개의 IP 주소를 사용할 수 있습니다.


문제 - 서브넷에 포함된 전체 IP 주소 개수 구하기

문제를 불러오는 중이에요.

B기업이 사용하는 네트워크 주소 구하기

이번에는 B기업에게 IP 주소를 임대해주면서 이렇게 이야기했다고 해봅시다.

"B기업은 192.168.1.123이 포함된 IP주소를 사용하세요. 서브넷 마스크는 255.255.255.192 입니다."

이 때 B기업이 사용하는 네트워크 주소는 뭘까요?

네트워크 주소는 호스트 부분이 모두 0인 주소입니다. 따라서 호스트 부분을 모두 0으로 만들어주면 네트워크 주소를 구할 수 있습니다.

서브넷 마스크는 네트워크 부분 자리가 1, 호스트 부분 자리가 0으로 구성되어 있습니다. 이 값을 IP 주소와 AND 연산하면 호스트 부분이 모두 0이 되므로 네트워크 주소가 됩니다.

AND 연산은 두 비트가 모두 1일 때만 1이 되는 계산법입니다.

IP 주소 192.168.1.123과 서브넷 마스크 255.255.255.192를 2진수로 바꿔 AND 연산하면 다음과 같습니다.

text
코드 하이라이팅 중…

|는 서브넷 마스크의 1과 0의 경계, 즉 네트워크 부분과 호스트 부분의 경계를 표시합니다. | 왼쪽(네트워크 부분)은 IP 주소의 원래 값이 유지되고, | 오른쪽(호스트 부분)은 모두 0이 된 것을 볼 수 있습니다.

감자가 호스트 부분 6비트를 롤러로 0으로 칠해 네트워크 주소를 만드는 모습
호스트 부분을 0으로 칠하면 네트워크 주소

이 2진수 11000000.10101000.00000001.01000000를 10진수로 바꾸면 192.168.1.64가 됩니다.

따라서 B기업이 사용하는 네트워크 주소는 192.168.1.64 입니다.

추가로 B기업이 임대받은 전체 IP 주소의 개수는 64개입니다. 문제 - 서브넷에 포함된 전체 IP 주소 개수 구하기와 서브넷 마스크가 동일하니, 임대받은 전체 IP 주소의 개수도 같습니다. 전체 주소 범위는 192.168.1.64 ~ 192.168.1.127입니다. 이때 192.168.1.64는 네트워크 주소이고 192.168.1.127은 브로드캐스트 주소이므로 실제 장치에 할당하지 않습니다. 따라서 장치에 할당할 수 있는 호스트 주소는 192.168.1.65 ~ 192.168.1.126까지 총 62개입니다. 이 계산 순서는 할당 가능 범위 구하기에서 한 번에 정리합니다.


호스트 주소와 서브넷 마스크로 네트워크 주소 구하기

방금은 그냥 IP 주소로 192.168.1.123을 이야기했는데 이건 결국 호스트 주소입니다.(네트워크 주소, 브로드캐스트 주소가 아니라면 호스트 주소니까요. 헷갈리면 여기로)

호스트 주소와 서브넷 마스크가 있다면 방금처럼 네트워크 주소를 유추해낼 수 있습니다.


문제 - 호스트 주소와 서브넷 마스크로 네트워크 주소 구하기

문제를 불러오는 중이에요.

네트워크 주소와 서브넷 마스크로 브로드캐스트 주소 구하기

브로드캐스트 주소는 호스트 부분이 모두 1인 주소입니다. 따라서 호스트 부분을 모두 1로 채워주면 브로드캐스트 주소를 구할 수 있습니다.

서브넷 마스크를 반전(NOT)시키면 호스트 부분만 1인 마스크가 됩니다. 이 값을 OR 연산하면 호스트 부분이 모두 1로 채워지므로 브로드캐스트 주소가 됩니다.

반전(NOT)은 1은 0으로, 0은 1로 만드는 연산입니다. OR 연산은 두 비트 중 하나라도 1이면 1이 되는 계산법입니다.

서브넷 마스크(11111111.11111111.11111111.11000000)를 반전시키면 00000000.00000000.00000000.00111111이 됩니다.

이 반전된 서브넷 마스크를 네트워크 주소와 OR 연산하면:

text
코드 하이라이팅 중…

| 오른쪽(호스트 부분)이 모두 1로 채워진 것을 볼 수 있습니다.

감자가 호스트 부분 6비트를 롤러로 1로 칠해 브로드캐스트 주소를 만드는 모습
이번엔 1로 칠하면 브로드캐스트 주소

호스트 주소와 OR 연산해도 동일한 결과가 나옵니다:

text
코드 하이라이팅 중…

두 경우 모두 10진수로 223.13.234.191이 됩니다.

왜 네트워크 주소든 호스트 주소든 결과가 같을까?

반전된 서브넷 마스크는 호스트 부분이 모두 1입니다. OR 연산에서 1과 연산하면 상대 값이 무엇이든 결과는 항상 1이 됩니다.

즉, 호스트 부분은 네트워크 주소(모두 0)든 호스트 주소(어떤 값이든)든 상관없이 OR 연산 후 모두 1로 채워집니다.

반대로 네트워크 부분은 반전된 서브넷 마스크가 모두 0이므로, OR 연산 결과는 원래 값이 그대로 남습니다. 네트워크 주소와 호스트 주소의 네트워크 부분은 동일하기 때문에 결과도 같습니다.

문제 - 호스트 주소와 서브넷 마스크로 네트워크 주소 구하기의 상황을 가져와서 브로드캐스트 주소를 구해봅시다.


문제 - 호스트 주소와 서브넷 마스크로 브로드캐스트 주소 구하기

문제를 불러오는 중이에요.

할당 가능 범위 구하기

네트워크 주소와 브로드캐스트 주소를 구했다면 마지막 한 단계가 남습니다. 실제 장치(PC, 스마트폰 등)에 나눠줄 수 있는 할당 가능 범위입니다.

네트워크 주소와 브로드캐스트 주소는 장치에 할당할 수 없으므로 두 주소 사이에 있는 주소만 할당할 수 있습니다.

할당 가능 범위 = (네트워크 주소 + 1) ~ (브로드캐스트 주소 - 1)
맨 앞 128번 네트워크 주소 좌석과 맨 뒤 191번 브로드캐스트 좌석은 비워두고 가운데 129~190에 장치 감자가 앉은 모습
맨 앞과 맨 뒤는 예약석, 가운데만 장치에게

지금까지 배운 계산을 순서대로 이어 붙이면 다음과 같습니다.

순서계산결과
1IP 주소 AND 서브넷 마스크네트워크 주소
2네트워크 주소 OR 반전(NOT)된 서브넷 마스크브로드캐스트 주소
3네트워크 주소 + 1 ~ 브로드캐스트 주소 - 1할당 가능 범위

예시 - 서브넷 마스크 255.255.255.192

앞에서 구한 C기업의 결과를 그대로 이어 보겠습니다. 호스트 주소는 223.13.234.132, 서브넷 마스크는 255.255.255.192였습니다.

구하는 것결과
네트워크 주소223.13.234.128
브로드캐스트 주소223.13.234.191
할당 가능 범위223.13.234.129 ~ 223.13.234.190

전체 주소 64개 중 네트워크 주소와 브로드캐스트 주소 2개를 뺀 62개를 장치에 할당할 수 있습니다.

서브넷 마스크가 255.255.255.0이면 더 단순합니다. 호스트 부분이 마지막 자리 8비트 전체라서 네트워크 주소의 마지막 자리는 0, 브로드캐스트 주소의 마지막 자리는 255가 됩니다. 예를 들어 호스트 주소가 192.168.35.3이면 할당 가능 범위는 192.168.35.1 ~ 192.168.35.254입니다.

두 예시 모두 앞의 세 자리(223.13.234, 192.168.35)는 그대로이고 마지막 자리만 계산하면 됩니다.


예시 - 서브넷 마스크 255.255.252.0

이번에는 서브넷 마스크의 셋째 자리가 255가 아닌 경우입니다. 호스트 부분이 셋째 자리까지 들어오기 때문에 셋째 자리도 계산해야 합니다. 계산 순서는 똑같습니다.

호스트 주소 129.200.10.16, 서브넷 마스크 255.255.252.0인 경우를 구해봅시다. CIDR 표기법으로는 129.200.10.16/22라고 쓰며, /22는 서브넷 마스크의 1이 22개라는 뜻입니다.

서브넷 마스크 255.255.252.0을 2진수로 바꾸면 11111111.11111111.11111100.00000000입니다. 0이 10개이므로 셋째 자리의 뒤 2비트와 넷째 자리 8비트 전체가 호스트 부분입니다.

1단계 - 네트워크 주소 (AND 연산)

text
코드 하이라이팅 중…

셋째 자리 00001010(10)의 뒤 2비트가 0이 되어 00001000(8)으로 바뀝니다. 네트워크 주소는 129.200.8.0입니다.

마지막 자리만 0으로 바꾼 129.200.10.0은 네트워크 주소가 아닙니다. 셋째 자리에도 호스트 부분이 2비트 들어 있기 때문입니다.

2단계 - 브로드캐스트 주소 (NOT → OR 연산)

서브넷 마스크를 반전(NOT)하면 00000000.00000000.00000011.11111111입니다. 이 값을 네트워크 주소와 OR 연산합니다.

text
코드 하이라이팅 중…

셋째 자리의 뒤 2비트까지 1로 채워져 00001011(11)이 되고, 넷째 자리는 11111111(255)이 됩니다. 브로드캐스트 주소는 129.200.11.255입니다.

3단계 - 할당 가능 범위

  • 시작: 네트워크 주소 129.200.8.0에 1을 더한 129.200.8.1
  • 끝: 브로드캐스트 주소 129.200.11.255에서 1을 뺀 129.200.11.254

할당 가능 범위는 129.200.8.1 ~ 129.200.11.254 입니다. 호스트 비트가 10개이므로 전체 주소는 210=10242^{10} = 1024210=1024개이고, 이 중 2개를 뺀 1022개를 할당할 수 있습니다.

이 네트워크는 129.200.8.0부터 129.200.11.255까지 1024개 주소가 하나로 이어진 범위입니다. 그래서 할당할 수 없는 주소는 이 범위의 맨 처음(129.200.8.0)과 맨 끝(129.200.11.255) 두 개뿐입니다. 중간에 끼어 있는 129.200.8.255나 129.200.9.0은 끝자리가 255, 0이어도 평범한 주소입니다.

129.200.8.0/22 범위의 양 끝만 할당 불가이고, 8과 9 블록 경계에 붙은 8.255와 9.0은 둘 다 할당 가능하다는 확대 그림
경계에 붙은 이웃 주소일 뿐, 8.255와 9.0 모두 할당할 수 있습니다

2진수로 확인해 보면, 호스트 부분 10비트가 모두 0(네트워크 주소)이거나 모두 1(브로드캐스트 주소)인 주소는 맨 처음과 맨 끝뿐입니다.

주소호스트 부분 (10비트)할당 여부
129.200.8.000.00000000 (모두 0)불가 (네트워크 주소)
129.200.8.25500.11111111가능
129.200.9.001.00000000가능
129.200.11.25511.11111111 (모두 1)불가 (브로드캐스트 주소)
끝자리가 0이나 255여도 할당할 수 있는 주소가 있습니다.
255.255.255.0에서는 끝자리 0과 255가 곧 네트워크 주소와 브로드캐스트 주소라서 '끝자리 0·255는 할당 불가'로 외우기 쉽습니다. 하지만 /22처럼 범위가 여러 블록에 걸치면, 할당할 수 없는 주소는 범위 전체의 맨 처음과 맨 끝 두 개뿐입니다.

AND/OR 연산 대신 시험장에서 빠르게 푸는 단축 기법은 서브넷 마스크 블록 크기(Block Size)에서 이어집니다.


정보처리기사 실기 대비 문제

문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
메가커피와 함께, 홈페이지 개선에 참여하세요! ☕
혹시 이용에 불편한 점이나 개선이 필요한 부분을 발견하셨나요? 댓글로 알려주시면 더 나은 감자가 될 수 있어요! 🥔 제보해주신 모든 분께 메가커피 기프티콘을 드립니다! (본인 이메일로 댓글 달아주셔야해요~)

관련 글

(21개)
제목태그업데이트시험
라우터 인터페이스 IP 주소 구하기
IP네트워크/OSIP
2026-10-20-
서브넷 마스크 블록 크기(Block Size)
IP네트워크/OSIP
2026-10-14-
CIDR 표기법과 프리픽스 길이
IP네트워크/OSIP
2026-10-23-
IP7개
제목태그업데이트시험
라우터 인터페이스 IP 주소 구하기
IP네트워크/OSIP
2026-10-20-
서브넷 마스크 블록 크기(Block Size)
IP네트워크/OSIP
2026-10-14-
CIDR 표기법과 프리픽스 길이
IP네트워크/OSIP
2026-10-23-
IP 주소
IP네트워크/OSIP
2026-09-30-
IP 정보처리기사 실기 모의 시험
IP네트워크/OSIP
2025-10-25응시
서브넷팅(Subnetting)
IP네트워크/OSIP
2026-09-27-
라우팅 프로토콜 IGP, EGP 종류
라우팅 프로토콜네트워크/OSIP라우팅 프로토콜
2026-10-20-
네트워크/OS14개
제목태그업데이트시험
가상 메모리 - 페이지, 프레임, 페이지 테이블
메모리/프로세스네트워크/OS메모리/프로세스
2026-09-27-
OSI 7계층 - 계층별 역할과 PDU 한눈에 정리
네트워크 7계층네트워크/OS네트워크 7계층
2026-07-03-
Shell Script 정보처리기사 실기 모의 시험
Shell Script네트워크/OSShell Script
2026-01-24응시
Unix/Linux 기본 명령어 정리 (pwd, ls, cd, cp, mv, rm)
shell script네트워크/OSshell script
2026-01-11-
네트워크/OS 왕감자 정보처리기사 실기 모의 시험
네트워크/OS네트워크/OS
2025-11-04응시
리눅스 chmod 명령어 사용법 (8진수 권한 설정)
chmod네트워크/OSshell scriptchmod
2025-10-13-
데이터 링크 프로토콜과 오류 제어
네트워크 7계층네트워크/OS네트워크 7계층
2026-10-20-
메모리/프로세스 정보처리기사 실기 모의 시험
메모리/프로세스네트워크/OS메모리/프로세스
2025-10-03응시
네트워크 계층 프로토콜
네트워크 7계층네트워크/OS네트워크 7계층
2026-10-22-
네트워크 전송 방식: 패킷 교환 vs 서킷 교환
네트워크 7계층네트워크/OS네트워크 7계층
2026-10-22-
네트워크 7계층 정보처리기사 실기 모의 시험
네트워크 7계층네트워크/OS네트워크 7계층
2025-10-03응시
메모리 페이지 교체 알고리즘
메모리/프로세스네트워크/OS메모리/프로세스
2026-09-27-
응용 계층 프로토콜
네트워크 7계층네트워크/OS네트워크 7계층
2026-10-23-
프로세스 스케줄링 알고리즘
메모리/프로세스네트워크/OS메모리/프로세스
2026-10-20-

댓글

댓글을 불러오고 있어요
정처기 감자정처기 감자

정보처리기사 합격
도와줄라고 하는 감자

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매
© 2025 재현기획개발. All rights reserved.
  • 정처기 감자의 시작
  • 업데이트 로그
  • 개인정보 처리방침
  • 이용약관
상호명 : 재현기획개발 / 주소: 서울특별시 영등포구 영등포로 150, 지하1층 108호 L145 가라지(당산동1가, 생각공장 당산) / 대표: 김재현 / 전화: 010-8158-7127 / 통신판매업신고: 제2025-서울영등포-1569호 / 이메일: contact@edugamja.com / 사업자등록번호: 573-51-00999