프로그래밍이나 서버를 공부하다 보면 ‘localhost’라는 단어를 정말 자주 보게 된다. 웹사이트를 만들 때도, 서버를 실행할 때도, 브라우저 주소창에 localhost를 입력하는 일이 많다.
예를 들어 아래처럼 주소를 본 적이 있을 수 있다.
http://localhost:3000
또는:
http://127.0.0.1
처음 보면 둘 다 숫자도 이상하고, 도대체 왜 이런 주소를 쓰는지 헷갈린다. 나도 처음에는 localhost가 인터넷 어딘가에 있는 특별한 서버 주소인 줄 알았다. 그런데 알고 보니 localhost는 “지금 내가 쓰고 있는 내 컴퓨터”를 가리키는 아주 특별한 주소였다.
그리고 127.0.0.1은 localhost를 숫자로 표현한 것이다. 즉, localhost와 127.0.0.1은 사실 거의 같은 뜻이다.

localhost는 내 컴퓨터 자신을 가리키는 이름이다
보통 인터넷에서 웹사이트에 접속할 때는 다른 컴퓨터의 주소를 입력한다. 예를 들어 네이버에 접속하면, 내 컴퓨터는 네이버 서버의 주소를 찾아가서 화면을 받아온다.
하지만 localhost는 조금 다르다. localhost는 다른 컴퓨터가 아니라, 지금 내가 쓰고 있는 내 컴퓨터 자신을 뜻한다.
예를 들어 내 컴퓨터에서 Apache나 Node.js 서버를 실행하고 있다고 해보자. 그 상태에서 브라우저에 아래처럼 입력하면:
http://localhost
브라우저는 인터넷으로 나가는 것이 아니라, 내 컴퓨터 안에서 실행 중인 서버를 찾아간다.
즉, localhost는 “밖에 있는 서버”가 아니라 “내 컴퓨터 안의 서버”를 의미한다.
쉽게 비유하면 localhost는 자기 자신의 집 주소를 자기에게 보내는 것과 비슷하다. 편지를 다른 사람에게 보내는 것이 아니라, 내 집 우편함에 넣는 것이다.
그래서 localhost는 인터넷이 없어도 사용할 수 있다. 내 컴퓨터 안에서만 연결되기 때문이다.
왜 localhost 대신 127.0.0.1이라는 숫자를 사용할까
컴퓨터는 사실 localhost라는 글자보다 숫자를 더 잘 이해한다. 그래서 localhost라는 이름 뒤에는 실제 숫자 주소가 연결되어 있다. 그 숫자가 바로 127.0.0.1이다.
즉:
localhost = 127.0.0.1
브라우저에 localhost를 입력하면, 컴퓨터는 자동으로 127.0.0.1로 바꿔서 처리한다.
예를 들어 아래 두 주소는 같은 뜻이다.
http://localhost:3000
http://127.0.0.1:3000
둘 다 “내 컴퓨터 안에서 3000번 포트를 사용하는 서버로 연결해라”라는 의미다.
나도 처음에는 localhost와 127.0.0.1이 서로 다른 주소인 줄 알았다. 그런데 직접 두 주소를 번갈아 입력해보니, 똑같은 화면이 열렸다.
왜 하필 127.0.0.1일까
그렇다면 왜 다른 숫자가 아니라, 하필 127.0.0.1일까?
인터넷 주소(IP 주소)에는 특별한 용도로 미리 정해진 숫자들이 있다. 그중에서 127로 시작하는 주소는 “자기 자신을 가리키는 주소”로 약속되어 있다.
즉, 127.x.x.x로 시작하는 주소는 전부 내 컴퓨터 자신을 뜻한다.
예를 들어 아래 주소들도 technically는 localhost처럼 사용할 수 있다.
127.0.0.1
127.0.0.2
127.1.1.1
하지만 가장 대표적으로 사용하는 주소가 127.0.0.1이다. 그래서 거의 모든 프로그램과 운영체제가 127.0.0.1을 localhost의 기본 주소로 사용한다.
쉽게 말하면, “127로 시작하면 자기 자신”, 그중에서도 가장 표준적인 번호가 127.0.0.1인 것이다.
localhost를 왜 사용하는 걸까
localhost는 주로 프로그램이나 웹사이트를 테스트할 때 사용한다.
예를 들어 웹사이트를 만들고 있다고 해보자. 아직 인터넷에 공개하고 싶지는 않다. 먼저 내 컴퓨터 안에서만 실행해서 잘 되는지 확인하고 싶다.
이때 서버를 실행한 뒤, 브라우저에 localhost를 입력하면 내 컴퓨터 안에서만 웹사이트를 볼 수 있다.
예를 들어:
http://localhost:5500
또는:
http://localhost:8000
이렇게 하면 인터넷에 공개하지 않고도 웹사이트를 미리 테스트할 수 있다.
실제로 VS Code의 Live Server, React, Node.js, Python 웹서버 같은 프로그램도 대부분 localhost를 사용한다.
예를 들어 React 프로젝트를 실행하면 아래 같은 주소가 나온다.
http://localhost:3000
Python 간단 웹서버를 실행하면:
http://127.0.0.1:8000
즉, localhost는 “인터넷에 공개하기 전, 내 컴퓨터 안에서 먼저 시험해보는 공간”이라고 생각하면 쉽다.
주소 뒤에 붙는 3000, 8000, 5500은 무엇일까
localhost 뒤에 숫자가 붙는 경우가 많다.
예를 들어:
localhost:3000
localhost:8000
localhost:5500
이 숫자는 포트 번호다. 쉽게 말하면, 내 컴퓨터 안에서 어떤 프로그램으로 연결할지 정하는 번호다.
예를 들어 내 컴퓨터 안에 여러 서버가 동시에 실행되고 있다고 해보자.
- React 서버 → 3000번
- Python 서버 → 8000번
- Live Server → 5500번
그러면 브라우저는 localhost 뒤에 붙은 번호를 보고, 어느 서버로 연결해야 하는지 알게 된다.
즉:
localhost:3000 → 3000번 서버로 연결
localhost:8000 → 8000번 서버로 연결
주소는 같아도, 뒤의 숫자가 다르면 완전히 다른 프로그램으로 연결되는 것이다.
localhost는 다른 사람에게는 보이지 않는다
중요한 점은 localhost는 내 컴퓨터 안에서만 작동한다는 것이다.
예를 들어 내가 내 컴퓨터에서 아래 주소를 열었다고 해보자.
http://localhost:3000
그러면 내 컴퓨터에서는 잘 보인다. 하지만 다른 사람 컴퓨터에서 같은 주소를 입력하면, 내 웹사이트가 아니라 그 사람 자신의 컴퓨터를 찾게 된다.
즉, localhost는 인터넷 주소가 아니다. 누구나 공통으로 쓰는 이름이지만, 각각 자기 자신을 가리킨다.
그래서 친구에게 내 웹사이트를 보여주고 싶다면 localhost가 아니라, 실제 IP 주소를 사용해야 한다.
예를 들어:
http://192.168.0.10:3000
이렇게 내 컴퓨터의 실제 IP 주소를 써야 같은 와이파이 안의 다른 기기에서도 접속할 수 있다.
나도 처음에는 localhost 주소를 친구에게 보내면 볼 수 있을 줄 알았다. 그런데 친구 컴퓨터에서는 내 웹사이트가 아니라 자기 컴퓨터를 찾고 있어서, 왜 안 되는지 한참 고민했었다.
localhost와 127.0.0.1은 거의 같은 뜻이다
정리하면 localhost는 내 컴퓨터 자신을 가리키는 이름이고, 127.0.0.1은 그것을 숫자로 표현한 주소다.
즉, 아래 두 개는 거의 같은 의미다.
localhost
127.0.0.1
그리고 둘 다 인터넷 밖으로 나가지 않고, 내 컴퓨터 안에서만 연결된다.
처음에는 127.0.0.1이라는 숫자가 괜히 복잡하고 어려워 보일 수 있다. 하지만 결국은 “내 컴퓨터를 가리키는 특별한 주소”일 뿐이다.
그래서 앞으로 프로그래밍이나 서버를 공부하다가 localhost:3000, localhost:8000 같은 주소를 보더라도, “아, 지금 내 컴퓨터 안에서 실행 중인 프로그램을 보고 있구나”라고 이해하면 된다.