웹 서비스 작성하기

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

시작하기 전에

아직 설치하지 않은 경우:

  1. 사용하려는 App Engine 런타임 버전에 대해 최신 버전의 자바 개발 키트(JDK)를 설치합니다.
  2. Apache Maven을 다운로드하고 설치하여 샘플 앱을 빌드, 실행, 배포합니다.

핵심 사항

  • App Engine은 실행 가능 JAR 애플리케이션을 업로드하여 애플리케이션을 시작합니다.
  • 애플리케이션에는 PORT 환경 변수(일반적으로 8080)로 지정된 포트에서 HTTP 요청에 응답하는 웹 서버를 시작하는 기본 클래스가 있어야 합니다.
  • App Engine에 서비스를 배포하려면 app.yaml 파일이 있어야 합니다.
  • pom.xml 파일에 종속 항목을 나열하여 사용할 수 있습니다. 자세한 내용은 자바 라이브러리 사용을 참조하세요.

기본 클래스 만들기

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

  1. Maven 빌드 시스템을 사용하고 Spring Web 종속 항목을 포함하는 자바용 Spring Boot 프로젝트를 생성합니다. 시작하려면 다음 링크를 클릭하세요.

    Spring 초기화 메서드로 이동

  2. Spring Initializer에서 Generate(생성) 버튼을 클릭하여 프로젝트를 생성하고 다운로드합니다.

  3. 다운로드한 프로젝트에서 springboot/src/main/java/com/example/appengine/springboot/DemoApplication.java 파일을 수정하여 일부 Java 가져오기와 REST hello 핸들러를 추가합니다.

    package com.example.appengine.springboot;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    @SpringBootApplication
    @RestController
    public class DemoApplication {
    public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
    }
    @GetMapping("/")
    public String hello() {
    return "Hello world!";
    }
    }
    

    수정된 클래스는 Spring Boot의 내장 Tomcat 서버를 시작하고 루트 경로('/')에서 GET 요청에 'Hello world!' 텍스트로 응답하는 컨트롤러입니다.

로컬에서 서버 실행

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

  1. Spring Boot Maven 플러그인을 사용하여 로컬 웹 서버를 시작합니다.

    mvn spring-boot:run
    
  2. 웹브라우저에 다음 주소를 입력합니다.
    http://localhost:8080

샘플 앱의 Hello World 메시지가 페이지에 표시됩니다. 터미널 창에서 Ctrl+C 키를 눌러 웹 서버를 종료합니다.

app.yaml 파일 만들기

App Engine 런타임 환경에서 앱의 설정을 지정하려면 다음 안내를 따르세요.

  1. 다음 디렉터리에 app.yaml이라는 파일을 만듭니다.
    springboot/src/main/appengine/

  2. 파일에 다음 내용을 추가합니다.

    자바 21

    runtime: java21
    

    app.yaml 파일은 네트워크 설정, 확장 설정 등을 지정할 수도 있습니다. 자세한 내용은 app.yaml 참조를 확인하세요.

위의 Spring Initializr 링크를 사용한 경우 이제 파일 구조가 다음과 같이 됩니다.

  • springboot/
    • pom.xml
    • src/main/
      • appengine/
        • app.yaml
      • java/com/example/appengine/springboot/
        • DemoApplication.java

프로젝트 pom.xml에 애플리케이션 배포를 허용하는 Maven 플러그인을 추가할 수도 있습니다.

            <plugin>
                <groupId>com.google.cloud.tools</groupId>
                <artifactId>appengine-maven-plugin</artifactId>
                <version>2.8.1</version>
                <configuration>
                    <projectId>YOUR_PROJECT_NAME</projectId>
                    <version>YOUR_VERSION</version>
                    <promote>false</promote>
                </configuration>
            </plugin>

다음 단계

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