[내일배움캠프] 입문 Spring 2

김재진·2025년 12월 26일

내일배움캠프

목록 보기
25/70

1. 백엔드와 프론트엔드의 구분

  • SPA의 등장 : React-, Vue.js 같은 프레임워크들이 등장하면서 웹 애플리케이션을 하나의 페이지에서 모든 것이 동작하는 것(Single Page Application) 처럼 만들 수 있게 되면서 프론트엔드는 자체적으로 하나의 거대한 개발 영역으로 자리잡게 되었다.
  • 이로 인해 백엔드는 데이터를 제공하는 순수한 API 서버(Data Provider)로 정의되게 되었으며 비즈니스 로직과 데이터 관리를 책임지는 전문 분야로 프론트엔드와 완전히 분리 되었다.
  • Spring MVC의 역할 일부가 프론트 엔드로 넘어가게 되면서 아래와 같이 바뀌게 되었다.


    프론트엔드가 가져간 M과 V의 역할


    • V (View)
      • 이제 View는 명백히 프론트엔드의 영역입니다.
    • M (Model)
      • 데이터 관리 또한 프론트엔드가 담당합니다.

    변화된 Spring 백엔드의 역할


    • C (Controller)
      • 컨트롤러의 역할은 더욱 중요해지고 명확해졌습니다. View를 반환하는 대신 데이터(JSON)를 반환하는 API 엔드포인트의 역할을 합니다.
    • (변형된) M (Model)
      • 백엔드에서 Model의 개념은 'View에 전달할 데이터'가 아니라 'API 응답으로 보낼 데이터(DTO: Data Transfer Object)'로 바뀌었습니다.
    • (사라진) V (View)
      • View의 역할은 사라지고, 백엔드는 더 이상 HTML을 만들지 않습니다.

2. @RestController

  • @RestController란 @Controller에 @ResponseBody가 추가된 것으로 View를 반환하기 위한 @Controller에서 반환하는 값을 JSON 형식으로 리턴하기 위해 사용한다.
  • 현재는 View는 프론트엔드의 영역이기 때문에 @Controller에 @ResponseBody를 추가해서 사용해야 하지만 이 둘을 따로 쓸 필요가 없음으로 @RestController를 사용한다

3. 마무리

  • 입문 1과 2를 진행하면서 아직까지는 스프링이 어떤것인지 감이 오지 않는 부분이 커서 이 부분에 대해서는 앞으로 더 공부가 필요 할 것 같다.
profile
개발공부 처음해보는 사람

0개의 댓글