프레임워크/Spring

[인프런][스프링 입문] 5~8 강

pythaac 2022. 2. 6. 23:33
  • 빌드하고 실행하기
  • 정적 컨텐츠
  • MVC와 템플릿 엔진
  • API

 

https://github.com/pythaac/Spring_tutorial/tree/main/%EC%8A%A4%ED%94%84%EB%A7%81%20%EC%9E%85%EB%AC%B8%20-%20%EC%BD%94%EB%93%9C%EB%A1%9C%20%EB%B0%B0%EC%9A%B0%EB%8A%94%20%EC%8A%A4%ED%94%84%EB%A7%81%20%EB%B6%80%ED%8A%B8%2C%20%EC%9B%B9%20MVC%2C%20DB%20%EC%A0%91%EA%B7%BC%EA%B8%B0%EC%88%A0

 

GitHub - pythaac/Spring_tutorial: These are test tutorial codes between react native(android) and spring boot

These are test tutorial codes between react native(android) and spring boot - GitHub - pythaac/Spring_tutorial: These are test tutorial codes between react native(android) and spring boot

github.com

d16ad6f0bd90cab68ace06d54d2f9184179c0aba

 

 

<스프링 입문 강의 – 5강 빌드하고 실행하기>

l  콘솔창으로 빌드하기

-       >> gradlew build

-       >> cd build/libs

-       >> java –jar springBasic-0.0.1-SNAPSHOT.jar

 

l  UnsupportedClassVersionError

-       https://javaalmanac.io/bytecode/versions/

-       buildclass file version : 55.0 (Java 11)

-       java runtime version : 52.0 (Java 8)

-       build.gradle > sourceCompatibility를 변경(11 -> 8)하여 해결

 

l  빌드가 잘 안될시

-       >> gradlew clean build


<스프링 입문 강의 – 6강 정적 컨텐츠>

l  웹을 개발한다는 것

-       정적 컨텐츠 : 서버의 별도 처리 없이 웹브라우저에 그대로 내려줌

-       MVC와 템플릿 엔진 : 서버에서 동적으로 바꿔서 내려줌(jsp/php를 템플릿 엔진이라고 함)

-       API : json으로 데이터를 내려줌 or 서버끼리 통신할 때 사용

 

l  정적 컨텐츠 디렉토리

-       resources/static

 

l  정적 컨텐츠 접근

-       localhost:8080/$파일명 : hello-static.html

-       1) Spring boot가 컨트롤러를 먼저 찾아봄

-       2) 없으면 정적 컨텐츠를 찾음


<스프링 입문 강의 – 7MVC와 템플릿 엔진>

l  Model / View / Controller

-       예전(jsp)에는 Controller가 분리되지 않고 View에서 모두 처리

-       현재 View는 화면과 관련된 일만, Controller는 비즈니스 로직만

 

l  Query String -> Controller -> Model -> View

-       requestQueryString으로 name 전송

-       Controller에서 @RequestParam으로 name 수신

-       Model addAttribute“name”name 매핑

-       View에서 ${name}name을 넣어 response


<스프링 입문 강의 – 8API>

l  API

-       View가 아닌 데이터를 직접 내림

 

l  @ResponseBody

-       Controller@ResponseBody를 추가해야함

-       http response body에 추가한다는 의미

-       템플릿은 ViewResolver에 던지는 반면

-       HttpMessageConvert가 동작

-       String이면 StringHttpMessageConverter

-       객체면 MappingJackson2HttpMessageConvert (Jackson은 객체를 JSON으로 바꾸는 라이브러리)

 

l  Controller에서 객체를 반환

-       객체를 반환하면 defaultJSON으로 response

 

l  자바 빈 규약 (Java Bean Convention)

-       Java bean : 하나 이상의 객체를 단일 표준화된 객체로 캡슐화하는 클래스

-       default constructor를 가져야 함 (argu가 없는 생성자)

-       naming convention에 따른 properties(get, set, is, to )에 접근할 수 있어야 함

-       serializable이어야 함