127.0.0.1 — box 떠나지 않는 loopback
127.0.0.1 은 loopback 주소. 항상 "이 머신, 바로 여기" 를 의미. 이리로 보낸 패킷은 네트워크 안 닿아 — 커널 안에서 바로 되돌아와. 127.0.0.0/8 대역 전체 (1600 만 주소) 가 loopback 으로 예약돼 있지만 관습상 127.0.0.1 만 씀.
localhost 는 그냥 hostname 인데 /etc/hosts 통해 127.0.0.1 에 매핑. dev server 가 "running at http://localhost:5173" 찍을 때 그 loopback 에 bind — 같은 머신의 프로그램만 연결 가능.
0.0.0.0 — 모든 인터페이스에 bind
0.0.0.0 은 연결하는 주소가 아니야. 특별한 binding 주소 — "이 머신의 모든 인터페이스에서 연결 받겠다" 는 뜻. 서버가 0.0.0.0:3000 에 listen 하면 다음 다 받아:
- Loopback (127.0.0.1)
- LAN IP (192.168.1.42)
- Tailscale IP (100.64.x.x)
- 그 외 어느 인터페이스든
vs 127.0.0.1:3000 은 loopback 만 받음 — 다른 장치한테 안 보여.
이게 끊임없이 중요한 이유
대부분의 dev server 가 안전하게 둘 중 하나를 기본값으로 가져가. Vite 는 localhost 만 기본. FastAPI 는 localhost 만 기본. 폰이나 LAN 의 다른 머신에서 테스트 하려면 binding 을 0.0.0.0 으로 뒤집어야 해 — 그리고 그 네트워크의 다른 사람도 네 dev server 칠 수 있다는 거 받아들여야 해.