정적 IP 주소 vs 동적 IP 주소

david1-p·2025년 11월 17일

CS 지식 창고

목록 보기
19/25
post-thumbnail

정적 IP 주소 vs 동적 IP 주소: 백엔드 개발자를 위한 핵심 정리

네트워크에서 호스트(컴퓨터, 서버 등)에게 IP를 할당하는 방식은 크게 정적(Static) 할당 방식동적(Dynamic) 할당 방식으로 나뉩니다. 백엔드 시스템을 구성할 때 이 두 가지 방식의 차이점을 이해하는 것은 매우 중요합니다.


1. 정적 IP 주소 할당 (Static IP Allocation)

정적 할당 방식은 호스트에게 IP 주소를 수동으로 직접 설정하는 것을 의미합니다.

일반적으로 IP를 정적으로 할당하기 위해서는 다음 정보가 필요합니다.

  • 부여하고자 하는 IP 주소
  • 네트워크의 서브넷 마스크 (Subnet Mask)
  • 게이트웨이 (Gateway) 주소
  • DNS 서버 주소

정적 할당의 한계:
만약 모든 IP 주소를 정적으로만 할당한다면, 호스트(장비)의 수가 많아질수록 IP 할당 작업이 매우 번거로워질 수 있습니다. 또한, 관리자가 실수로 중복된 IP를 입력하는 등 실수를 유발할 가능성이 큽니다.


2. 동적 IP 주소 할당 (Dynamic IP Allocation)

동적 할당 방식은 정적 할당의 번거로움을 해결하기 위해 등장했습니다. 이름 그대로 IP를 자동으로 할당하는 방식이며, 주로 DHCP(Dynamic Host Configuration Protocol)라는 프로토콜을 사용합니다.

  • 작동 방식: DHCP는 네트워크 내에서 사용하지 않는 IP를 찾아 호스트에게 '임대(Lease)' 해주는 방식으로 작동합니다.
  • 주요 특징: 동적 할당 방식을 사용하는 경우, IP 주소가 고정적이지 않으며 임대 기간 만료 등에 따라 바뀔 가능성이 존재합니다.
  • 버전: IPv4 환경에서는 DHCPv4, IPv6 환경에서는 DHCPv6가 사용됩니다.

3. DHCP는 어떻게 IP를 할당할까? (DORA 4단계)

DHCP를 이용한 IP 주소 할당 과정은 호스트(클라이언트)DHCP 서버(보통 라우터) 간의 통신으로 이루어집니다. 이 과정은 DORA라고 불리는 4단계로 요약할 수 있습니다.

1) Discover (탐색)

호스트는 "DHCP 서버를 찾습니다"라는 Discover 메시지를 네트워크 전체에 브로드캐스팅(Broadcast)하여 DHCP 서버를 찾습니다.

2) Offer (제안)

Discover 메시지를 수신한 DHCP 서버는 "이 IP 주소를 사용하세요"라는 Offer 메시지를 호스트에게 전송합니다. 이 메시지에는 호스트에게 할당해 줄 IP 주소임대 기간(Lease Time)이 포함되어 있습니다.

3) Request (요청)

호스트는 여러 서버로부터 Offer를 받을 수 있으며, 그중 하나를 선택하여 "이 IP 주소를 사용하겠습니다"라는 Request 메시지를 다시 브로드캐스팅합니다.

4) Acknowledgment (승인)

호스트의 요청을 받은 DHCP 서버는 "요청을 승인합니다"라는 ACK(Acknowledgment) 메시지를 호스트에게 전송하여 IP 임대를 최종 승인합니다.


4. IP 할당 완료 및 갱신

위의 4가지 과정이 모두 끝나면, 클라이언트는 할당받은 IP 주소를 자신의 IP 주소로 설정하고 정해진 임대 기간 동안 사용할 수 있습니다.

임대 기한이 만료되면 DHCP 과정을 다시 반복해야 하지만, 보통 만료되기 전에 DHCP 임대 갱신(DHCP Lease Renewal) 과정을 통해 임대 기간을 연장할 수 있습니다.


5. 백엔드 서버에 정적 IP를 사용하는 이유

그렇다면 DHCP를 통한 동적 할당이 편리함에도 불구하고, 왜 백엔드 서버(웹 서버, API 서버, 데이터베이스 서버 등)는 정적 IP를 사용하는 것이 일반적일까요?

가장 핵심적인 이유는 '신뢰성''접근성'입니다.

  • 고정된 주소의 필요성 (신뢰성): 백엔드 서버는 클라이언트나 다른 서비스가 요청을 보낼 수 있도록 항상 동일한 주소에 위치해야 합니다. 만약 서버의 IP가 DHCP에 의해 계속 바뀐다면, 클라이언트는 서버를 찾을 수 없게 됩니다. 이는 매일 주소가 바뀌는 상점과 같습니다.

  • DNS 및 도메인 연결: 우리는 보통 api.example.com과 같은 도메인 이름을 사용하여 서버에 접속합니다. DNS(Domain Name System)는 이 도메인 이름을 서버의 IP 주소로 변환해주는 역할을 합니다. 서버 IP가 정적이면, 이 DNS 레코드를 한 번만 설정해두면 됩니다. 하지만 IP가 동적으로 바뀐다면, 바뀔 때마다 DNS 레코드를 수동으로 또는 복잡한 (DDNS) 설정으로 갱신해야 하는 큰 문제가 발생합니다.

  • 서비스 간 의존성: 현대의 백엔드 아키텍처(예: 마이크로서비스)에서는 여러 서버가 서로 통신합니다. 예를 들어, 웹 서버는 데이터베이스 서버의 IP 주소를 알고 있어야 데이터를 요청할 수 있습니다. 만약 데이터베이스 서버의 IP가 동적으로 변경된다면, 웹 서버는 연결에 실패하고 전체 서비스가 중단될 것입니다.

  • 보안 및 방화벽 설정: 보안을 위해 방화벽에서는 특정 IP 주소의 접근만 허용하는 규칙(Access Control List)을 설정하는 경우가 많습니다. (예: "오직 '1.2.3.4' IP를 가진 관리자 서버만 DB 서버에 접근할 수 있다.") 서버의 IP가 정적이어야만 이러한 IP 기반 보안 규칙을 안정적으로 운영할 수 있습니다.

요약: 동적 IP는 네트워크에 '접속'하는 것이 목적인 클라이언트(사용자 PC, 스마트폰)에 적합하고, 정적 IP는 '서비스를 제공'하는 것이 목적인 서버에 필수적입니다.

profile
DONE IS BETTER THAN PERFECT.

0개의 댓글