forDevLife
[spring입문] 인프런 강의 1(프로젝트 생성) 본문
- 간단한 프로젝트 실습
1) Maven / Gradle : 프로젝트 관리해주는 툴, 대부분 Gradle
: 지금은 그냥 버전, 라이브러리 땡겨오는 거라고만 생각하자.
2) thymeleaf(View) : template engine(html 만드는)
spring web 두 개를 dependancy로 하여 spring initializr 진행
3) Gradle, Maven은 의존관리를 관리해 줌
> 예를들어 내가 web을 땡기면, 알아서 다 땡겨주는 편리함(external library에서 땡긴거 볼 수 있음)
> 실행만 했는데도, 웹서버(tomcat)이 뜸.(자동으로 tomcat library를 불러오는 것을 볼 수 있다)
> sprint boot core도 다 땡겨옴
> log 관련 : slf4j, logback
4) test
> 핵심은 junit library
> spring-test : spring과 통합하여 test할 수 있는 라이브러리
> mockito : 목 라이브러리
5) jar 파일 build 및 실행 (by terminal)
> gradlew build 실행
> build/libs 내에 jar 생성
> java -jar command로 jar 실행 하면 웹페이지 접속 가능
> ctrl + c로 종료
- Spring 웹 개발 기초
1) 정적 컨텐츠 : 그대로 내려주는 것 (파일을 그대로 웹브라우져에 전달해주는 것)
>1. 내장 톰캣 서버 -> 스프링 컨테이너 이동, hello-static 관련 컨트롤러를 찾음
>2. 없으면 resource:static 내에서 hello-static을 찾음
2) MVC와 템플릿 엔진 : 서버에서 html을 동적으로 내려주는 것.(html을 좀 바꿔서)
> MVC : Model / View / Controller
> 과거에는, View에서 모든 것을 다 했음(모델1 방식), but View는 보여주는 것에 모든 것을 집중 / Controller는 business logic에 집중
> 현재는 MVC 방식(관심사 / 역할을 분리함)
>1. 내장 톰캣 서버 -> 스프링 컨테이너 이동, helloController 메서드에 매핑되어있으면 해당 메서드 호출.
>2. return -> viewResolver가 template engine에 처리하라고 넘김
>3. 렌더링(변환) 후 웹 브라우저에 넘김
>4. 실제 소스 보면, 해당 키 값이 사용자가 전달한 값으로 바뀐 것을 확인(아래에서, ?name -> key 값에 spring!@!@ value를 전달)
http://localhost:8080/hello-mvc?name=spring!@!@
3) API : JSON data format(데이터 구조 포멧)으로 client에 데이터를 전달해 줌
> @ResponseBody : ViewResolve가 아닌, httpMessageConvert라는 놈이 동작 > http의 body에 문자 내용을 직접 반환
> httpMessageConvert는 StringConverter(기본 문자 처리) / JsonConverter(jackson library)-(객체 처리) 로 동작
> 객체의 경우 JsonConverter로 반환됨 > Json 형식으로 반환됨
- 회원 관리 예제
'Spring' 카테고리의 다른 글
JPA 사용 시 Entity에 기본 생성자가 필요한 이유 (0) | 2022.05.13 |
---|---|
스프링 입문 - 웹 개발 기초 <4> (0) | 2021.05.24 |
스프링 입문 - 웹 개발 기초 <3> (0) | 2021.05.20 |
스프링 입문 - 웹 개발 기초 <2> (0) | 2021.05.18 |
스프링 입문 - 웹 개발 기초 <1> (0) | 2021.05.17 |