This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

로컬 테스트 서버 설치하기

  1. HTML을 사용하여 일반적인 문제 해결하기
  2. Solve common problems in your JavaScript code
  3. 도구 및 설정
    1. 로컬 테스트 서버 설치하기
  4. 디자인과 접근성
    1. 나의 웹사이트를 설계하기 위해서는?
  5. 웹 작동방식
    1. URL이란?
    2. What are hyperlinks?
    3. 도메인 이름이란?
    4. 웹 서버란 무엇일까?
    5. 인터넷은 어떻게 동작하는가?
  6. 일반적인 CSS 문제 해결하기
    1. 내용물

이 글에서는 간단한 로컬 테스트 서버를 여러분의 장비에 설치하는 법과 기본적인 사용법을 설명합니다.

사전 준비: 인터넷의 작동 방법웹서버에 대해 알고 있어야 합니다.
목표: 로컬 테스트 서버를 설치하는 법을 배울 것입니다.

로컬 파일과 원격 파일

대부분의 학습 분야에 걸쳐서 여러분은 그냥 웹브라우저로 예제들을 직접 열어보기만 하면 됩니다. — 브라우저를 통해 예제들을 직접 열어보는 것은 HTML 파일을 더블 클릭하거나 브라우저 창으로 예제들을 드래그 앤 드롭하거나 또는 File > Open... 메뉴에서 해당하는 HTML 파일을 선택하면 됩니다. 이를 수행하는 방법은 많습니다.

웹 주소 경로가 file://로 시작하고 뒤에 오는 경로가 여러분의 로컬 하드 드라이브에 있는 파일의 경로인 경우, 로컬 파일이 사용되는 것입니다. 이와는 달리, GitHub (또는 다른 원격 서버에 있는) 예제를 보는 경우에는 웹 주소가 http://https://로 시작하며, 이는 그 파일이 HTTP를 통해 수신된 파일이라는 것을 나타냅니다.

로컬 파일로 테스트할 때의 문제점

일부 예제는 로컬 파일과 같은 방식으로 열면 동작하지 않습니다. 여기에는 여러 가지 원인이 있을 수 있으며, 대부분은 다음과 같습니다.

  • 비동기 요청인 경우. 일부 브라우저(크롬을 포함하는)에서는 로컬 파일의 예제를 실행할 경우에 비동기 요청(서버로부터 데이터 가져오기 - Fetching data from the server를 참고)이 작동하지 않을 것입니다. 이는 보안 제한(웹 보안과 관련된 자세한 내용은 웹사이트 보안- Website security을 참고하세요) 때문입니다.
  • 서버측 언어인 경우. 서버측 언어(PHP나 Python과 같은)는 코드를 해석하고 결과를 내보낼 수 있는 특별한 서버가 필요합니다.
  • 다른 파일을 포함하는 경우. 브라우저는 일반적으로 file:// 스키마를 사용하여 리소스를 로드하는 요청을 교차 출처 요청으로 처리합니다. 따라서 다른 로컬 파일을 포함하는 로컬 파일을 불러올 경우, 이는 CORS 오류를 유발할 수 있습니다.

간단한 로컬 HTTP 서버 실행하기

비동기 요청 문제를 해결하려면 로컬 웹 서버를 통해 이러한 예제를 테스트해야 합니다.

코드 편집기에서 확장 기능 사용하기

HTML, CSS, JavaScript만 필요하고 서버 측 언어가 필요하지 않다면, 코드 편집기에서 확장 기능을 확인하는 것이 가장 쉬운 방법일 수 있습니다. 로컬 HTTP 서버의 설치와 설정을 자동화할 뿐만 아니라, 코드 편집기와 잘 통합되어 로컬 파일을 HTTP 서버에서 한 번의 클릭으로 테스트할 수 있습니다.

VSCode의 경우 다음 무료 확장을 확인할 수 있습니다.

  • vscode-preview-server. 홈페이지에서 확인할 수 있습니다.

Node.js 사용하기

Node.js의 http-server 모듈은 어떤 폴더에서든 HTML 파일을 호스팅할 수 있는 가장 쉬운 방법입니다.

