포스트

2021-02-28-TIL

2021-02-28-TIL

Doing

  • 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 (9강/28강)
  • 자바 자료구조

스프링 부트와 웹 MVC

강의 제목에 나오는 세 키워드를 정리해 둔다.

스프링 부트는 스프링 애플리케이션을 설정 부담 없이 시작하게 해 주는 도구다. 필요한 기능의 starter 의존성을 추가하면 관련 설정을 자동으로 구성해 준다. 예를 들어 Spring Boot 문서에 따르면 Thymeleaf, FreeMarker, Groovy, Mustache 같은 템플릿 엔진은 starter만 추가하면 자동 설정되고, 템플릿 파일은 기본적으로 src/main/resources/templates에서 찾는다.

웹 MVC는 요청을 처리하는 코드를 Model, View, Controller 세 역할로 나누는 구조다. Spring 공식 가이드 “Serving Web Content with Spring MVC”의 예제가 이 흐름을 짧게 보여 준다.

1
2
3
4
5
6
7
8
9
10
@Controller
public class GreetingController {

    @GetMapping("/greeting")
    public String greeting(@RequestParam(name = "name", required = false, defaultValue = "World") String name,
                           Model model) {
        model.addAttribute("name", name);
        return "greeting";
    }
}

@GetMapping이 /greeting으로 들어온 GET 요청을 이 메서드에 연결한다(Controller). 메서드는 화면에 보여 줄 데이터를 Model에 담고(Model), 문자열 "greeting"을 돌려준다. 이 문자열은 응답 본문이 아니라 뷰 이름이라서, 템플릿 엔진이 templates/greeting.html을 찾아 모델 값을 채운 HTML을 만든다(View). 반대로 @RestController는 Spring 문서의 설명대로 @Controller와 @ResponseBody를 합친 어노테이션이라, 모든 메서드의 반환값이 뷰 이름이 아니라 응답 본문으로 쓰인다.

DB 접근 기술은 이 컨트롤러 뒤에서 데이터를 저장하고 꺼내는 계층이다. 컨트롤러가 직접 DB를 다루지 않고 서비스와 리포지토리로 역할을 나눠 두면, 저장 방식을 바꿔도 컨트롤러는 고치지 않아도 된다.

참고한 자료외부 출처 3

외부 출처

이 글은 저작권자의 CC BY 4.0 라이선스를 따릅니다.

댓글

아직 댓글이 없습니다