본문 바로가기
programming/SpringBoot

스프링부트3 Controller 컨트롤러의 역할 사용 방법 요청에 대한 응답을 한다.

by 개코 - 개발과 코딩 2024. 7. 21.

스프링부트3의 시작은 컨트롤러(Controller) 이다.  컨트롤러는 http 요청을 받으면 응답을 한다. 응답은 MVC형태의 html과 매핑된 화면 또는 데이터일수도 있고, xml, json과 같은 문자열 데이터일 수 있다. 이것은 컨트롤러 클래스에 지정한 어노테이션( annotation ) 에 따라 달라진다.

스프링부트3 Controller 컨트롤러의 역할 사용 방법
요청에 대한 응답을 한다.

모든 프로그램이 그렇듯 main() 함수는 존재한다.

static 으로 생성되어 프로그램이 실행되면 최초로 실행하는 메서드이다.

스프링부트3 ( springboot3)도 마찬가지다.

main() 함수가 있고, 스프링부트3를 실행시키지만, 하나만 있으면 되며, 중요한 것은 main() 함수가 아니다.

모든 프로그램의 순서는 호출과 응답이 있고, 순서가 있으며, 입력과 연산 후 출력이 있다.

즉, 시작과 끝이 있는데 Controller는 스프링부트3의 시작점을 의미한다.

스프링부트3의 시작점

스프링부트3를 공부하기 위해 책을 구매하거나 영상 등을 보면 항상  첫페이지쯤에 나오는 것이 Controller ( 컨트롤러 ) 이다.

컨트롤러는 스프링부트3 프로그램의 시작점이다.

웹에서 화면을 이동할 때 자바스크립트를 이용할 수도 있지만, 스프링부트3의 Controller를 이용할 수 있다.

그리고, 어떤 값을 보내고 응답을 받는 수신자 역할도 한다.

유식하게 RestAPI를 만들 고 사용할 수 있는 것이다.

이것이 의미하는 것은 곧, 화면에서 사용자가 요청한 어떤 작업을 받고, 작업을 수행한 후 결과를 보여주는 것을 말한다.

  • 컨트롤러 ( Controller ) 역할
    • RestAPI : 요청 / 응답
    • 화면이동

대표적인 2가지 어노테이션

스프링부트3 ( SpringBoot3 ) 의 시작점인 컨트롤러는 어노테이션 ( annotaion ) 을 지정한다.

요청에 대한 응답을 어떻게 처리할 것인지 설정하기도 한다.

대표적인 것으로 @Controller, @RestController가 있다.

이외에도 여러가지가 있지만, 이 둘은 스프링부트3에서 자주 보게 된다.

이들의 역할을 간단히  아래와 같다.

  • @Controller
    http요청을 한 컨트롤러를 MVC 컨트롤러로 설정한다.
    화면이동 또는 데이터를 화면에 표시한다.
  • @RestController
    XML, JSON 형식의 데이터형태를 직렬화 한 응답값을 보여준다.

컨트롤러의 형태

컨트롤러( Controller )는 스프링부트3( SpringBoot3 ) 가 실행하고 요청을 처리하는 시작점이다.

모든 프로그램은 요청이 있다면 선택적이지만 응답을 하게 되며 이것을 리턴( return ) 이라 한다.

컨트롤러는 2가지 경우에 응답을 할 수 있다.

응답의 경우 화면이동과 같은 매핑과 데이터를 텍스트형태로 볼 수 있는 rest 형태가 있다.

아래는 컨트롤러의 2가지 형태의 단순한 코드를 보여준다.

@Controller

@Controller 어노테이션( annotation )은 스프링MVC 컨트롤러로 설정되어 http 요청에 대한 응답을 한다.

주로 http 요청에 대한 응답을 하는 역할을 한다.

단순한 데이터 문자열을 화면에 보여주거나 특정 html 화면에 mapping 되고 데이터를 보여주는 역할을 한다.

아래는 특정 html 화면과 매핑되어 날짜를 화면에 보여주는 컨트롤러를 보여준다.

@GetMapping("요청URL")
public String ControllerMethod(Model model) {

    String svrDtNow = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"));

    model.addAttribute("svrDtNow", svrDtNow );

    return "Mapping_URL";
}

@RestController

@RestController 어노테이션 ( annotation )은 http 요청에 대한 응답을 xml 또는 json 형태로 응답을 한다.

Restful API 형태로 사용할 때 사용된다.

응답값은 직렬화된 데이터 문자열이 될 수 있다.

아래는 직렬화한 json 데이터  문자열을 응답하는 컨트롤러를 보여준다.

@PGetMapping("요청URL")
public HashMap<String, String> ControllerMethod(@RequestBody AnyEntity reqEty) {
    String svrDtNow = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"));
    
    HashMap<String, String> resData = new HashMap<String, String>():
    resData.put("dtNow", svrDtNow);
    
    return svrDtNow;
}
반응형

댓글