웹 MVC, API

naeganugu·2022년 7월 3일
0

스프링 마스터🌱

목록 보기
1/19
post-thumbnail

0. 프로젝트 환경설정

사실 원래대로라면 굉장히 까다로운 부분일텐데
다행히도 이번 학기 캡스톤에서 스프링을 써서 관련 환경설정이 쉬웠다.

https://start.spring.io

여기서 스프링 프로젝트를 만들었다. 편하고 좋더라는

1. 스프링 웹 개발 기초

스프링 프로젝트에서 static/index.html 파일을 만들면 welcome page가 만들어진다.

스프링 프로젝트 빌드하고 실행하는 방법은 콘솔에서

1. ./gradlew build
2. cd build/libs
3. java -jar hello-spring-0.0.1-SNAPSHOT.jar // hello-spring은 프로젝트 이름

여기서부터가 진짜 이 글을 쓰는 하이라이트랄까

웹을 개발하는데는 세가지 방법이 있다.

1. 정적 컨텐츠
2. MVC와 템플릿 엔진
3. API

중요한 건 2번과 3번

1) 정적 컨텐츠

html 파일을 그냥 웹 브라우저로 내리는 방식.
말 그대로 정말 정적이고, 실제로 쓰일 일은 거의 없어보였다,,

resources/static/hello-static.html 파일을 만들고
http://localhost:8080/hello-static.html 로 접속하면
정적 컨텐츠가 보인다.

2) MVC와 템플릿 엔진

파일을 그냥 내리는 게 아니라 서버에서 프로그래밍을 해서 동적으로 내린다.
MVC의 의미는 Model, View, Controller

Model: 모델에다가 담아서 화면에 넘겨줌.
View: 화면 관련된 일만 전담.
Controller: 비지니스 로직 혹은 서버 뒷단 관련 작업 처리

Spring의 내장 톰켓 서버가 스프링 컨테이너에 관련 컨트롤러(ex. @GetMapping("hello-mvc"))가 있는지 우선 확인 후에, 관련 정보를 viewResolver에 넘겨준다.
viewResolver는 view(ex. hello-template.html)를 찾고 템플릿 엔진(ex. Thymeleaf)에 연결한 뒤에 변환한 html을 웹 브라우저에 넘겨준다.

3) API

이름은 제일 익숙한 애.
어노테이션 @ResponseBody를 붙여준다. 그러면 viewResolver를 사용하지 않고 직접 HTTP의 Body로 data를 직접 내려준다. @ResponseBody를 붙여주고, 문자를 반환하거나 객체를 반환할 수 있는데 객체 반환은 JSON 형태로 반환된다.
캡스톤 하면서 이 API 방식으로 많이 썼었던 기억이 :)

something wrong한 게 있다면 언제든지 댓글 남겨주세요.



[출처]

스프링-입문-스프링부트

profile
seungseung-zanggu

0개의 댓글