
네트워크 인터페이스 깊이 알기: localhost, 루프백 주소, 로컬 네트워킹 파헤치기
컴퓨터를 사용하다 보면 localhost, 127.0.0.1, 또는 내 컴퓨터의 로컬 IP 주소를 직접 입력하는 경우를 종종 마주하게 되는데요.
언뜻 보기에는 이 세 가지 방법 모두 내 컴퓨터 자신을 가리키는 것 같은데, 왜 이렇게 다른 표현 방식들이 존재하는 걸까요.
그리고 이들 사이에는 어떤 차이점이 있는 걸까요.
비슷해 보이지만 사실은 꽤 중요한 차이점들이 있습니다.
또한, 공인(Public) 네트워크와 사설(Private) 네트워크, 네트워크 인터페이스 카드(NIC), IP 주소 사이의 관계에 대해 헷갈릴 수도 있는데요.
지금부터 이 모든 궁금증을 명쾌하게 풀어드리겠습니다.
내 컴퓨터의 IP 주소 (로컬 머신 IP)
우리 컴퓨터 메인보드(motherboard)에는 여러 종류의 네트워크 인터페이스 카드(NIC, Network Interface Card)가 내장되어 있는데요.
일반적으로 다음과 같은 유형으로 나눌 수 있습니다.
가상 NIC (루프백)
주의: 이것은 물리적인 장치가 아닌 가상의 네트워크 인터페이스입니다.
'로컬 루프백 주소(local loopback address)' 또는 인터페이스라고도 불리며, 보통 127.0.0.1 주소를 사용합니다.
유선 NIC / 이더넷 카드 (Ethernet Card)
이더넷(Ethernet), 즉 우리가 흔히 말하는 랜(LAN, Local Area Network) 환경에서 사용됩니다.
보통 '네트워크 카드'라고 하면 이 종류를 의미하며, 네트워크 케이블(랜선)을 통해 네트워크에 연결됩니다.
무선 NIC (WLAN)
무선 랜(WLAN, Wireless Local Area Network) 환경에서 사용되는 네트워크 카드입니다.
노트북에 주로 내장되어 있으며, 이더넷 카드처럼 물리적인 케이블 없이 전파 기술을 사용하여 네트워크에 연결됩니다.
이 각각의 네트워크 인터페이스에는 '내 컴퓨터의 IP 주소'가 할당됩니다.
localhost는 특별한 도메인 이름입니다.
가장 먼저 알아야 할 것은, localhost는 IP 주소가 아니라 특별한 도메인 이름(domain name)이라는 점입니다 (점(.)으로 끝나는 접미사가 없습니다).
기본적으로 localhost는 내 컴퓨터의 로컬 IP 주소, 즉 127.0.0.1로 해석(resolve)됩니다.
localhost가 어떤 IP 주소로 해석될지는 로컬 컴퓨터의 hosts 파일에 의해 관리됩니다.
원한다면 hosts 파일을 수정하여 localhost를 공인 IP 주소나 다른 어떤 IP 주소로든 해석되도록 설정할 수도 있습니다.
하지만 대부분의 경우 기본적으로 다음과 같이 해석됩니다.
- IPv4:
127.0.0.1 - IPv6:
[::1]
hosts 파일의 위치는 보통 다음과 같습니다.
- 윈도우(Windows):
C:\Windows\System32\drivers\etc - 맥OS(macOS)/리눅스(Linux):
/etc/hosts
127.0.0.1은 내 컴퓨터를 위한 예약된 사설 IP 주소입니다.
127.0.0.1은 로컬 루프백 주소(local loopback address)를 나타내는 사설 IP 주소(private IP address)입니다.
본질적으로 이것은 가상 NIC(루프백 인터페이스)에 할당된 IP 주소라고 할 수 있습니다.
루프백 주소(Loopback Address)란 무엇일까요.
루프백 주소는 호스트(host, 즉 컴퓨터)가 자기 자신과 통신하기 위해 사용하는 특별한 주소입니다 (즉, 특별한 목적지 주소입니다).
만약 같은 컴퓨터 내에서 실행되는 두 개의 서비스가 통신할 때, 컴퓨터에 할당된 실제 IP 주소 대신 루프백 주소를 사용하면 TCP/IP 프로토콜 스택(protocol stack)의 하위 계층들을 거치지 않고 통신할 수 있습니다.
즉, 이 통신은 링크 계층(Link Layer), 물리 계층(Physical Layer)이나 이더넷(Ethernet) 장치를 통과할 필요 없이, 네트워크 계층(Network Layer)과 전송 계층(Transport Layer) 내부에서 바로 처리될 수 있다는 의미입니다.
네트워크 번호가 127로 시작하는 주소 대역은 실제 네트워크 주소가 아닙니다.
이 범위의 주소로 보내진 IP 패킷(packet)은 외부 네트워크 인터페이스로 전송되지 않고 호스트 내부에 머무릅니다.
따라서 127.0.0.1은 로컬 TCP/IP 스택(stack)이 제대로 설치되어 있는지 테스트하는 데 자주 사용되는 예약된 주소 중 하나입니다.
만약 이 주소로 ping 명령을 보내 성공적으로 응답을 받는다면, 컴퓨터가 네트워크에 연결되어 있는지 여부와 관계없이 네트워크 인터페이스 카드(NIC)와 IP 프로토콜(protocol) 스택(stack)이 올바르게 설치되어 작동하고 있다는 것을 의미합니다.
사실, IPv4에서는 (몇 가지 예외를 제외하고) 127.0.0.0/8 서브넷 전체, 즉 127.x.x.x 범위의 모든 주소를 루프백 테스트용으로 예약해 두었습니다.
127.0.0.1은 이 범위에 속하는 주소 중 하나일 뿐입니다.
이 범위 내의 어떤 주소로든 ping을 보내거나 웹 브라우저(web browser) 주소창에 입력하여 로컬 웹 서비스에 접근할 수 있습니다.
0.0.0.0과의 비교
127.0.0.1과 종종 혼동되는 또 다른 IP 주소는 0.0.0.0인데요.
이 주소는 127.0.0.1과는 다른 의미로 컴퓨터 자신을 나타내며, 주로 서버 설정과 같은 다른 맥락에서 사용됩니다.
0.0.0.0 사용 예시
예를 들어 어떤 컴퓨터에 두 개의 NIC가 있다고 가정해 봅시다.
- 하나는 공인 IP(Public IP)를 사용하여 인터넷에 연결되어 있습니다.
- 다른 하나는 사설 IP(Private IP)를 사용하여 로컬 네트워크(LAN)에 연결되어 있습니다.
만약 이 컴퓨터에서 웹 서비스를 실행하고, 외부 인터넷 사용자와 내부 로컬 네트워크 사용자 모두가 이 서비스에 접근할 수 있도록 허용하고 싶다면, 웹 서버 설정을 0.0.0.0 주소에서 리스닝(listening)하도록 구성할 수 있습니다.
이렇게 하면 해당 컴퓨터가 가진 모든 네트워크 인터페이스의 IP 주소를 통해 들어오는 요청을 받아들일 수 있게 됩니다.
localhost, 로컬 머신 IP, 127.0.0.1의 차이점 정리
세 가지 방식의 주요 차이점을 정리하면 다음과 같습니다.
네트워크 연결 필요 여부
localhost와127.0.0.1은 네트워크 연결이 활성화되어 있지 않아도 사용할 수 있습니다.
컴퓨터가 완전히 오프라인 상태라도 이 주소들에 접근하면 로컬 시스템으로 해석됩니다.- 로컬 머신 IP (유선 및 무선 네트워크 IP)는 해당 네트워크 인터페이스가 활성화된 네트워크 연결을 필요로 합니다.
이 IP 주소들이 외부에서 내 컴퓨터로 접근할 수 있게 해주는 실제 주소입니다.
접근 범위
localhost는 오직 로컬 컴퓨터 내부에서만 접근 가능합니다.127.0.0.1역시 로컬 컴퓨터 내부에서만 접근 가능합니다.- 로컬 머신 IP는 로컬 컴퓨터 내부에서도 접근 가능하고, (방화벽 등 설정에 따라) 외부에서도 접근 가능합니다.
도메인 vs. IP 주소
localhost는 도메인 이름이며, 기본적으로127.0.0.1로 해석됩니다.- 로컬 머신 IP는 컴퓨터의 물리적인 NIC에 할당된 실제 IP 주소로, 외부 장치들이 이 주소를 통해 해당 컴퓨터에 접근할 수 있습니다.
127.0.0.1은 루프백 인터페이스에 할당된 IP 주소입니다.
로컬 네트워크(LAN)에서의 사용
같은 로컬 영역 네트워크(LAN) 내의 다른 컴퓨터들은, 같은 서브넷(subnet)에 있다면 해당 컴퓨터에 할당된 로컬 머신 IP 주소(사설 IP)를 사용하여 접속할 수 있습니다.
하지만 localhost나 127.0.0.1은 오직 해당 컴퓨터 내부에서만 유효하므로, 다른 컴퓨터에서 이 주소들을 사용하여 접속할 수는 없습니다.
네트워크 인터페이스(NIC) 주소와 IP 주소
네트워크 통신을 이해하기 위해 NIC 주소와 IP 주소의 차이를 아는 것이 중요합니다.
NIC 주소 (MAC 주소)
NIC 주소는 MAC 주소(MAC Address, Media Access Control Address)라고도 불리며, 네트워크 장치를 고유하게 식별하는 데 사용되는 물리적 주소 또는 하드웨어 주소입니다.
OSI 7계층 모델(OSI model) 기준으로 보면 다음과 같습니다.
- 네트워크 계층(Network Layer, Layer 3)은 IP 주소를 담당합니다.
- 데이터 링크 계층(Data Link Layer, Layer 2)은 MAC 주소를 담당합니다.
각 MAC 주소는 전 세계적으로 유일하며, 네트워크 카드가 공장에서 생산될 때 할당됩니다.
마치 주민등록번호가 각 사람을 고유하게 식별하는 것과 비슷합니다.
IP 주소 (IP Address)
IP 주소(Internet Protocol Address)는 네트워크 상에서 사용되는 논리적 주소입니다.
MAC 주소와 달리 IP 주소는 고정된 것이 아니라 네트워크 설정에 따라 변경될 수 있습니다.
요약
- MAC 주소: NIC에 할당된, 변경 불가능한 고유한 물리적 주소입니다.
- IP 주소: NIC에 할당된, 변경 가능한 논리적 주소입니다.
컴퓨터의 IP 주소와 MAC 주소를 확인하려면 명령 프롬프트(Command Prompt)나 터미널(Terminal)에서 다음 명령어를 사용하면 됩니다.
(윈도우 기준)
ipconfig /all
공인 IP와 사설 IP
IP 주소는 크게 공인 IP와 사설 IP로 나눌 수 있습니다.
IP 주소를 통한 장치 접근 방식
127.0.0.1→ 내 컴퓨터 자신에게 접근합니다.- 사설 IP → 같은 로컬 네트워크(LAN) 내의 다른 장치에 접근합니다.
- 공인 IP → 인터넷 상의 다른 장치에 접근합니다.
공인 IP 주소 (Public IP Address, 인터넷 IP)
회사나 집에서 인터넷을 사용하려면 인터넷 서비스 제공업체(ISP, Internet Service Provider, 예: KT, SKT, LGU+)로부터 인터넷 회선을 받아야 합니다.
이때 ISP는 공인 IP 주소를 할당해 주는데, 이 주소를 통해 내부 네트워크의 장치들이 인터넷에 접근할 수 있게 됩니다.
- 공인 IP 주소는 인터넷 NIC(Internet Network Information Center)와 같은 기관에서 할당하고 관리합니다.
- 공인 IP를 가진 장치는 원칙적으로 인터넷 어디에서든 직접 접근이 가능합니다.
(방화벽 설정에 따라 달라질 수 있습니다). - 공인 IP는 광역 네트워크(WAN, Wide Area Network)의 일부입니다.
사설 IP 주소 (Private IP Address, LAN IP)
사설 IP 주소는 회사나 가정과 같은 내부 네트워크(로컬 네트워크, LAN)에서 장치들을 연결하기 위해 사용됩니다.
이 주소들은 인터넷 상에서는 라우팅(routing, 경로 설정)될 수 없으며, 외부 인터넷 망에 접근하려면 NAT(Network Address Translation, 네트워크 주소 변환) 기술을 통해 공인 IP 주소로 변환되어야 합니다.
- 사설 IP는 내부 네트워크용으로 정의되었으며, 인터넷에서 직접 접근할 수 없습니다.
- 사설 IP를 사용하는 장치가 인터넷에 접속하려면, 사설 IP를 공인 IP로 변환해주는 NAT 게이트웨이(gateway, 주로 공유기나 라우터가 이 역할을 합니다)를 거쳐야 합니다.
공인 네트워크와 사설 네트워크 간의 접근
사설 네트워크에서 공인 네트워크로 접근 (LAN → Internet)
사설 네트워크(LAN)의 장치가 공인 네트워크(인터넷)에 접근하려면, SNAT(Source NAT) 과정을 거쳐야 합니다.
출발지 IP 주소(사설 IP)를 게이트웨이의 공인 IP 주소로 바꾸어 인터넷으로 나가는 방식입니다.
- ISP가 관리하는 공인 인터넷 망은 공인 IP 주소들로 구성됩니다.
- 사설 IP는 인터넷에서 라우팅되지 않으므로, NAT를 통해 변환되지 않으면 인터넷 통신이 차단됩니다.
공인 네트워크에서 사설 네트워크로 접근 (Internet → LAN)
반대로 공인 네트워크(인터넷) 상의 장치가 사설 네트워크(LAN) 내부의 특정 장치에 접근하려면, DNAT(Destination NAT), VPN(Virtual Private Network, 가상 사설망), 또는 포트 포워딩(Port Forwarding)과 같은 기술이 필요합니다.
외부에서 들어오는 요청의 목적지 IP 주소(공인 IP)와 포트 번호(port number)를 내부 사설 IP 주소와 포트 번호로 매핑(mapping)시켜주는 방식입니다.
사설 네트워크 간의 통신
만약 서로 다른 위치에 있는 두 개의 사설 네트워크가 공인 인터넷 망을 통해 안전하게 통신해야 한다면, VPN(Virtual Private Network)을 사용할 수 있습니다.
인터넷 상에 암호화된 가상의 터널을 만들어 마치 같은 네트워크에 있는 것처럼 통신하게 해줍니다.
내부 네트워크와 외부 네트워크
- 내부 네트워크(Internal Network, LAN)는 본질적으로 사설 네트워크입니다.
- 외부 네트워크(External Network, WAN)는 공인 인터넷 망뿐만 아니라 다른 사설 네트워크까지 포함할 수 있는 더 넓은 개념입니다.
핵심 정리:
- "공인 네트워크(Public Network)"와 "외부 네트워크(External Network)"는 완전히 같은 의미는 아닙니다.
- 간단하게는 공인 네트워크 = 외부 네트워크, 사설 네트워크 = 내부 네트워크라고 생각할 수도 있지만, 기술적으로는 약간의 차이가 있습니다.
전체 IP 주소 범위
IP 주소(IPv4 기준)는 크게 5개의 클래스(Class)로 나뉘며, 각 클래스별 주소 범위는 다음과 같습니다.
- 클래스 A:
1.0.0.1–127.255.255.254 - 클래스 B:
128.0.0.1–191.255.255.254 - 클래스 C:
192.0.0.1–223.255.255.254 - 클래스 D:
224.0.0.0–239.255.255.255(멀티캐스트(multicast) 용도로 예약됨) - 클래스 E:
240.0.0.0–255.255.255.255(미래 사용을 위해 예약됨)
이 중에서 인터넷에서 일반적으로 사용되는 것은 클래스 A, B, C입니다.
- 클래스 D는 멀티캐스트 통신에 사용됩니다.
- 클래스 E는 미래 및 실험적인 목적으로 예약되어 있습니다.
특수 목적의 IP 주소들
0.0.0.0→ 현재 호스트(컴퓨터) 자신을 나타냅니다.
(주로 서버 설정에서 '모든 IP 주소'를 의미)255.255.255.255→ 현재 서브넷(subnet)의 모든 장치에게 보내는 브로드캐스트(broadcast) 주소입니다.- 클래스 E IP (첫 비트 패턴 11110) → 실험적인 목적으로 예약되어 있습니다.
- 루프백 주소 (
127.x.x.x) → 로컬 루프백 테스트를 위해 예약되어 있습니다.
(예: 로컬 웹 서버 테스트를 위한127.0.0.1) - 네트워크 ID(Network ID)는 0으로 시작할 수 없습니다.
(0.0.0.0은 로컬 네트워크를 의미)
공인 IP 주소 범위
클래스 A, B, C 내에서 공인 IP 주소로 사용되는 대역은 다음과 같습니다.
(사설 IP 대역 제외)
클래스 A 공인 IP
1.0.0.0–9.255.255.25511.0.0.0–126.255.255.255
클래스 B 공인 IP
128.0.0.0–172.15.255.255172.32.0.0–191.255.255.255
클래스 C 공인 IP
192.0.0.0–192.167.255.255(192.168.x.x 제외)192.169.0.0–223.255.255.255
사설 IP 주소 범위
다음 IP 주소 대역들은 사설 네트워크용으로 예약되어 있으며, 인터넷 상에서 라우팅될 수 없습니다.
- 클래스 A 사설 IP:
10.0.0.0–10.255.255.255(10.0.0.0/8) - 클래스 B 사설 IP:
172.16.0.0–172.31.255.255(172.16.0.0/12) - 클래스 C 사설 IP:
192.168.0.0–192.168.255.255(192.168.0.0/16)
이 주소들은 인터넷 관리 기관에서 할당하는 것이 아니며, 내부 네트워크에서 자유롭게 사용할 수 있도록 약속된 대역입니다.
비록 이 주소들로는 인터넷과 직접 통신할 수 없지만, NAT(네트워크 주소 변환) 기술을 통해 사설 네트워크의 장치들이 공인 인터넷 망에 접속하는 것은 가능합니다.
프린터, 관리형 스위치(managed switch), 스마트 기기 등 많은 내부 네트워크 장치들도 부족한 공인 IP 자원을 절약하기 위해 사설 IP 주소를 사용합니다.
서브네트워크와 로컬 영역 네트워크 (LAN)
서브네트워크(Subnet)란 무엇일까요.
서브넷(Subnet)은 컴퓨터 네트워크의 일부를 의미하며, 같은 물리적인 네트워크 장치(예: 스위치 또는 허브)를 공유하는 구역을 말합니다.
같은 서브넷 내의 컴퓨터들은 서로 직접 통신할 수 있습니다.
로컬 영역 네트워크(LAN)란 무엇일까요.
랜(LAN, Local Area Network)은 제한된 지역(예: 사무실, 건물, 가정집) 내에서 서로 연결된 여러 장치들로 구성된 네트워크입니다.
하나의 LAN은 여러 개의 서브넷(subnet)을 포함할 수 있습니다.
- 만약 LAN 내의 모든 장치들이 같은 서브넷(subnet)에 속해 있다면, 이들은 서로 직접 통신할 수 있습니다.
- VLAN(Virtual Local Area Network, 가상 랜) 기술을 사용하면 하나의 LAN을 논리적으로 여러 개의 서브넷(subnet)으로 나눌 수도 있습니다.
장치들은 같은 서브넷 내에서만 직접 통신할 수 있습니다.
같은 서브넷(subnet)에 속한 장치들은 서로 직접 데이터를 주고받을 수 있습니다.
하지만 만약 두 장치가 서로 다른 서브넷(subnet)에 있다면, 이들은 직접 통신할 수 없고 중간에서 라우터(Router)를 통해 통신해야 합니다.
라우터가 서로 다른 네트워크(서브넷) 간의 길 안내 역할을 해주기 때문입니다.
두 IP 주소가 같은 서브넷에 속하는지 어떻게 알 수 있을까요.
두 개의 IP 주소가 같은 서브넷(subnet)에 속하는지 확인하려면 서브넷 마스크(subnet mask)를 사용해야 합니다.
확인 방법은 다음과 같습니다.
- IP 주소와 서브넷 마스크(subnet mask)를 각각 2진수로 변환합니다.
- IP 주소의 2진수 값과 서브넷 마스크(subnet mask)의 2진수 값에 대해 비트 단위 AND 연산을 수행합니다.
(두 비트가 모두 1일 때만 결과가 1이 되고, 그 외에는 0이 됩니다). - 두 IP 주소에 대해 계산된 결과값(네트워크 ID)을 비교합니다.
만약 결과값이 동일하다면, 두 IP 주소는 같은 서브넷(subnet)에 속하는 것입니다.
예시 1
- IP 주소 1:
192.168.1.1 - 서브넷 마스크:
255.255.255.0 - IP 주소 2:
192.168.1.2 - 서브넷 마스크:
255.255.255.0
분석: 두 주소 모두 AND 연산 결과 네트워크 ID가 192.168.1.0으로 동일합니다.
따라서 두 IP는 같은 서브넷(subnet)에 속합니다.
(CIDR 표기: 192.168.1.0/24)
예시 2
- IP 주소 1:
192.168.1.1 - 서브넷 마스크:
255.255.255.0 - IP 주소 2:
192.168.1.2 - 서브넷 마스크:
255.255.0.0
분석: 언뜻 보기에는 비슷해 보이지만, 서브넷 마스크(subnet mask)가 다릅니다.
- IP 주소 1의 네트워크 ID는
192.168.1.0입니다.
(CIDR: 192.168.1.0/24) - IP 주소 2의 네트워크 ID는
192.168.0.0입니다.
(CIDR: 192.168.0.0/16)
네트워크 ID가 다르므로, 두 IP는 같은 서브넷(subnet)에 속하지 않습니다.
예시 3
- IP 주소 1:
192.168.1.1 - 서브넷 마스크:
255.255.252.0 - IP 주소 2:
192.168.2.1 - 서브넷 마스크:
255.255.252.0
분석: 예시 1과 달리 서브넷 마스크(subnet mask)가 255.255.252.0 입니다.
이 서브넷 마스크(subnet mask)를 사용하여 계산하면, 두 IP 주소 모두 네트워크 ID가 192.168.0.0으로 동일하게 나옵니다.
따라서 두 IP는 같은 서브넷(subnet)에 속합니다.
(CIDR: 192.168.0.0/22, 이 서브넷은 192.168.0.1부터 192.168.3.254까지의 IP를 포함합니다).
최종 정리
localhost, 127.0.0.1, 로컬 IP, 공인 IP, 사설 IP의 개념과 차이를 이해하는 것은 네트워킹과 시스템 관리에 있어 매우 중요합니다.
핵심 내용을 다시 한번 정리하면 다음과 같습니다.
localhost는 도메인 이름입니다 (기본적으로127.0.0.1로 해석됨).127.0.0.1은 로컬 테스트를 위한 루프백 주소입니다.- 로컬 IP는 외부 접근을 허용할 수 있지만,
127.0.0.1과localhost는 그렇지 않습니다. - 공인 IP는 인터넷 상에서 라우팅 가능하며, 사설 IP는 내부 네트워크에서 사용됩니다.
- 서브넷 마스크(subnet mask)는 두 IP 주소가 같은 서브넷(subnet)에 속하는지 결정합니다.
- 서로 다른 서브넷(subnet) 간의 통신에는 라우터(router)가 필요합니다.
이러한 기본 원리들을 이해하면 네트워크 환경을 설정하거나 문제를 해결하는 데 큰 도움이 될 것입니다.
'Etc' 카테고리의 다른 글
| '좋은 테스트 코드'를 망치는 4가지 안티패턴과 DAMP 원칙 (0) | 2025.09.01 |
|---|---|
| 2025년 옵저버빌리티(Observability) 트렌드 완전 정복: 통합 플랫폼, 엣지 확장, 그리고 AI 기반 통찰력! (미래를 미리보는 기 (0) | 2025.05.07 |
| 레디스(Redis) 메모리 초과! 당황하지 마세요, 대처법과 정책 완벽 정리 (1) | 2025.05.06 |
| macOS에서 숨겨진 터미널 명령어들: 생산성을 높여줄 필수 도구 (0) | 2024.11.07 |
| 웹 퍼블리싱의 미래: 정적 사이트 vs 동적 사이트 (2) | 2024.10.09 |