Network

localhost 와 127.0.0.1 차이

Nowon9159 2023. 8. 1. 15:56
반응형

보통 서버를 구성한 후 api 통신을 이용할 때 localhost:포트 형식으로 테스트를 진행하곤 한다.
ex) swagger, web

통신하는 방법 및 차이가 궁금해서 정리를 해 보았다.

 

정의

우리가 보통 서버와 서버 간 통신을 진행하게 되면 IP to IP 로 하게 되는데 (DNS 구성하지 않은 경우) 왜 localhost라는 네임으로 통신이 되는건가?

윈도우 환경을 예시로 들면 C:\Windows\System32\drivers\etc 위치에 있는 hosts 파일에 있다.
(리눅스에선 /etc/hosts)

Windows OS hosts 파일

OS를 많이 다뤄본 사람은 알겠지만 localhost 로 접근 시 127.0.0.1 로 접근 하도록 도와주는 동작을 한다.

왜? 127.0.0.1 로 기억하는 것보다 localhost 로 기억하는 게 기억하기 쉽고 브라우저에 입력 시에도 빠르기 때문에

또한 localhost 또는 127.0.0.1 로 접근하는 것을 루프백이라고 한다.

이러한 루프백은 컴퓨터 내부에 하드웨어 형태가 아닌 소프트웨어 형태로 동작하고 컴퓨터 자신과 통신할 수 있도록 사용되는 컴퓨터의 가상 네트워크 인터페이스이다. 

무조건 적으로 localhost가 127.0.0.1로 치환되는 것은 아니고 해당 설정을 127.0.0.1에서 다른 IP로 변경 해주면 다른 IP로 통신된다.

 

내 생각

결과적으로 localhost 나 127.0.0.1 이나 통신하는 것은 동일하게 내 PC내에 있는 애플리케이션 (ex // swagger, web) 등에 접근하기 위한 통신.

localhost는 127.0.0.1 이 기본적으로는 맞으나 무조건 적인 것은 아님. 소프트웨어 적으로 가상의 네트워크 인터페이스를 만들어 내부적으로 통신하게끔 만들어줌.

/etc/hosts 파일을 통해 이 또한 변경 가능

 

[참조] : 

https://velog.io/@lky9303/127.0.0.1-%EA%B3%BC-localhost%EC%9D%98-%EC%B0%A8%EC%9D%B4

https://www.tutorialspoint.com/difference-between-localhost-and-127-0-0-1#:~:text=The%20most%20significant%20difference%20between,look%20up%20a%20table%20somewhere.

반응형