[스프링 입문] Section 01 - 프로젝트 환경설정

Update:     Updated:

카테고리:

태그:

1. 스프링 프로젝트 생성

- 스프링 부트 스타터를 이용함

밑바닥부터 만드는 것이 아닌 boot를 사용하여 시작하도록 한다. (https://start.spring.io)

- 프로젝트 선택

  • Project: Gradle Project
  • Spring Boot: 가장 최신 버전
  • Language: Java
  • Java: 11

Gradle Project: 필요한 라이브러리를 땡겨오고, 빌드하는 Life Cycle까지 관리해주는 Tool로써, 과거 maven에서 요즘은 graddle로 바뀌는 추세라고 한다.

- Project Metadata

  • Group Id: hello
  • artifactId: hello- spring

artifact: 빌드되어 나오는 결과물

- Dependencies

‘라이브러리 간 의존관계’를 말하는 것으로 여기서는 어떤 라이브러리를 가져다 쓸 것인지 선택하는 것이다.

  • Spring Web
  • Thymeleaf

Thymeleaf: html을 만들어주는 템플릿 엔진

2. 라이브러리를 살펴보자

Gradle은 의존관계가 있는 라이브러리를 함께 다운로드 한다.
main 과 test의 폴더가 나뉘어져 있음 -> test code의 중요성을 의미한다.

- 스프링 부트 라이브러리

  • spring-boot-starter-web
    • spring-boot-starter-tomcat: 톰캣(웹서버)
    • spring-webmvc: 스프링 웹 MVC
  • spring-boot-starter-thymeleaf: 타임리프 템플릿 엔진(View)
  • spring-boot-starter(공통): 스프링부트 + 스프링 코어 + 로깅
    • spring-boot
      • spring-core
    • spring-boot-starter-logging
      • logback, slf4j

spring-boot-starter-tomcat: 과거엔 웹 서버에 java code를 직접 밀어 넣는 방식이었는데, 지금은 소스 라이브러리에 웹 서버가 내장되어 있다.
logback, slf4j: 이 두 라이브러리를 주로 많이 쓴다고 한다.
log에 대하여: 결과값 출력을 system에 하지 않고 log로 출력하는 이유는 로그 파일도 따로 관리가 되고, 심각한 에러 발생 시에 따로 모아서 볼 수도 있기 때문이다.

- 테스트 라이브러리

  • spring-boot-starter-test
    • junit: 테스트 프레임워크
    • mockito: 목 라이브러리
    • assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
    • spring-test: 스프링 통합 테스트 지원

junit: 자바에서 테스트할 때 주로 쓰는 라이브러리로 요즘 4에서 5로 넘어가는 추세라고 한다.

3. Welcome Page를 통해 동작 과정을 알아보자

image

1st. 웹 브라우저가 서버에 요청하면
2nd. Mapping 되어 있는 것을 찾아서
3rd. 해당 controller에 있는 메소드를 실행한다.
4th. controller가 반환한 값을 받아 viewResolver가 화면을 찾아 처리해준다.

Spring-Tutorial 카테고리 내 다른 글 보러가기

댓글 남기기