[JumpToSpringBoot] 1-03. VS Code에서 Spring Boot 프로젝트 실행하기

juuns·2023년 1월 19일
post-thumbnail

Vs Code에서 Spring Boot를 실행하는 방법을 알아보자.

1. HelloController


Controller는 서버에 전달된 클라이언트의 요청(URL과 전달된 파라미터 등)을 처리하는 자바 클래스이다. http://localhost:8080/hello 와 같은 브라우저의 요청을 처리하기 위해서는 컨트롤러(Controller)가 필요하니 일단 하나 만들어보도록 하자.
아래 그림과 같은 경로에 HelloController.java라는 클래스를 하나 만들어준다.

그러면 다음과 같은 코드가 생성될 것이다. 목록애서 class를 선택한다.

2

아직 껍데기 클래스이므로 컨트롤러의 기능을 갖출 수 있도록 다음과 같이 수정하자.

package com.mysite.sbb.vscode.sbbvscode;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloController {
    @GetMapping("/hello")
    @ResponseBody
    public String hello() {
        return "Hello World";
    }
}
  • @Controller

    • HelloController 클래스가 Controller의 기능을 수행한다는 의미
    • 이 annotation이 있어야 스프링부트 프레임워크가 컨트롤러로 인식한다.
  • @GetMapping("/hello")

    • 요청된 URL과의 매핑을 담당
    • 여기서는 /hello URL과 hello 메서드를 매핑하는 역할
    • 서버에 요청이 발생하면 스프링부트는 요청 페이지와 매핑되는 메소드를 컨트롤러에서 찾는다.
    • 여기서는 http://localhost:8080/hello URL 요청이 발생하면 hello 메서드가 실행된다.

      💡 도메인명과 포트번호는 서버 설정에 따라 달라질 수 있기 대문에 @GetMapping 에 적지 않는다.

    • URL명과 method명이 동일할 필요는 없다.
    • GET request는 GetMapping, POST request는 PostMapping을 사용한다.
cf) HTTP Method 종류
HTTP MethodCRUD역할
GETCreate서버로부터 데이터를 읽거나 검색
POSTRead서버에 데이터를 추가, 작성 (리소스 생성)
PUTUpdate/Replace서버의 데이터를 생성, 업데이트
DELETEDelete서버의 데이터를 삭제
  • @ResponseBody

    • URL 요청에 대한 응답으로 문자열을 리턴하라는 뜻으로, 메서드 응답 결과가 문자열 그 자체임을 나타낸다.
    • hello 메서드는 "Hello World"라는 문자열을 return하므로 이 문자열이 출력될 것이다.
    • 응답 결과는 이처럼 단순한 문자열보다는 HTML과 같은 템플릿을 주로 사용한다. 뒤에서 볼 거니까 지금은 그렇구나 하고 넘어가자.

      💡 @ResponseBody를 생략한다면 index라는 이름의 템플릿 파일을 찾게 된다.


2. 로컬 서버 실행하기


방법 1. Spring DashBoard 사용

서버를 실행시키는 가장 간단한 방법은 SpringBoot DashBoard를 이용하는 것이다.

VS Code의 왼쪽 사이드바에 있는 SpringBoot 로고 모양의 버튼을 누르면 왼쪽 그림처럼 DashBoard가 열린다. (버튼이 없다면 전 글을 보고 확장팩을 설치하길 바란다.) APPS에 실행 가능한 어플리케이션 목록이 쭉 뜬다.

Run 버튼을 눌러서 sbb-vscode를 실행시켜보자.

실행시키면 오른쪽 그림처럼 초록색으로 표시되어 실행 중임을 알 수 있다.

브라우저 모양 버튼을 클릭하면 VS Code 내에서 http://localhost:8080을 확인할 수 있다. 하지만 현재는 WhiteLabel Error Page가 뜨면서 error code 404 를 반환할 것이다. 우리는 현재 http://localhost:8080/hello 페이지만 구성해놨기 때문이다.

빨간 네모 버튼을 누르면 서버 실행을 중지할 수 있다.

방법 2. Application.java에서 실행

서버를 실행시키는 또 다른 방법은 Application.java에서 실행시키는 것이다. 스프링부트 프로젝트를 생성하면 자동으로 main 메소드가 포함된 클래스가 하나 생성된다. main 메소드 위에 Run|Debug 가 떠있는 것을 볼 수 있다. 여기서 Run을 누르면 로컬 서버가 실행된다.
run2


3. 브라우저로 확인하기


서버가 실행되었으니 이제 HelloController의 동작을 확인해보자. 브라우저를 열고 http://localhost:8080/hello에 접속하면 다음과 같은 화면을 확인할 수 있다.
/hello URL이 요청되면 이와 매핑된 HelloController의 hello 메서드가 호출되고, 따라서 그 결과로 "Hello World"라는 문자열이 출력되는 것을 확인할 수 있다.

로컬 서버는 디폴트로 8080 포트로 실행된다.

본 시리즈는 "점프 투 스프링부트"를 공부하며 작성하는 글입니다.
출처: "점프 투 스프링부트." WikiDocs. 2022년 12월 26일 수정, 2023년 1월 12일 접속, https://wikidocs.net/book/7601.

0개의 댓글