📚FOS Study
홈카테고리
홈카테고리

카테고리

  • AI 페이지로 이동
    • RAG 페이지로 이동
    • agents 페이지로 이동
    • BMAD Method — AI 에이전트로 애자일 개발하는 방법론
    • Claude Code의 Skill 시스템 - 개발자를 위한 AI 자동화의 새로운 차원
    • Claude Code 멀티 에이전트 — Teams
    • 멀티모달 LLM (Multimodal Large Language Model)
  • architecture 페이지로 이동
    • 캐시 설계 전략 총정리
    • 디자인 패턴
    • 분산 트랜잭션
  • css 페이지로 이동
    • FlexBox 페이지로 이동
  • database 페이지로 이동
    • mysql 페이지로 이동
    • opensearch 페이지로 이동
    • redis 페이지로 이동
    • 김영한의-실전-데이터베이스-설계 페이지로 이동
    • 커넥션 풀 크기는 얼마나 조정해야할까?
    • 인덱스 - DB 성능 최적화의 핵심
    • 역정규화 (Denormalization)
    • 데이터 베이스 정규화
  • devops 페이지로 이동
    • docker 페이지로 이동
    • k8s 페이지로 이동
    • k8s-in-action 페이지로 이동
    • monitoring 페이지로 이동
  • go 페이지로 이동
    • Go 언어 기본 학습
  • http 페이지로 이동
    • HTTP Connection Pool
  • interview 페이지로 이동
    • 210812 페이지로 이동
    • 뱅크샐러드 AI Native Server Engineer
    • CJ 올리브영 지원 문항
    • CJ 올리브영 커머스플랫폼유닛 Back-End 개발 지원 자료
    • 마이리얼트립 - Platform Solutions실 회원주문개발 Product Engineer
    • NHN 서비스개발센터 AI서비스개발팀
    • nhn gameenvil console backend 직무 인터뷰 준비
    • 면접을 대비해봅시다
    • Tossplace Node.js Developer
    • 토스플레이스 Node.js 백엔드 컬처핏
  • java 페이지로 이동
    • jdbc 페이지로 이동
    • opentelemetry 페이지로 이동
    • spring 페이지로 이동
    • spring-batch 페이지로 이동
    • 더_자바_코드를_조작하는_다양한_방법 페이지로 이동
    • Java의 로깅 환경
    • MDC (Mapped Diagnostic Context)
    • OpenTelemetry 란 무엇인가?
    • Java StampedLock — 읽기 폭주에도 쓰기가 밀리지 않는 락
    • Virtual Thread와 Project Loom
  • javascript 페이지로 이동
    • Data_Structures_and_Algorithms 페이지로 이동
    • Heap 페이지로 이동
    • typescript 페이지로 이동
    • AbortController
    • Async Iterator와 제너레이터
    • CommonJS와 ECMAScript Modules
    • 제너레이터(Generator)
    • Http Client
    • Node.js
    • npm vs pnpm 선택기준은 무엇인가요?
    • `setImmediate()`
  • kafka 페이지로 이동
    • Kafka 기본
    • Kafka를 사용하여 **데이터 정합성**은 어떻게 유지해야 할까?
    • 메시지 전송 신뢰성
  • linux 페이지로 이동
    • fsync — 리눅스 파일 동기화 시스템 콜
    • tmux — Terminal Multiplexer
  • network 페이지로 이동
    • L2(스위치)와 L3(라우터)의 역할 차이
    • L4와 VIP(Virtual IP Address)
    • IP Subnet
  • react 페이지로 이동
    • JSX 페이지로 이동
    • VirtualDOM 페이지로 이동
    • v16 페이지로 이동
  • task 페이지로 이동
    • ai-service-team 페이지로 이동
    • nsc-slot 페이지로 이동
    • the-future-company 페이지로 이동
📚FOS Study

개발 학습 기록을 정리하는 블로그입니다.

바로가기

  • 홈
  • 카테고리

소셜

  • GitHub
  • Source Repository

© 2025 FOS Study. Built with Next.js & Tailwind CSS

목록으로 돌아가기
🔌network

IP Subnet

약 2분
2026년 1월 30일
GitHub에서 보기

IP Subnet

IP 주소를 "집 주소"라고 생각해보자

예: 192.168.1.23

이 주소는 사실 두 부분으로 구성돼 있음:

  1. 네트워크(Network): 어떤 동네인가?
  2. 호스트(Host): 그 동네 안의 어떤 집인가?

즉, [네트워크 부분] + [호스트 부분] 으로 되어 있음

그런데, IP 주소만 보면 어디까지가 핑계고 어디까지가 집 번호인지 모름
그래서 등장하는 게 CIDR 표기

CIDR 표기란?

예: 192.168.1.0/24

여기서 /24가 무슨 뜻이냐?

"앞에서 부터 24비트를 네트워크 주소로 사용한다"라는 뜻

IP는 32비트니까

네트워크 24비트 | 호스트 8비트
  • 같은 /24 안에 있는 애들은 같은 네트워크에 소속
  • 호스트 8비트 -> 2^8 = 256개의 주소 가능

그래서 /24를 256개 주소를 가진 네트워크(Subnet) 라고 부르는 거야

그럼 Subnet은 뭐야?

Subnet = Sub + Network
즉 큰 네트워크를 더 작은 네트워크로 쪼갠 것

예를 들어,
원래 회사 전체 네트워크가 이렇게 생겼다고 해보자

192.168.0.0 ~ 192.168.255.255 (엄청 큼)

근데 이걸 그대로 쓰면?

  • 어떤 PC가 어느 팀 소속인지 파악 불가능
  • 네트워크 관리 어려움
  • 브로드캐스트 트래픽 폭발
  • 보안 분리도 불가

그래서 "팀별로 쪼개자!" 하고 만드는 게 Subnet

192.168.1.0/24 -> 개발팀
192.168.2.0/24 -> 운영팀
192.168.3.0/24 -> 인프라팀

왜 Subnet을 나누는 거야? (핵심 3가지)

  • 1. 보안 분리

    • 개발팀 네트워크와 운영팀 네트워크를 격리
    • 서로 직접 접근 못하게 방화벽 규칙 설정 가능
  • 2. 성능 향상

    • 브로드 캐스트 도메인이 작아짐 -> 네트워크 안정
  • 3. 관리 편의

    • 팀별, 서비스별 IP 관리 가능
    • 예: AWS에서 VPC 안에
      • public subnet
      • private subnet
      • db subnet
      • 이런 걸 나누는 이유도 이것 때문

자세하게 설명하면

같은 Subnet에 있으면?

  • 스위치를 통해 L2에서 바로 통신 가능

다른 Subnet이면?

  • 반드시 라우터(L3) 를 거처야 함
  • (AWS에서는 IGW, NAT GW, Route Table 같은 게 이것)
  • 그래서 네트워크 구조를 잡을 때, Subnet을 어떻게 쪼개느냐가 매우 중요함
network 카테고리의 다른 글 보기수정 제안하기

댓글

댓글을 불러오는 중...
목차
  • IP Subnet
  • IP 주소를 "집 주소"라고 생각해보자
  • CIDR 표기란?
  • 그럼 Subnet은 뭐야?
  • 왜 Subnet을 나누는 거야? (핵심 3가지)
  • 자세하게 설명하면
  • 같은 Subnet에 있으면?
  • 다른 Subnet이면?