이 모듈을 사용하려면,

  1. 다음 명령어를 실행하여 Node.js가 이미 설치되어 있는지 확인합니다.

    bash
    node -v
    npm -v
    npx -v
    
  2. Node.js가 설치되지 않았다면, 설치 가이드를 참고하여 설치 후 위 명령어를 다시 실행하여 설치가 성공했는지 확인합니다.

  3. 폴더가 /path/to/project라고 가정하고, 서버를 시작하려면 다음 명령어를 실행합니다.

    bash
    npx http-server /path/to/project -o -p 9999
    

    이 명령어는 /path/to/project 폴더 내 모든 파일을 localhost:9999에서 호스팅합니다. -o 옵션은 index.html 페이지를 웹 브라우저에서 자동으로 열어줍니다. index.html 파일이 없을 경우, 폴더 목록이 표시됩니다.

Python 사용하기

또 다른 방법으로 Python의 http.server 모듈을 사용할 수 있습니다.

참고 : Python의 오래된 버전(2.7까지)에는 SimpleHTTPServer라는 유사한 모듈이 제공되었습니다. Python 2는 이미 지원이 종료되었으므로 Python 3 사용을 권장합니다.

이 방법을 사용하려면,

  1. Python이 설치되어 있는지 확인하려면 다음 명령어를 실행합니다.

    bash
    python -V
    # 위 명령어가 실패하면,
    python3 -V
    # 또는 "py" 명령어가 사용 가능하면,
    py -3 -V
    
  2. Python이 설치되어 있지 않으면, 설치 가이드를 참고하여 설치하세요. (더 자세한 설명은 Django 튜토리얼에서도 확인할 수 있습니다). 설치가 완료되면 위 명령어를 다시 실행하여 설치가 성공했는지 확인합니다.

  3. Python이 설정되었다면, cd 명령어를 사용하여 테스트할 웹사이트 코드가 있는 폴더로 이동합니다.

    bash
    # 폴더 이름을 입력하여 이동합니다, 예를 들어
    cd Desktop
    # 상위 폴더로 이동하려면 두 점을 사용합니다
    cd ..
    
  4. 해당 폴더에서 서버를 시작하는 명령어를 입력합니다.

    bash
    # Windows에서는 "python -m http.server" 또는 "py -3 -m http.server" 사용
    python3 -m http.server
    
  5. 기본적으로, 이 명령어는 해당 폴더의 내용을 로컬 웹 서버의 포트 8000에서 실행합니다. 웹 브라우저에서 localhost:8000 URL로 이동하여 이 서버에 접속할 수 있습니다. 여기서 폴더의 내용이 나열되며, 실행하려는 HTML 파일을 클릭하면 됩니다.

참고 : 포트 8000에서 이미 실행 중인 항목이 있는 경우, 서버 명령어 뒤에 다른 포트 번호를 지정하여 실행할 수 있습니다. 예: python3 -m http.server 7800. 이 경우 localhost:7800에서 콘텐츠에 접근할 수 있습니다.

서버 측 언어를 로컬에서 실행하기

Python, PHP, JavaScript 같은 서버 측 언어를 사용하는 경우, 서버 측 언어와 웹 프레임워크 또는 "단독" 코드에 따라 다른 접근 방식이 필요합니다.

웹 프레임워크를 사용하는 경우, 일반적으로 프레임워크 자체에서 개발 서버를 제공합니다. 예를 들어, 다음 언어/프레임워크는 개발 서버를 함께 제공합니다.

서버 측 프레임워크나 개발 서버를 제공하는 프로그래밍 언어를 사용하지 않는 경우, Python의 http.server 모듈을 사용하여 CGI(Common Gateway Interface) 스크립트를 호출함으로써 Python, PHP, JavaScript 등으로 작성된 서버 측 코드를 테스트할 수 있습니다. 이 기능 사용 예시는 Execute a Script Remotely Through the Common Gateway Interface (CGI)How to Launch an HTTP Server in One Line of Python Code에서 확인할 수 있습니다.