1. MVC(Model, View, Controller)
- 예전에는 view에 모든 걸 다 하고 controller가 따로 있지 않았음.
- view 란 : 화면을 그리는 데에 모든 역량을 집중
- controller : 비즈니스 로직과 관련있거나 내부적인걸 처리하는데에 관심 있음
- 요즘엔 컨트롤러와 뷰를 쪼개는게 기본 !
- 비즈니스 로직, 서버와 관련된건 컨트롤러 쪽에서 다 처리하고 model에다 관련된 화면에 필요한 것을 담아서 view에 넘겨주는 패턴 많이 활용
- controller
- 웹브라우저에서 localhost:8080/hello-mvc를 보내면 스프링 부트가 띄울 때 같이 띄우는 내장 톰켓서버를 먼저 거쳐. helloController에 저 메서드에 매핑이 돼있는 걸 확인하고 return을 html이름을 return하고 model에 name이 spring으로 전달 되니 그걸 viewResolver가 html에 name부분 템플릿엔진 처리해서 html변환 후 웹브라우저에 전달
2. API
- 정적 컨텐츠를 제외하면 HTML로 내리냐 API 방식으로 데이터를 바로 내리냐! 이 두가지 방식만 기억하면 된다.
- '@ResponseBody' : http에서 헤더부, 바디부가 있는데 바디부에 해당 데이터를 직접 넣어주겠다는 의미(viewResolver에게 던지지 않고 http응답에 그대로 얘를 던져야 한다고 응답. 객체가 오면 Json 방식으로 만들어서 http응답에 반환(이 때, JsonConverter 동작)
- 이전 템플릿 엔진은 화면을 가지고 view라는 템플릿이 있는 상황에서 그걸 조작하는 방식이라면 이번 방식은 입력한 데이터를 그대로 내보내주는 방식임
'Learning-log > Spring & JPA' 카테고리의 다른 글
(스프링 핵심 원리 - 기본편) 1-(3) 좋은 객체지향 프로그래밍 (0) | 2023.03.24 |
---|---|
(스프링 핵심 원리 - 기본편) 1-(2)스프링이란? (0) | 2023.03.24 |
(스프링 핵심 원리 - 기본편) 1-(1)스프링의 탄생 (0) | 2023.03.24 |
비즈니스 요구사항 정리 (0) | 2023.03.20 |
Spring - Section 1강의 실습 기록(2022-02-22 ~ 2022-02-23) (0) | 2023.02.24 |