본문 바로가기
카테고리 없음

localhost란 어떻게 실행되는 걸까

by forevero3o 2025. 3. 17.

localhost란 무엇인가?

next.js에서 서버컴포넌트, 클라이언트 컴포넌트를 공부하다가 무심코 사용하던 localhost서버는 어떻게 동작하게 되는 것일까? 클라이언트 인가? 서버인가?라는 하다가 정리해 보게 되었습니다. 웹사이트나 API에서 데이터를 얻으려면 일반적으로 외부 서버로 요청을 보내 응답을 받아야 합니다. 하지만 매번 코드를 작성할 때마다 실제 서버에 배포해 테스트하는 것은 매우 번거롭죠. 이를 해결하기 위해 개발자들은 자신의 컴퓨터를 서버처럼 사용할 수 있도록 특수한 주소를 만들었는데, 이것이 바로 localhost입니다.

쉽게 말해 localhost는 자기 자신의 컴퓨터를 가리키는 특별한 주소로, 일반적으로 127.0.0.1이라는 IP 주소를 의미합니다.

알아두면 좋은 localhost 관련 개념들

1. 루프백 주소 (Loopback Address)

  • localhost는 네트워크를 거치지 않고 자신의 컴퓨터로 요청을 보냅니다.
  • IPv4 환경에서는 127.0.0.1, IPv6 환경에서는 ::1을 사용합니다.

2. 포트(Port)

  • 포트는 같은 IP 주소에서 여러 서버를 구분하는 역할을 합니다.
  • 하나의 IP 주소 안에서 다양한 서비스를 동시에 운영할 수 있도록 도와줍니다.

예시)

  • React 개발 서버: localhost:3000
  • Django 서버: localhost:8000
  • PostgreSQL 데이터베이스: localhost:5432

 

중요: 포트 번호가 달라져도 IP 주소 자체는 변하지 않습니다.

3. Hosts 파일 활용

  • 운영 체제에는 특정 도메인을 IP 주소에 매핑하는 hosts 파일이 있습니다.
  • 이를 활용하면 localhost 대신 자신만의 도메인(예: mylocal.test)을 만들어 사용할 수 있습니다.

예시) hosts 파일에 127.0.0.1 mylocal.test를 설정하면,

4. 로컬 서버와 원격 서버

  • localhost 환경에서 잘 작동하던 코드도 실제 외부 서버(원격 서버)에 배포하면 다르게 작동할 수 있습니다.
  • 보안 설정, 네트워크 구성, 방화벽 등을 실제 서버에서는 반드시 추가로 점검해야 합니다.

5. 자주 사용하는 localhost 관련 개발 도구들

  • React/Vite: 로컬 프론트엔드 서버 (localhost:5173, localhost:3000 등)
  • Express(Node.js): 로컬 API 서버 (localhost:3000)
  • Django: 로컬 백엔드 서버 (localhost:8000)
  • Docker: 컨테이너 환경에서는 host.docker.internal이라는 별도의 주소를 사용하기도 합니다.
  • ngrok: 로컬 서버를 외부에서 접근 가능하게 하는 도구

 

 

💌 마무리

  • localhost는 자기 컴퓨터를 서버로 사용하기 위한 특별한 주소입니다.
  • 포트 번호는 동일 IP 주소 내에서 여러 서비스를 구분하는 역할을 합니다.
  • 다양한 개발 환경에서 로컬 서버 테스트는 필수적이며, 실제 서버와의 환경적 차이를 항상 고려해야 합니다.