본문 바로가기

백엔드

컨트롤러의 구현 문법

Spring Controller

: 계층형 아키텍처의 Presentation Layer에 해당
Client(웹 브라우저, 모바일 앱)의 요청을 받고 Application Layer에 요청에 대한 처리를 위임하며
Client에 최종 응답을 하는 역할

  • view: Client가 요청에 대한 응답의 결과로 보게 되는 웹 페이지
  • data: Client가 요청에 대한 응답으로 받는 데이터

Cotroller 코드

3개의 기본 Annotation 사용

@Controller와 @RestController
: Controller 역할을 하는 클래스를 지정, 클래스 상단에 명시

@RequestMapping
: 특정 Request를 처리하는 메소드를 지정, 클래스 또는 메소드 상단에 명시

Annotation

: Java 소스코드에 추가적인 정보를 제공하는 방법
3가지 유형

  1. 자바 컴파일러에게 정보 제공
  2. SW 툴에 의해 사용되어 코드 생성이나 추가 작업을 진행
  3. run-time 시 특정 동작을 추가적으로 실행
@Controller
public class HelloController{

  @RequestMapping(value = "/")
  public String hello(){
     return "index"; // index.html(파일이름이 index)
  }
}

약속된 Annotation 사용 시 스프링 프레임워크가 스캔

@Controller vs @RestController

대부분의 동작은 유사: 요청을 받아서 처리하고 응답
응답하는 형태가 다름!

  • Controller: view를 응답(html 파일 등) >> html 문서가 반환(html 파일이름을 의미)
  • RestController: data를 응답(문자열, Json, xml 등) >> 문자열 자체 반환

웹으로 localhost:8080에서 html파일이 응답하는 지 문자열이 반환되는 지 차이 확인

'백엔드' 카테고리의 다른 글

HTTP API  (0) 2023.11.22
Spring Boot 컨트롤러와 REST API  (0) 2023.11.22
계층형 아키텍처  (0) 2023.11.16
스프링 프레임워크  (0) 2023.11.15
자료구조 컬렉션 클래스  (0) 2023.11.14