[스프링] 웹을 개발하는 방법(김영한님 강의 참조)

zlwmxkdla·2023년 8월 13일

스프링

목록 보기
2/4

웹을 개발하는 3가지 방법

  • 정적 컨텐츠
  • MVC와 템플릿 엔진
  • API

<정적 컨텐츠>

정적 컨텐츠란 파일(html파일)을 그대로 웹 브라우저에 전달하는 방법이다. 스프링 부트는 정적 컨텐츠 기능을 자동으로 제공한다.

다음과 같이 intellij에서 html파일을 작성한 후 실행하면 웹 브라우저가 열리는 것을 확인할 수 있고 이러한 웹 개발 방식을 '정적 컨텐츠'라고 한다.

<MVC와 템플릿 엔진>

MVC의 (M : Model, V : View, C : Controller)
과거에는 View와 Controller가 통합되어 있었지만, View는 화면을 그리는 것에 집중하고 Controller는 내부적인 것을 처리하는데 집중하기 때문에 View 와 Controller를 분리하였다. 이 방법은, html을 동적으로 바꾸어 (=프로그래밍 진행 후) 웹 브라우저에 전달하는 방법이다.

*스프링에서 볼 수 있는 '@Controller'는 주로 사용자의 요청을 처리하고 난 후, 정해진 뷰에 객체를 넘겨주는 역할을 한다.

<에이피아이(API)>
API는 서버끼리 통신할 때 사용되며, json이라는 데이터 포멧을 전달함으로써 동작한다. (데이터 포맷 : xml, json
json은 키와 값의 한 쌍으로 이루어진 데이터 객체를 전달하기 위한 데이터 포맷이다. 예시) {name:spring}
)

클라이언트와 서버는 통신을 하는데, 웹 페이지에서 새로고침 없이 이루어지는 통신을 '비동기통신'이라고 한다. 비동기통신을 하기 위해서는 서버와 클라이언트가 메시지를 주고받을 때, 본문에 데이터를 담아서 주고받아야 하며 이 때 본문을 body라고 한다. (html에서 흔히 보는 head와 body를 생각하면 된다.)

@RequestBody 어노테이션과 @ResponseBody 어노테이션이 각각 HTTP요청 바디를 자바객체로 변환하고 자바객체를 다시 HTTP 응답 바디로 변환해준다. @ResponseBody 어노테이션은 http에 데이터를 그대로 넘기겠다는 것을 의미한다. @ResponseBody를 사용하면 ViewResolver가 사용되지 않는다.

profile
개발 공부 기록

2개의 댓글

comment-user-thumbnail
2023년 8월 13일

좋은 정보 얻어갑니다, 감사합니다.

1개의 답글