Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

forDevLife

[spring입문] 인프런 강의 1(프로젝트 생성) 본문

Spring

[spring입문] 인프런 강의 1(프로젝트 생성)

JH_Lucid 2021. 2. 2. 01:29

- 간단한 프로젝트 실습

https://start.spring.io/

 

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 형식으로 반환됨

 


- 회원 관리 예제

 

 

Comments