localhost와 127.0.0.1 차이점
들어가며
우리가 개발하다 보면 로컬 서버를 실행시킬 때 127.0.0.1을 입력해서 들어갈 때가 있고 localhost를 쳐서 들어가야 할 때가 있다. 그래서 이 둘의 차이점은 뭔지 혹은 왜 통일이 안 되는지 알아보려고 한다.
localhost
“localhost”는 컴퓨터 네트워킹에서 사용하는 호스트 명이다. 이것은 네트워크에서 현재 기기를 가리킨다. 보통, localhost는 IP 주소 127.0.0.1로 매핑되며, 이는 루프백 네트워크 인터페이스를 가리킨다. 루프백 인터페이스는 자신의 메시지를 다시 자신에게 보내는 네트워크 인터페이스를 말한다. 따라서 localhost로 보내는 모든 트래픽은 컴퓨터가 네트워크에 연결되어 있지 않아도 해당 컴퓨터 내에서 처리된다.
“localhost” 뒤에 오는 숫자들은 “포트 번호”이다. 포트 번호는 네트워크 서비스를 식별하는 데 사용되며, IP 주소와 함께 사용되어 특정 호스트 내의 특정 프로세스나 서비스를 가리킨다. TCP/IP 프로토콜에서는 포트 번호를 0에서 65535 사이에서 할당한다.
예를 들어, 웹 서버는 일반적으로 80 포트(또는 보안 연결에 대해 443 포트)를 사용하며, 메일 서버는 25 포트를 사용한다. 따라서 “localhost:3000”이라고 적혀 있다면, 이것은 현재 컴퓨터의 3000번 포트를 사용하는 서비스나 애플리케이션이다. 많은 개발 환경에서는 테스트 서버를 localhost의 비표준 포트(3000, 8000, 8080 등)에서 실행한다.
127.0.0.1
127.0.0.1은 “localhost”라고도 알려져 있으며, 이는 컴퓨터 네트워킹에서 사용하는 특별한 IP 주소이다. 이 IP 주소는 “loopback” 주소라고도 하며, 컴퓨터가 자기 자신을 참조할 수 있게 한다.
IP 주소 127.0.0.1에 데이터를 보내면, 네트워크를 통해 외부로 나가는 것이 아니라 그 컴퓨터 안에서 “돌아서” 다시 해당 컴퓨터로 돌아온다. 이를 이용하면 네트워크 연결 없이도 네트워크 연결이 있는 것처럼 소프트웨어를 테스트하거나 디버깅할 수 있다.
또한, 이 주소는 개발자가 로컬 컴퓨터에서 서버 소프트웨어를 실행하고 테스트하기 위해 자주 사용된다. 예를 들어, 웹 개발자가 웹사이트를 만들 때, 그들은 먼저 그 웹사이트를 127.0.0.1 (localhost)에서 실행하여 작동 여부를 확인하고 이후에 웹에 배포할 수 있다.
loopback?
루프백(loopback)은 네트워킹에서 사용되는 개념으로, 데이터를 송신한 같은 장치로 다시 되돌려 보내는 방식이다. 루프백 인터페이스는 통신 네트워크와 물리적으로 연결되어 있지 않지만, 네트워킹 소프트웨어와 함께 작동하도록 설계된 가상 네트워크 인터페이스이다.
루프백은 여러 가지 용도로 사용이 되고 있다. 우선 네트워킹 구현을 테스트하고 디버깅하는 데 도움이 된다. 루프백 주소로 전송된 패킷은 네트워크 인터페이스를 거치지 않고 직접 장치로 되돌아오므로, 소프트웨어가 올바르게 작동하는지 확인하는 데 사용할 수 있다. 또한 서버 애플리케이션 개발할때도 유용하다. 개발자는 물리적 네트워크 연결 없이 자신의 시스템에서 서버와 클라이언트를 모두 실행할 수 있다. 혹은 호스트 자체에 서비스를 제공하거나 네트워크 연결 없이 네트워크 서비스에 액세스하는데 사용된다.
루프백 주소는 IPv4에서는 127.0.0.1, IPv6에서는 ::1로 표현됩니다. 이러한 주소는 각 호스트에서 자신을 가리키는 데 사용되며, ‘localhost’라는 이름으로도 알려져 있다.
그래서 뭐가 다른데?
‘localhost’와 ‘127.0.0.1’은 사실상 동일한 역할을 하는데, 컴퓨터 네트워킹에서 자기 자신을 가리키는 IP 주소이다. 이 두 용어의 주요 차이점은 표현 방식에 있다.
‘localhost’는 사람이 이해하기 쉬운 도메인 이름 형태로, 이는 호스트 파일에 의해 ‘127.0.0.1’로 해석된다. 즉, 컴퓨터가 ‘localhost’를 볼 때, 이를 ‘127.0.0.1’로 번역하여 자기 자신을 참조한다.
반면에, ‘127.0.0.1’은 숫자 형태의 IP 주소로, 컴퓨터 네트워크에서 장치를 식별하는 데 사용된다. 이는 IPv4 네트워킹 표준에 따라 자기 주소로 사용되는 루프백 네트워크 인터페이스를 나타낸다.
‘localhost’와 ‘127.0.0.1’ 모두 개발자가 자신의 컴퓨터에서 네트워크 연결을 테스트하거나 서버 애플리케이션을 로컬에서 실행할 때 많이 사용된다. 예를 들어, 웹 개발자는 자신의 컴퓨터에서 웹 서버를 실행하고 ‘localhost’ 또는 ‘127.0.0.1’을 웹 브라우저에 입력하여 웹 애플리케이션을 테스트한다.
‘localhost’와 ‘127.0.0.1’은 기본적으로 같은 역할을 하는데, 이들은 컴퓨터 네트워킹에서 ‘자기 자신’을 참조하는 역할을 합니다. 그렇다면 이 둘의 주요 차이점은 무엇이냐? 그것은 바로 표현 방식이다.
먼저, ‘localhost’는 도메인 이름의 형태로, 사람이 이해하기 쉬운 방식으로 표현되어 있다. 컴퓨터는 이 ‘localhost’를 보고, 자신을 가리키는 IP 주소인 ‘127.0.0.1’로 해석한다. 이 과정은 일반적으로 컴퓨터의 호스트 파일에 의해 수행된다.
반면에, ‘127.0.0.1’은 IP 주소의 형태로 표현된다. 이것은 컴퓨터 네트워크에서 각 장치를 식별하는 데 사용되는 주소로, IPv4 네트워킹 표준에 따른 루프백 네트워크 인터페이스를 나타낸다.
그렇다면 이 두 가지는 어떻게 활용되는 걸까? 일반적으로 개발자들은 자신의 컴퓨터에서 네트워크 연결을 테스트하거나 서버 애플리케이션을 로컬에서 실행하는 데 ‘localhost’나 ‘127.0.0.1’을 사용한다. 웹 개발자라면, 웹 서버를 로컬에서 실행하고 웹 브라우저에 ‘localhost’ 또는 ‘127.0.0.1’을 입력하여 웹 애플리케이션을 테스트하는 것이 일반적인 예이다.
결국, ‘localhost’와 ‘127.0.0.1’ 사이의 가장 큰 차이점은 표현의 차이에 불과하다. ‘localhost’는 사람이 이해하기 쉽도록 설계된 도메인 이름이며, ‘127.0.0.1’는 이에 대응하는 숫자 형태의 IP 주소이다. 이러한 이해를 바탕으로, 컴퓨터 네트워킹을 더욱 효과적으로 이해하고 활용할 수 있을 것이다.
따라서 이 둘 사이의 가장 큰 차이점은 단순히 표현의 차이라는 것을 알 수 있다. ‘localhost’는 알기 쉬운 도메인 이름이며, ‘127.0.0.1’은 이에 대응하는 IP 주소이다.
마치며
어렵지 않다. 결론은 내 PC의 local 주소이다. localhost = 127.0.0.1인 거다.
댓글남기기