Springboot D01

최성진·2023년 4월 13일
0

SpringBoot

목록 보기
1/6

CS 및 세팅법

1. Framework 란?

  • '뼈대나 근간'을 이루는 코드들의 묶음
  • 프로그램의 기본 흐름이나 구조를 정하고, 이 구조에 자신의 코드를 추가하는 방식으로 개발할 수 있도록 하는 프로그래밍의 기본 틀을 의미
  • 개발에 필요한 구조가 제공되고, 여기에 필요한 부분을 조립하는 형태로 개발이 진행된다.

2. 라이브러리

  • 자주 사용되는 로직을 재사용하기 편리하도록 잘 정리한 일련의 코드들의 집합

3. Framework vs 라이브러리

  • 프레임워크는 자동차의 프레임, 즉 기본적으로 구성하고 있는 뼈대를 말한다.
  • 라이브러리는 자동차의 기능을 하는 부품을 의미한다.
  • 한 번 정해진 자동차의 프레임은 바꿀 수 없다.
  • 소형차를 만들기 위해 뼈대를 사용하는데, 이 뼈대로 SUV를 만들수 없다.(Framework)
  • 그러나 바퀴나, 선루프, 헤드라이트 등은 비교적 다른 종류로 쉽게 바뀔 수 있다.(라이브러리)
    (어쨋거나 프레임워크도 결국 라이브러리의 집합)

4. Spring 이란?

  • 스프링 프레임워크는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 간단히 스프링이라고도 불린다.
  • 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다.

5. 스프링 프로젝트 생성

스프링 프로젝트 만드는 사이트 : https://start.spring.io/

5-1. Project

  • 빌드 툴 : 프로젝트에 필요한 의존성을 관리하는 툴(우리가 라이브러리 넣을때 빌드패스 잡던거를 해줌), 과거에는 Maven, 최근에는 Gradle 추세이다.
  • Maven : 버전까지 정확하게 지정해줘야함
  • Gradle : 버전을 알아서 정해줌 가끔 지정해줘야함

세팅법

https://start.spring.io/ 사이트 들어간후

  • 순서대로 세팅해주고 패키지 이름도 설정해준다

  • 저장하고 사용할 폴더(워크스페이스 폴더)에 옮기고
    sts툴에서 import -> Gradle -> Existing Gradle Project 해준다.

포트번호 설정방법

  • src/main/resources -> application.resources 에서
    server.port=9090
    입력

한글 설정방법

  • help -> marketplace -> java and web 검색
    eclipse enterprise java and web developer tools 3.29 다운 설치
    중간에 뭐 나오면 체크박스 체크하고 진행한다음 업데이트 한다고 하면 업데이트 리스타트 자동으로 됨

  • application.resources 에서
    spring.http.encoding.charset=UTF-8
    spring.http.encoding.enabled=true
    spring.http.encoding.force=true
    입력

  • 툴 한글설정
    enc 해서 UTF-8로 한글 세팅

6. 스프링 시작점

  • @SpringBootApplication : 스프링 부트의 자동설정 읽기와 생성이 모두 자동으로 설정된다.

7. Spring MVC

  • @Controller : 해당 url mapping을 찾는 역할
  • @GetMapping : url get 방식 요청 매핑
  • 컨트롤러에서 리턴 값으로 문자를 반환하면 resources/templates/ + {viewName} +.html
    (즉 viewName 부분을 String 타입으로 지정해주면 알아서 해줌)
    (그 앞뒤로 있는 부분은 자동으로 디폴트값으로 들어가있는거임 안보임)
    이걸 알아서 해주는게 -> 뷰 리졸버(viewResolver)

8. DispatcherServlet

  • 스프링 MVC도 프론트 컨트롤러 패턴으로 구현되어 있다.
  • 스프링 MVC의 프론트 컨트롤러가 바로 디스패처 서블릿이다.
  • DispatcherServlet -> FrameworkServlet -> HttpServletBean -> HttpServlet
    상속받는 순서 오른쪽이 최상위

9. ViewResolver

  • 실행할 뷰를 찾는 일을 한다
  • 페이지 컨트롤러가 리턴한 뷰 이름에 해당하는 뷰 객체를 매핑하는 역할
    (forward 방식이 기본으로 되어있음)

10. Model

  • Controller에서의 데이터를 Model에 담는다.
    View는 Model에 담겨있는 데이터만 쏙쏙 골라서 화면에 바인딩해준다
  • HashMap의 형태를 갖고있고, key와 value값을 저장한다.
  • servlet에서 request.setAttribute()와 비슷한 역할을 한다.

11. ModelAndView

  • model에서 view영역이 좀 더 확장
  • model과 view를 동시에 설정이 가능하려면 컨트롤러는 ModelAndView객체만 리턴하지만 Model 과 View가 모두 리턴 가능
  • addObject(key, value;)

  • 타임리프를 쓰는 이유
    스프링부트 에서는 jsp를 권장하지 않고 순수 html만 사용하는 방법이 대세이다. (jsp 쓰는 방법도 사용가능)
    그치만 순수 html만 사용하기에는 한계가 있기 때문에 타임리프를 사용한다.
  • 리퀘스트 요청이 왔을때 제일먼저 데이터를 받는 부분이 Dispatcher Servlet 인데 이건 우리가 배웠던 프론트 컨트롤러 부분이다.
profile
마부리입니다

0개의 댓글