본문 바로가기
프로그래밍

127.0.0.1 vs 0.0.0.0 vs localhost 차이점 정리해보자

by bantomak 2025. 1. 31.
반응형

127.0.0.1(루프백 주소, Loopback Address)

  • 자기 자신을 가리키는 IP 주소로, 루프백 주소라고 부른다.
  • 네트워크 인터페이스를 거치지 않고 자신의 로컬 네트워크 스택을 통해서만 통신한다.
  • 물리적인 네트워크 인터페이스 카드(NIC)를 사용하지 않으며, 소프트웨어적으로만 처리된다.

사용 목적

  • 네트워크 프로그램 개발 및 테스트 (예: 웹 서버, 데이터베이스 서버 등)
  • 자기 자신과의 네트워크 연결 테스트

0.0.0.0(와일드카드 주소, Wildcard Address)

  • 일반적으로 모든 네트워크 인터페이스를 의미하는 주소로 사용된다.
  • 특정한 네트워크 인터페이스에 국한되지 않고, 모든 사용 가능한 네트워크 인터페이스를 의미한다.
  • 서버가 바인딩(bind)될 때, 모든 IP 주소에서 들어오는 요청을 수락하도록 설정할 때 사용된다.
  • 네트워크 인터페이스가 아직 할당되지 않았거나, IP 주소가 없는 경우에도 0.0.0.0을 사용하여 의미를 전달할 수 있다.

사용 목적

  • 네트워크 서비스가 모든 IP에서 들어오는 요청을 수락하도록 설정할 때
  • 특정한 네트워크 인터페이스가 없거나 아직 설정되지 않은 경우(예: 부팅 중 IP 할당 전)
  • 방화벽 및 네트워크 라우팅 설정에서 특정하지 않은 모든 주소를 나타낼 때

localhost(로컬 호스트, Localhost)

  • localhost는 127.0.0.1을 가리키는 도메인 네임(domain name)이다.
  • localhost라는 이름은 /etc/hosts 또는 C:\Windows\System32\drivers\etc\hosts 파일에서 127.0.0.1로 매핑되어 있다.
  • 네트워크 인터페이스를 거치지 않고, 로컬 컴퓨터에서만 동작한다.

사용 목적

  • 자기 자신과의 네트워크 연결을 위한 테스트
  • 개발 환경에서 로컬 서버를 실행할 때
  • 보안상의 이유로 외부 접근을 막고, 내부에서만 접근하도록 설정할 때

각각의 특징을 정리

정리하자면

평소에 어렴풋하게만 알고있던 개념들에 대해서 한번 짚고 넘어가는 시간이 되었으면 좋겠다.

  • 127.0.0.1 : 자기 자신을 가리키는 루프백 주소
  • 0.0.0.0 : 모든 네트워크 인터페이스에서 요청을 수락하는 용도로 사용
  • localhost : 127.0.0.1을 가리키는 도메인 네임

댓글