TIL(Today I Learned)

12월 27일(수)

공부한 내용을 제 언어로 빠르게 정리한 내용이라서 잘못된 내용이 있을 수 있습니다.

인프런: 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술(김영한님 강의)

프로젝트 환경설정

라이브러리 살펴보기

  • Gradle은 의존관계가 있는 라이브러리를 함께 다운로드 한다.

  • Spring Boot Library
    • 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
  • Test Library
    • spring-boot-starter-test
      • junit: 테스트 프레임워크
      • mockito: Mock 라이브러리
      • assertj: 테스트 코드를 좀 더 편하게 작성하도록 도와주는 라이브러리
      • spring-test: 스프링 통합 테스트 지원

View 환경설정

  • 컨트롤러에서 리턴 값으로 문자를 반환하면 ViewResolver가 화면을 찾아서 처리한다.
    • 스프링 부트 템플릿 엔진 기본 viewName 매핑
    • resources:templates/ + {viewName} + .html
        @Controller
        public class HelloController {
      
            @GetMapping("hello")
            public String hello(Model model) {
                model.addAttribute("data", "hello!!");
                // hello.html 내의 ${data}를 hello!!로 치환
      
                return "hello"; 
                // ViewResolver가 hello.html을 찾아서 전송
            }
        }
      

빌드하고 실행하기

  • 프로젝트 폴더의 gradlew 파일을 통해 빌드
      ./gradlew build
    
  • build 폴더가 생기면 하위의 libs 경로로 이동
      cd build/libs
    
  • libs의 jar파일을 다음과 같이 실행
      java -jar hello-spring-0.0.1-SNAPSHOT.jar
    
  • 서버가 정상적으로 실행되는지 확인