이전 포스팅에는 내가 수업을 들었을 당시, 왜 이 클래스는 저기에 넣고 저거는 저기에 넣는지 이해를 제대로 하지 못하고 넘어간 상황이었는데 외우기에는 당장은 어렵겠지만 확실히 이해를 하고 넘어가니 유익한 시간이었던 것 같다. 저런 부분을 몰랐다면 test에 다 집어넣고 왜 안되지? 이러고 있었을 테니깐 말이다.
이번 포스팅은 스프링부트 게시판을 만들어보는 시간이다. 취업하는데 있어서 이 기술력이 가장 기본이 된다고 하니까 따라 만들어가면서 무엇이 있는지 살펴보면 좋을 것 같다.
URL 매핑
http://localhost:8080/sbb 를 입력했을때 "안녕하세요 Spring Boot Board에서 당신을 환영합니다" 라는 문자열을 출력하는 과정을 만들 것이다.

당연히 오류가 나올 수 밖에 없는 모습이다. 왜냐하면 현재 1-2에서 만들었던 것은 hello라는 컨트롤러만 만들었기 때문이고 sbb는 단지 프로젝트 명으로 명시되어 있기 때문에 매핑을 하지 않는 이상은 아무것도 출력되는 것은 없을 것이다.
컨트롤러
URL 매핑 추가를 위해 MainController.java 파일을 생성한 후 아래 코드에 입력하자.

package com.mysite.sbb;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class MainController {
@GetMapping("/sbb")
public void index() {
System.out.println("index");
}
}
해당 클래스에 @Controller 애너테이션을 적용하면 MainController 클래스는 스프링부트의 컨트롤러가 된다.
메서드의 @GetMapping 애너테이션은 요청된 URL과의 매핑을 담당한다.
스프링부트는 http://localhost:8080/sbb를 입력하게 된다면 /sbb URL과 매핑되는 index 메서드를 MainController 클래스에서 찾아서 실행한다.

[그림 1-1] 과는 다르게 [그림 2-2]의 경우는 500의 오류코드를 얻어 냈는데, index 함수 호출은 되었지만 결과값에 대한 리턴을 하지 않았기 때문이다. 스프링부트 기초 단게에서 @ResponseBody 가 들어가면서 return 값을 주었던 것을 기억해보자. 기억이 안난다면 괜찮다. 그때는 아 이렇게 되는구나 정도지만 지금은 제대로된 복습을 하는 공간이니까.
500의 오류를 얻어내었으니 return 값을 입력하기 위해 MainController를 수정하도록 하자.

package com.mysite.sbb;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class MainController {
@GetMapping("/sbb")
@ResponseBody
public String index() {
return "index";
}
}
변경점이 있다면 @ResponseBody 입력으로 import 문장이 추가되는 점인데 이전 void대신 왜 String으로 대체 되었는지는 잘 모르겠지만 아무튼 "System.out.println("index");" 삭제는 STS내에서만 제대로 출력 본 확인하고자 한것 같다라는 것을 알것 같다.
return값에 입력으로 index라는 함수명이 http://localhost:8080/sbb 에 제대로 출력된 것을 확인 했다면 오늘 포스팅의 목표인 "안녕하세요 Spring Boot Board에서 당신을 환영합니다" 를 입력하여 출력 해보도록 하자.

'스프링부트' 카테고리의 다른 글
2-4 엔티티(Entity) (0) | 2022.12.16 |
---|---|
2-3 JPA (0) | 2022.12.15 |
2-1 스프링부트 구조 알아보기 (0) | 2022.12.15 |
1-4 스프링부트도구2 (0) | 2022.12.14 |
1-3 스프링부트 도구 (0) | 2022.12.14 |