localhost 와 127.0.0.1 의 차이? 루프백 주소?
localhost는 127.0.0.1 은 무슨 차이가 있을까?
같은 것이라고 알고 있었는데, 각각이 의미하는 것이 무엇인지에 대해 궁금해져 알아보게 되었다.
localhost 와 127.0.0.1
현재 나는 리액트, 플라스크로 웹 플랫폼을 구축 중인데, 이 때 localhost:3000 을 주로 사용한다.
localhost는 자기 자신이라고 주로 말하는데, local(지역) + host(호스트)로 자신의 컴퓨터를 의미한다.
여기서 localhost의 ip주소가 127.0.0.1 이다.
localhost는 우리가 웹 브라우저에서 입력하는 사이트 주소와 같은 www.naver.com 과 같은 것이고,
127.0.0.1은 www.naver.com 입력 시, DNS를 통해 ip 주소로 변환되어 125.209.222.141로 바뀌어 통신 가능해지게 되는데,
이러한 ip 주소라고 이해하면 쉽다.
127.0.0.1은 루프백 IP 주소라고 하는데, 루프백이 무엇일까?
루프백 IP 주소
- 장치가 자기 자신과 통신할 수 있도록 하는 특수한 IP 주소를 일컫는다.
- 소프트웨어 개발, 테스트 환경에서 일반적으로 사용된다.
- 이 루프백 IP 주소는 항상 동일하며 127.0.0.1 , 최신 IPv6에서는 ::1 이다.
특징
- 장치가 루프백 IP 주소로 데이터를 보낼 때는 물리적 네트워크 인터페이스를 통해 전송되지 않으며, 장치의 운영체제 내에서 내부적으로 라우팅된다.
- 예를 들어 지금 나의 맥북에서 실행 중엔 웹 서버는 웹 브라우저에 localhost:80 주소를 사용하여 접근할 수 있고, 같은 맥북 내에서 실행중엔 데이터베이스에도 루프백 IP 주소를 통해 연결할 수 있다.
결론적으로 둘은 같다.
다만, 항상 외우기 어려운 ip 숫자 조합을 사용자가 알기 쉽게 작성된 것이 localhost이고,
이를 DNS를 통해 실제 ip 주소로 변환된 것이 127.0.0.1 인 것이다.
참고
https://velog.io/@lky9303/127.0.0.1-%EA%B3%BC-localhost%EC%9D%98-%EC%B0%A8%EC%9D%B4