본문 바로가기
  • 노션에서 삽질한 내용을 정리하는 블로그
자기발전소/# JAVA

Spring 웹 개발 기초

by iamlucia 2020. 11. 5.

 

 

공부 자료: 

 

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런

스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 Back-End Java Spring MVC Spring Boot 온라인 강의 백엔

www.inflearn.com

 

스프링 웹 개발 기초


< 웹을 개발하는 세 가지의 방법 >

  • 정적 컨텐츠 : welcome page처럼 서버에서 뭐 하는 것 없이 파일을 !그냥 그대로! 웹브라우저에 내려주기

  • MVC 와 템플릿 엔진: 서버에서 프로그래밍해서 HTML을 조금 동적으로 변환하여 내려주기

  • API : JSON이라는 데이터 구조 포맷으로 클라이언트에게 데이터를 전달하는 방식 , API만 내려주면 화면에서 클라이언트가 알아서 그리고 정리 / 또는 서버끼리 데이터 흐를 때 API방식으로 주고받기도 한다.

 

> 정적 컨텐츠 

스프링부트는 자동적으로 정적 컨텐츠 기능을 제공한다.

  • Static Content를 /static 디렉토리 아래에서 찾아서 기능을 제공한다.

  • url이들어오면 컨트롤러는 먼저 mapping 된 컨트롤러를 찾는데,
    해당 url에 해당하는 컨트롤러가
    없다면,  source에 들어가 html 콘텐츠를 찾아 반환한다.

> MVC 와 템플릿 엔진 동작

MVC란, 모델-뷰-컨트롤러

템플릿 엔진, html 에서 변환해준다

 

과거에는 컨트롤러와 뷰가 분리되어있지 않았고, 뷰에서 모든 것을 다했다.

왜 분리했을까?

 

>> 프로그래밍을 할 때 '관심사'를 분리해야 한다.

 

  • View: 화면을 그리는 데에 모든 역량을 집중

  • Controller & Model : 비즈니스 로직이나 내부적으로 처리하는 데에 집중

HelloController

helloController에서 RequestParm으로 받은 "user" 파라미터 값으로 name을 Model에 담아
return "hello-template"을 찾아 해당 템플린 엔진 처리 

 

 

> API

 

html로 내리냐 api로 데이터를 바로 내리냐의 방식의 차이를 알고 있으면 된다.

 

@HelloController

@ResponseBody 가 사용되면

HTTP의 BODY에 문자내용을 직접 반환하게 되는데

객체를 반환하는 경우에는

객체를 JSON형식으로 바꾸어 반환한다.

이때 사용되는 객체 처리 Converter : MappingJackson2HttpMessageConverter
(클라이언트의 HTTP Accept Header 와 서버의 Controller 반환 타입 정보 둘을 조합하여 Converter가 선택된다.)

localhost:8080/helloApi?naem=spring

 

'자기발전소 > # JAVA' 카테고리의 다른 글

Spring Boot 실습 2: Repository  (0) 2020.11.06
Spring Boot 실습 1: 비즈니스 로직  (0) 2020.11.05
Spring Boot 공부 기록 2  (0) 2020.11.05
Spring Boot 공부 기록 1  (0) 2020.11.04
JAVA : SingleTon 싱글톤 패턴  (0) 2020.11.03