Computer >> 컴퓨터 >  >> 네트워킹 >> 인터넷

localhost란 무엇일까? 127.0.0.1과의 차이점 쉽게 이해하기

localhost란 무엇일까? 127.0.0.1과의 차이점 쉽게 이해하기

루프백(Loopback)이란 무엇인가?

네트워크에 어떤 장치도 연결되어 있지 않더라도 컴퓨터는 여전히 통신을 주고받을 수 있습니다. 이를 '루프백(loopback)'이라고 부르며, 유닉스 계열 시스템은 가상 네트워크 장치를 통해 자기 자신에게 데이터를 보내고 받을 수 있습니다. 실제 네트워크가 작동하지 않는 상황에서도 네트워크 방식의 통신이 가능하도록 만들어 주는 메커니즘입니다.

127.0.0.1이란?

127.0.0.1은 가장 널리 사용되는 루프백 IP 주소입니다. 이 주소는 루프백 기능 전용으로 예약된 1,600만 개가 넘는 IP 주소 블록에 속해 있습니다. 루프백을 활용하면 컴퓨터가 네트워크 연결 프로토콜을 그대로 사용하면서 자기 자신과 통신할 수 있습니다.

localhost란 무엇일까? 127.0.0.1과의 차이점 쉽게 이해하기

개념적으로 설명하자면, 루프백은 엔드포인트가 하나뿐인 가상 네트워크 장치입니다. 즉, 통신의 시작과 끝이 모두 같은 장치, 바로 여러분의 컴퓨터에서 이루어집니다. 실제로 ipconfig 명령을 실행하면 위 이미지처럼 'lo'라는 이름의 루프백 인터페이스가 표시되는 것을 확인할 수 있습니다. 루프백 주소는 주로 문제 해결(마치 거울을 보는 것과 비슷합니다)이나 네트워크 인터페이스를 통해 로컬 리소스에 접근할 때 사용됩니다.

localhost란?

localhost란 무엇일까? 127.0.0.1과의 차이점 쉽게 이해하기

'localhost'는 통신을 시작한 서버, 즉 원래의 서버 자신에게 연결되는 통신 포트를 가리키는 용어입니다. 네트워크 연결이 자기 자신에게 되돌아오도록(루프백) 만들어, 실제 네트워크가 없거나 사용할 수 없는 환경에서도 네트워크 연결을 흉내 낼 수 있게 해줍니다. 실무에서는 localhost와 127.0.0.1을 사실상 같은 의미로 사용하지만, 엄밀히 말해 두 개념은 완전히 동일하지 않다는 점을 기억해야 합니다.

사용자가 입력한 문자열을 탐색 가능한 IP 주소로 변환하기 위해 DNS 요청을 보내기 전에, 운영체제는 먼저 HOSTS 파일에 별칭(alias)이나 리다이렉트 규칙이 있는지 확인합니다. 기본 설정으로 구성된 시스템에서는 URI에 포함된 'localhost'가 IPv4 환경에서는 127.0.0.1로, IPv6 환경에서는 ::1로 해석됩니다. 하지만 루프백 주소는 이 두 개뿐이 아닙니다. 루프백용으로 예약된 IP 주소 블록은 127.0.0.0부터 127.255.255.255까지 이어집니다.

앞서 언급했듯이 대부분의 경우 HOSTS 파일의 리다이렉트 규칙 덕분에 localhost는 127.0.0.1로 해석됩니다. 그러나 경우에 따라 localhost가 다른 IP 주소에 매핑될 수도 있습니다. 즉, localhost는 해당 블록 안의 어떤 IP 주소든 가리키도록 설정할 수 있으며, 그 경우에도 동일하게 작동합니다.

결론: localhost와 127.0.0.1의 차이점

대부분의 컴퓨터에서 localhost와 127.0.0.1은 기능적으로 동일합니다. 하지만 localhost는 IP 주소 그 자체가 아니라 주소를 가리키는 라벨(label)이라는 점이 핵심적인 차이입니다. localhost는 다른 IP 주소를 가리키도록 변경할 수 있고, 심지어 예약된 주소 블록 밖의 임의의 IP 주소도 지정할 수 있습니다. HOSTS 파일은 이를 제한하지 않습니다. 다만 그렇게 설정하면 시스템의 중요한 기능이 손상되고, localhost 연결에 의존하는 애플리케이션이 오류를 일으킬 수 있습니다.

루프백 주소 블록으로 127 대역이 선택된 이유는, 해당 대역이 00000001부터 01111111까지의 이진 값을 갖는 A 클래스(Class A) 주소 중 마지막 블록이었기 때문입니다. IPv6에서 루프백 주소는 첫 번째 주소인 0:0:0:0:0:0:0:1이며, 일반적으로 축약형인 ::1로 표기됩니다.

윈도우 환경에서 유닉스 계열 시스템으로 넘어온 사용자라면, 루프백이 사실상 localhost와 같은 의미로 사용된다는 점을 눈치챘을 것입니다. HOSTS 파일을 수정해 'loopback'이라는 이름이 127.0.0.1을 가리키도록 설정할 수도 있지만, 이는 어디까지나 단순한 텍스트 치환에 불과합니다.