Spring Initializr
프로젝트는 Eclipse, IntelliJ와 같은 IDE에서도 새로운 프로젝트로 구성할 수 있지만 쉬운 방법으로 spring initializr를 이용하여 기본 프로젝트를 생성하여 필요에 따라 확장하는 방법이 있다.
Spring Initializr 에서는 Maven/Gradle 중 어떤프로젝트로 진행할지 언어는 어떤것으로 할지 framework 버전 프로젝트의 기본구성과 Dependencies를 선택하여 기본 프로젝트를 구성할 수 있다.
프로젝트를 생성할때 Maven과 Gradle중 어떤것으로 할지 고민을 하게 되는데 지금은 Gradle이 대세이다.
Gradle이 Maven보다 빠른 성능과 사용성이 좋은데 XML로 라이브러리를 정의하고 활용하는 메이븐과 달리 빌드스크립트를 통해 어플리케이션 버전과 라이브러리등의 항목을 설정 할 수 있다.
기본적인 프로젝트의 구성을 선택하였다.
GENERATE 버튼을 눌러 프로젝트.zip을 다운받자.
압축을 풀어 프로젝트파일을 IDE에서 열어보자 Maven의 경우 프로젝트 폴더안에서 pom.xml을 선택 하고 Gradle은 폴더를 선택하는 것이 일반적이다.
자바개발에 가장 많이 사용하는 IntelliJ를 통해 프로젝트를 불러왔다.
아래와 같이 처음 프로젝트를 불러오면 필요한 파일들을 자동으로 다운받는다.
(IntelliJ는 https://www.jetbrains.com/ko-kr/idea/download에서 받을 수 있다)
IntelliJ Plugin 설치
Find Action메뉴에서 plugins를 검색하여 개발에 필요한 플러그인을 받는다.
Template Engine으로 Mustache를 정했기 때문에 필요한 플러그인을 설치한다.
생산성 향상을 위해 반복되는 코드를 어노테이션으로 정의하는 롬복(Lombok) 플러그인 설치.
필요에 따라 .gitignore를 자동으로 생성해주는 플러그인을 설치한다.
서버를 실행시켜보자
오른쪽 상단의 Run 버튼을 눌러서 로컬서버를 실행시킬 수 있고 서버 동작 상태를 로그를 통해 확인 가능하다.
브라우저에서 서버 기본설정인 localhost:8080을 입력하여 웹서버 페이지를 불러올 수 있다.
웹서비스 port는 src > main > resources > application.properties 또는 application.yml을 통해 변경 가능하다.
Hello World
controller생성
index.html 생성
resources 폴더 구조는 static와 templates이 있는데 static은 css, js, img와 같은 정적 컨텐츠를 templates은 확장자가 .html인 동적 컨텐츠를 분리하여 구성한다.
templates > index.html을 만들고 doc 입력 후 tab키를 누르면 html 기본 코드가 자동완성 된다.
자동완성된 코드에 Hello World를 작성하고 서버를 실행 시킨다.
Hellow World가 서버에 반영 되었다.
Mustache 사용
Mustache의 장점 (https://mustache.github.io/)
- Spring Boot에서 공식으로 지원하는 템플릿 엔진이다.
- Java뿐만 아니라 대부분의 언어를 지원한다.
- 다른 템플릿 엔진보다 심플한 사용방법을 제시한다.
- 로직코드가 없어 View의 역할과 서버 역할을 확실하게 분리한다.
- IntelliJ 커뮤니티버전을 지원한다.(Thymeleaf나 JSP는 커뮤니티 버전에서 사용할 수 없다.)
/user 로 서비스할 페이지를 추가로 만들어보자
먼저 MainController에 새로운 경로를 선언한다.
Model class가 선언되지 않아 붉은색으로 오류표기가 뜨는데 Model을 선택하면 Import class를 할수 있도록 안내해준다.
@Controller 어노테이션을 추가하면 자동으로 프레임워크에서 필요한 부분을 임포트 한다.
user.mustache 파일을 생성하여 코드를 작성한다.
controller에서 user_name이라는 변수를 지정하였으니 view파일에서도 같은 변수명으로 선언하는데 사용방법은 {{변수명}} 이다.
서버를 시작하여 localhost:8080/user 로 접속하면 정상적으로 작동되는것을 확인할 수 있다.
Tip
IntelliJ Auto-Reload 설정
Any changes 선택 후 Apply
Dependencies 항목이 변경될 때 자동으로 빌드를 새로 하는것을 확인할 수 있다.