127.0.0.1과 localhost는 주로 애플리케이션 서버 테스트 용도로 사용하는 주소다. 이 주소로 url 요청을 하면 패킷이 자기 자신 컴퓨터한테 돌아온다. 그래서 루프백(loopback) 주소라고 부른다. 이 주소를 이용하면 네트워크로 다른 컴퓨터에 패킷을 보내지 않고도 서버 컴퓨터 자체적으로 TCP/IP 통신을 확인할 수 있기 때문에 다른 컴퓨터와의 통신 없이도 기능 테스트가 가능하다.
127.0.0.1 사용 이유
앞서 언급한 것처럼 애플리케이션 테스트에 사용한다. 예를 들어 80 포트에 웹서버를 올렸다고 치자. 그럼 그 페이지에 접속할 수 있는지, 페이지 안에서 다른 메뉴로 이동할 수 있는지를 확인해야 된다. 이럴 때 서버를 올린 컴퓨터에서
http://127.0.0.1:80
처럼 url을 요청하면 개발한 웹 페이지를 띄울 수 있다.
테스트 목적 말고도 127.0.0.1 주소는 같은 서버에 있는 다른 서비스에 요청할 때도 사용할 수 있다. 예를 들어 앱서버와 DB서버가 비즈니스 로직을 처리할 때 서버 to 서버 통신을 해야할텐데 만약 애플리케이션 서비스와 DBMS가 같은 서버에 있으면 굳이 real IP를 안 적고 127.0.0.1 IP로도 요청을 보낼 수가 있다.
127.0.0.1 / localhost 차이
헷갈리는 것이 어떤 경우엔 127.0.0.1을 쓰기도 하고 localhost를 쓰기도 하는데 결론부터 말하면 같은 목적과 의미로 쓰인다. localhost는 127.0.0.1 IP를 찾아가는 도메인이기 때문이다. PC에 있는 hosts 파일보면 확인할 수가 있다. 주석(#) 처리되어 있긴하지만 기본적으로 localhost는 127.0.0.1 IPv4 주소에 매핑되어 있는 걸 볼 수가 있다.
정리하면 둘은 같은 의미로 쓰이고 127.0.0.1 자리에 localhost를 써도 그 결과 역시 같지만 엄밀히 말하면 루프백을 나타내는 가장 정확한 주소는 IPv4 그 자체인 127.0.0.1이다.