spring boot 예제 - 웹 프로젝트 만들기

spring boot 예제

spring boot를 이용하여 웹페이즈를 만드는 샘플 프로젝트를 소개하려한다.

작업한 소스코드 예시는 github에 공유하고있습니다.
https://github.com/HyeonGuJ/demo-spring-boot-web

spring bootspring에서 작업했던 설정들을 보다 쉽게 할 수 있고, 첫 페이지를 만들기까지 시간이 오래걸리지 않는다. spring initializr를 통해 원하는 기능들을 조합하고 IDE를 통해 페이지를 띄우는것까지 진행해보자.

시간이 없다면 3. 프로젝트 생성하기로 넘어가세요.

spring initializr를 통해 프로젝트 생성

spring initializr는 spring으로 application을 만들기 시작할때 필요한 의존성을 자동으로 셋팅하여 구조를 잡아주기 때문에 application을 처음 만들때 사용하면 매우 좋다.

사용법

사용법은 크게 2가지가있다.

  • 웹사이트에서 원하는 항목을 선택 후 소스코드를 다운로드 받는 방법 (https://start.spring.io)
  • IDE 에서 제공하는 도구를 사용하는 방법
    • IDE마다 지원여부가 다름
    • IntelliJ는 지원
    • STS 는 지원하지않음 (2018년기준)

spring initializr를 사용할때 필요한 대부분의 작업은 의존성을 선택하는것에 초점이 맞춰져있다. 예제는 웹사이트에서 선택하는 방법으로 진행한다.

프로젝트 생성하기

먼저 spring initializr 웹페이지에 접속한다. https://start.spring.io

spring initializr 웹페이지

화면을잠시 살펴보면 5가지 항목이 있다. 간단히 그 기능을 살펴보면 아래와 같다.

  • Project : 의존성을 관리해주는 도구 - 라이브러리를 다운로드해준다
  • Language : 프로그래밍 언어
  • Spring Boot : spring boot 버전선택
  • Project Metadata : 프로젝트 정보, 일반적으로 도메인 역순
  • Dependencies : 필요한 의존성 선택하기

선택하기

Dependencies를 제외하면 위 스크린샷과 동일하게 진행한다.

  • Project : gradle
  • Language : java
  • Spring Boot : 2.2.4
  • Project Metadata
    • Group : com.hyeonguj
    • Artifact : demo
    • packaging : jar
    • java : 8

Dependencies

의존성은 웹 개발에 있어서 필수적인 요소는 매우 적다. 하지만 부가적인 다른 의존성들을 활용하면 개발생산성이 매우 향상되므로 이점도 포함시킨다. 가능한 필수적인 요소만 담으려고한다. api 동작 뿐 아니라 웹페이지 까지 포함된 서비스를 목표로 한다. db와 cloud,testing 등은 제외한다.

2020.02 기준 위에서부터 서술한다.

  • developer tools
    • spring boot dev tools
    • lombok
    • spring configuration processer
  • web
    • spring web
  • template engine
    • mustache

dependencies

다음 링크를 통해 이동하면 위 항목을 모두 선택한 화면을 볼 수 있다.

https://start.spring.io/#!type=gradle-project&language=java&platformVersion=2.2.4.RELEASE&packaging=jar&jvmVersion=1.8&groupId=com.hyeonguj&artifactId=demo&name=demo&description=Demo%20project%20for%20Spring%20Boot&packageName=com.hyeonguj.demo&dependencies=devtools,lombok,configuration-processor,web,mustache

이후 다운로드를 진행한다

개발환경 만들기

압축 해제

우선 다운로드 받은 압축파일을 원하는 경로에 풀어주자.
아래 그림과 같이 src폴더와 함께 의존성을 관리하는 build.gradle 등이 보인다.
unzip

IDE

web application을 만들기위해 준비하는과정이다. IDE 에 import하자. IDE는 IntelliJ를 사용한다. 개인적으로도 STS보다는 IntelliJ를 추천한다. 아래 링크를 통해 다운로드 받을 수 있다. 무료라이센스인 community 라이센스를 사용해도 무방하다.
https://www.jetbrains.com/ko-kr/idea/download/

그리고 이전에 압축해제한 경로를 import해준다.
File > Open

경로를 선택하면 필요한 라이브러리를 다운받는 등 개발에 필요한 작업을 자동으로 수행한다.
importing

이미 이상태로 웹 서버를 띄울 준비는 모두 끝났지만, 아무런 기능이 없다.

첫 페이지 만들기

프로젝트를 처음 셋팅하면 빠지지 않는 hello world를 만들어보자.

진입점 역할을 하는 controller를 생성한다.

HomeController.java <- 누르면 github 링크로이동

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.hyeonguj.demo.controller;

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

@Controller
public class HomeController {

@GetMapping
public String home() {
return "welcome";
}
}

welcome.muastache <- 누르면 github 링크로이동

1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
hello world!
</body>
</html>

폴더 구조는 다음과 같다

실행해보기

그리고 DemoApplication을 run 시킨다.

run application

수행하면 console 화면에는 기본설정인 8080포트로 정상적으로 웹서버가 작동한다는 문구를 볼 수 있다.

now running...

웹 브라우저를 열고 http://locahost:8080 에 접속해보면 hello world 문구를 볼 수 있다

open webpage

Comments