Node.js를 사용한 웹 서비스 작성

이 가이드는 App Engine 표준 환경에서 실행되는 Node.js 웹 서비스를 작성하는 방법을 보여 줍니다. Node.js 런타임과 작동 방법에 대한 자세한 내용은 Node.js 런타임 환경을 참조하세요.

시작하기 전에

핵심 사항

  • package.json 파일에 종속 항목을 나열하여 사용할 수 있습니다. 자세한 내용은 종속 항목 지정을 참조하세요.
  • App Engine은 npm start를 실행하여 애플리케이션을 시작합니다.
  • 서버는 App Engine 런타임에 의해 설정되는 환경 변수process.env.PORT로 지정된 포트를 수신 대기해야 합니다.
  • App Engine에 서비스를 배포하려면 app.yaml 파일이 있어야 합니다.

HTTP 요청을 수신 대기할 서버 만들기

웹 서비스의 핵심은 HTTP 서버입니다. 이 가이드의 샘플 코드는 Express.js 프레임워크를 사용하여 HTTP 요청을 처리하지만, 원하는 웹 프레임워크를 사용할 수 있습니다.

  1. Node.js 서비스를 위한 my-nodejs-service라는 새 폴더를 만듭니다.

  2. 터미널에서 폴더로 이동하고 npm init을 실행하여 package.json 파일을 만듭니다.

  3. 다음을 실행하여 Express를 종속 항목으로 추가합니다.

    npm install express
    

    package.json 파일의 dependencies 필드에 Express가 표시되는지 확인합니다. 예를 들면 다음과 같습니다.

    {
      ...
      "dependencies": {
        "express": "^4.16.3"
      }
      ...
    }
    
  4. start 스크립트를 package.json 파일에 추가합니다.

    "scripts": {
      "start": "node server.js"
    }
    
  5. 같은 폴더에 server.js라는 파일을 만들고 다음 코드를 추가합니다.

    const express = require('express');
    const app = express();
    
    app.get('/', (req, res) => {
      res.send('Hello from App Engine!');
    });
    
    // Listen to the App Engine-specified port, or 8080 otherwise
    const PORT = process.env.PORT || 8080;
    app.listen(PORT, () => {
      console.log(`Server listening on port ${PORT}...`);
    });

이는 매우 기본적인 웹 서버입니다. 루트 경로('/')에 대한 모든 GET 요청에 'Hello from App Engine!' 텍스트로 응답합니다. 위 코드에서 마지막 4줄을 보면 서버가 App Engine 런타임에 의해 설정되는 환경 변수process.env.PORT로 지정된 포트를 리슨하도록 설정되었습니다. 서버가 이 포트에 리슨하도록 설정되지 않으면 요청을 수신하지 않습니다.

process.env.PORT가 설정되지 않으면 포트 8080이 기본값으로 사용됩니다. 로컬에서 실행되는 동안 process.env.PORT가 설정되지 않으므로(앱이 App Engine에서 실행되는 경우에만 설정됨), 로컬에서 앱을 테스트해야 합니다. 테스트용으로 선호하는 포트를 사용할 수 있지만 이 가이드는 8080을 사용합니다.

로컬에서 서버 실행

로컬에서 서버를 실행하려면 다음 단계를 따르세요.

  1. 터미널에서 npm start을 실행하세요. 그러면 server.js 파일이 실행됩니다.

  2. 웹 브라우저에서 http://localhost:8080으로 이동합니다.

'Hello from App Engine!' 텍스트가 있는 페이지가 표시됩니다.

app.yaml 파일 만들기

app.yaml 파일은 App Engine 서비스의 런타임 환경에 대한 설정을 지정합니다. 이 파일이 없으면 서비스가 배포되지 않습니다.

  1. my-nodejs-service 폴더에서 app.yaml 파일을 만듭니다.

  2. 다음 콘텐츠를 추가합니다.

    runtime: nodejs20

    이 파일은 App Engine에 Node.js 런타임 버전을 나타내는 최소한의 구성 파일입니다. app.yaml 파일은 네트워크 설정, 확장 설정 등을 지정할 수도 있습니다. 자세한 내용은 app.yaml 참조를 확인하세요.

이제 파일 구조가 다음과 같이 됩니다.

  my-nodejs-service/
  app.yaml
  package.json
  server.js

다음 단계

올바른 포트를 리슨하는 간단한 Node.js 웹 서버를 만들고 app.yaml 파일에서 런타임을 지정했습니다. 이제 App Engine에 서비스를 배포할 수 있습니다.

직접 사용해 보기

Google Cloud를 처음 사용하는 경우 계정을 만들어 실제 시나리오에서 App Engine의 성능을 평가할 수 있습니다. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.

App Engine 무료로 사용해 보기