백엔드 개발자 시작 1일차

백엔드 개발자·2023년 3월 19일
0

Back-End

목록 보기
1/2

스프링 완전 정복 로드맵 시작

Spring Boot 시작

  • Spring 이란?
    Web application 을 개발하기 위한 도구

1. 프로젝트 환경 설정

- 사전 준비

  • Java 11 설치
  • IDE : IntelliJ or Eclipse
    *스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트 생성 (https://start.spring.io)
    vue cli와 같은 역할

  • Gradle?

  • Maven?

  • Version
    SNAPSHOT 과 M1은 아직 정식 출시전의 버전이니 참고

  • Group

  • Artifact

  • Name
    프로젝트 명을 의미한다.

  • Dependencies
    어떤 라이브러리를 사용 할 것 인지?
    Spring Web, Thymeleaf

설정 후 Generate를 하게 되면 파일이 다운 된다.
다운 된 파일을 압축해제 하고 IntelliJ에서 Open 하면 설정에 필요한 파일들이 다운로드 된다.

Build.Gridle

  • 버전 설정, 라이브러리 등의 정보들이 들어 있다.
  • repositories 는 mavenCentral이라는 사이트가 있는데 그 사이트에서 라이브러리를 다운 받아라 라는 설정 정보
  • dependencies 는 start.spring.io에서 선택 했던 dependencies

java파일을 실행하게 되면 내장되어있는 Tomcat에 의해 웹 서버가 실행 된다.

** Gradle 설정에서 Build and run using 과 Run tests using 부분을 IntelliJ IDEA 를 사용하면 더 빠르게 켜진다고 한다.

2. 라이브러리 살펴보기

Dependencies에서 선택한 라이브러리들을 설치하게 되는데 두 개만 설치했음에도 불구하고 관련된 라이브러리들이 자동으로 설치되게 된다.
(**양이 생각보다 엄청 많다!)

  • spring-boot-starter-logging > logback, slf4j : log 인터페이스
    (어떤 방식으로 로그를 남길 것인지에 대한 라이브러리)
  • spring-boot-starter-tomcat : 톰캣 (웹서버)
  • spring-webmvc : 스프링 웹 MVC
  • spring-boot-starter-thymeleaf : 타임리프 템플릿 엔진(View)
  • spring-boot-starter-test > junit : 테스트 프레임워크 / assertj : 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리

3. View 환경 설정

1) Welcome Page 만들기

index.html 코드 내용

<!DOCTYPE HTML>
<html>
<head>
    <title>Hello Spring Boot</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>

<body>
Hello World
<a href = "/hello">hello</a>
</body>
</html>

thymeleaf 템플릿 엔진 (공식 사이트 : thymeleaf.org )

html 코드 (main - resource - templates - hello.html)

<!DOCTYPE HTML>
<html xmlns:th = "http://www.thymeleaf.org">
<head>
    <title>Hello</title>
    <meta http-equiv="Content-Type" content="text/html; charset = UTF-8"/>
</head>
<body>
<p th:text="'안녕하세요. ' + ${data}" > 안녕하세요. 손님</p>
</body>
</html>

Java 코드 (main - java - ...)

package hello.hellospring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HelloController {

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

  • 컨트롤러에서 리턴 값으로 문자를 반환하면 뷰 리졸버(viewResolver)가 화면을 찾아서 처리한다.
  • 스프링 부트 템플릿엔진 기본 viewName 매핑
  • resources:templates/ + {ViewName} + .html
  • spring-boot-devtools 라이브러리를 추가하면, html 파일을 컴파일만 해줘도 서버 재시작 없이 적용 가능.(vue.js 같은 방식 인듯)

4. 빌드하고 실행하기.

cmd 콘솔로 이동
1. ...\hello-spring\hello-spring 에서 gradlew.bat 실행
2. build\libs 로 이동
3. java - jar.hello-spring~~.jar command로 파일 실행
4. 잘 되지 않는 경우 clean build 사용

출저: 인프런 강의

0개의 댓글