spring boot 예제 - 웹 프로젝트 만들기
spring boot 예제
spring boot
를 이용하여 웹페이즈를 만드는 샘플 프로젝트를 소개하려한다.
작업한 소스코드 예시는 github에 공유하고있습니다.
https://github.com/HyeonGuJ/demo-spring-boot-web
spring boot
는 spring
에서 작업했던 설정들을 보다 쉽게 할 수 있고, 첫 페이지를 만들기까지 시간이 오래걸리지 않는다. 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
화면을잠시 살펴보면 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
다음 링크를 통해 이동하면 위 항목을 모두 선택한 화면을 볼 수 있다.
이후 다운로드를 진행한다
개발환경 만들기
압축 해제
우선 다운로드 받은 압축파일을 원하는 경로에 풀어주자.
아래 그림과 같이 src
폴더와 함께 의존성을 관리하는 build.gradle
등이 보인다.
IDE
web application을 만들기위해 준비하는과정이다. IDE 에 import하자. IDE는 IntelliJ를 사용한다. 개인적으로도 STS
보다는 IntelliJ
를 추천한다. 아래 링크를 통해 다운로드 받을 수 있다. 무료라이센스인 community 라이센스를 사용해도 무방하다.
https://www.jetbrains.com/ko-kr/idea/download/
그리고 이전에 압축해제한 경로를 import해준다.
File > Open
경로를 선택하면 필요한 라이브러리를 다운받는 등 개발에 필요한 작업을 자동으로 수행한다.
이미 이상태로 웹 서버를 띄울 준비는 모두 끝났지만, 아무런 기능이 없다.
첫 페이지 만들기
프로젝트를 처음 셋팅하면 빠지지 않는 hello world를 만들어보자.
진입점 역할을 하는 controller를 생성한다.
HomeController.java <- 누르면 github 링크로이동
1 | package com.hyeonguj.demo.controller; |
welcome.muastache <- 누르면 github 링크로이동
1 |
|
폴더 구조는 다음과 같다
실행해보기
그리고 DemoApplication
을 run 시킨다.
수행하면 console 화면에는 기본설정인 8080
포트로 정상적으로 웹서버가 작동한다는 문구를 볼 수 있다.
웹 브라우저를 열고 http://locahost:8080 에 접속해보면 hello world 문구를 볼 수 있다