본문 바로가기
🌿Java & Spring/Spring

스프링 웹 개발 기초(정적 컨텐츠, mvc, API)

by 하루하루 나아가기 2024. 4. 30.
반응형

내가 공부한 걸 내 언어로 정리를 해보려고 한다. 처음에는 어색해도 꾸준히 해보겠다. 

스프링 공부를 다시 시작했다. 김영한님의 스프링입문 강의를 듣고 있다. 

 

스프링은 자바의 프레임워크이다. 스프링부트를 통해 실행된다고 볼 수 있다. 

스프링부트 프로젝트를 생성하는 사이트이다. 

https://start.spring.io/

 

 지금 공부할 때는 3.2.5버전으로 생성했다. 자바는 21을 썼다. 

 

웹 개발의 기초라 함은 화면에 표시되는 것과  api로 나눠진다고 볼 수 있다. 

 

1. 정적 컨턴츠

정적컨텐츠는 html을 바로 보여주는 것?이다. html을 찾아 화면에 표시해준다.

 

처리과정은 

내장 톰켓 서버 -> resources:static/hello-static.html -> 웹브라우저

 

2. MVC와 템플릿 엔진

MVC: Model, View, Controller 

thymeleaf을 사용했다. 

 

@GetMapping을 통해 접근하고 

@RequestParam과 model.addAttribute를 사용해 

동적으로 template폴더 아래에 있는 html파일에 접근하고 

url에도 hello-mvc?name=spring 처럼 

mapping에서 정의한 name과 사용자가 입력하는 name을 통해 

화면을 렌더링한다. 

 

처리과정은

내장 톰켓 서버 -> helloController -> viewReolver -> HTML(변환 후) -> 웹 브라우저

 

3. API

서버와 서버가 통신할 때 주로 쓰인다.

@GetMapping을 통해 접근하고

@ResponseBody를 사용한다. 

@ResponseBody를 사용하면 viewResolver를 사용하지 않는다. 대신에 HTTP의 Body에 문자 내용을 직접 반환한다. 

객체를 반환하면 개체가 JSON을 변환된다. 

기본 문자 처리 : StringHttpMessageConverter

기본 객체처리 : MappingJackson2HttpMessageConverter

처리과정은

내장 톰켓 서버 -> helloController(@ResponseBody) -> HttpMessageConverter -> JSON으로 반환 

반응형

댓글