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

✨New Wisdom✨·2020년 12월 25일
4

📕 SpringBoot 📕

목록 보기
7/8
post-thumbnail

김영현님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술을 수강하면서 기록하는 노트 ✍️

프로젝트 생성

사전 준비

  • Java 11 설치
  • IDE IntelliJ 설치

프로젝트 만들기

Spring Initializer에서 프로젝트를 생성한다.

Project

과거에는 Maven을 많이 썼으나, 요즘은 gradle을 쓰는 추세다.

Version

  • SNAOSHOT : 아직 만들고 있는 버전이다.
  • M1 : 아직 정식 릴리즈가 아니다.

Project Metadata

  • Group : 회사 이름
  • Artifact : 프로젝트 빌드될 때 이름
  • Dependencies : 어떤 라이브러리를 기반으로 쓸건지 (Spring Web, Thymeleaf 추가)

Generate 하고 인텔리제이에서 프로젝트를 열어준다!

구조

gradle

gradle과 관련된 폴더

src

  • main : 실제 패키지들이 모여있는 폴더
  • test : 테스트와 관련된 폴더 (요즘 굉장히 중요!)

build.gradle

예전에는 한땀한땀 다 쳤지만 요즘에는 스프링 부트가 나오면서 starter가 다 설정해준다!
빌트에 필요한 정보들을 모아놓은 곳

프로젝트 실행


HelloSpringApplication파일을 보면 화살표가 보이는데 이 프로젝트를 Run해주자!
그럼 저렇게 우다다다 프로젝트가 실행되고,

8080 포트에서 열린 걸 볼 수 있다.

프로젝트 생성 실행 성공~
아무것도 연결을 안해놨기 때문에 에러나는게 당연하다.

라이브러리

요즘 빌드 툴들은 의존 관계를 관리해준다.

dependencies는 이것 뿐인데,


이렇게 의존 관계에 있는 것들을 자동으로 땡겨온다!
요즘은 라이브러리 빌드하고 웹서버로 올리면 끝!

✚ 실무에서는 System.out.println()으로 로그를 남기지 않고 log로 남긴다!
중요한 오류를 더 모아 볼 수 있기 때문에(?)

스프링 부트 라이브러리

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

View 환경설정

Welcom 페이지 만들기


index.html에다 작성하고 실행을 시키면

짠!

spring boot가 제공하는 welcome 페이지

스프링의 공식 문서/spring boot feature로 들어간다.

index.html을 올려두면 Welcome 페이지 기능을 제공한다.

thymeleaf 템플릿 엔진

공식 사이트

실행되는 기본 프로젝트를 만들어보자

controller 패키지 추가

HelloController

@Controller
public class HelloController {
    @GetMapping("hello")
    public String hello(Model model){
        model.addAttribute("data","hello");
        return "hello";
    }
}

"/hello" 패스로 요청이 들어오면 이 메소드를 실행시킨다.

template 안에 hello.html 만들기

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<p th:text="'안녕하세요. ' +${data}">안녕하세요. 손님</p>
</body>
</html>

xmlns:th="http://www.thymeleaf.org"을 씀으로 thymeleaf를 쓸 수 있다.

동작 환경

웹 브라우저에서 어떤 패스로 요청을 하면 내장 톰캣 서버에서 해당 패스에 매핑된 컨트롤러를 찾아 메소드를 실행시킨다.

model.addAttribute("data","hello");
return "hello";

요 부분을 보면 return으로 반환한 내용을 templete 폴더에서
해당 파일을 찾아 렌더링 하고, model을 함께 넘겨준다.
이제 thymeleaf 템플릿 엔진 처리를 해준다.

이제 "/hello" 로 요청을 보내면,

빌드하고 실행하기

프로젝트가 있는 폴더로 들어가서

$ ./gradlew build


그리고 build 폴더에 들어간다.

$ cd build/libs


그럼 이렇게 파일이 만들어진 것을 확인할 수 있다.

자바로 실행시키기

$ java -jar hello-spring-0.0.1-SNAPSHOT.jar


이렇게 실행 되는 것을 볼 수 있다.
이 jar 파일만 집어 넣고 실행 시키면 끝이다!

빌드 파일 지우기

$ ./gradlew clean build
profile
🚛 블로그 이사합니다 https://newwisdom.tistory.com/

0개의 댓글