Spring
Spring Boot 프로젝트 구성 및 생성하기!
lazy_cat
2021. 9. 4. 15:54
인텔리J 커뮤니티 이용 시 스프링 부트 프로젝트의 설정에 필요한 모든 것을 수동으로 설정해줘야 한다는 단점이 있다.
Spring Initializr 사이트를 이용하여 프로젝트를 생성하여 import하면 이를 간단히 해결할 수 있다.
프로젝트 생성하기
Project Build 도구 (빌드 자동화 도구)
프로젝트에서 사용할 라이브러리들을 관리해주는 프로젝트 관리 도구.
(작성한 java 코드, 프로젝트 내에 필요한 각종 xml, properties, jar 파일을 JVM, WAS가 인식할 수 있도록 패키징)
개발에 필요한 다양한 외부 라이브러리들을 다운 받지 않고 사용할 수 있다.
빌드 도구 설정파일에 필요한 라이브러리 종류와 버전, 종속성 정보를 명시하여 필요한 라이브러리들을 자동으로 다운로드 해주고 이를 간편히 관리해주는 도구이다.
- Maven : 자바 전용 프로젝트 라이프사이클 관리 목적 빌드 도구.
- pom.xml을 이용한 정형화된 빌드 시스템.
*pom.xml : Project Object Model의 정보를 담고있는 파일. (프로젝트 정보, 빌드 설정, 빌드 환경, POM연관 정보) - 간단한 설정을 통한 배포 관리가 가능하다.
- pom.xml을 이용한 정형화된 빌드 시스템.
- Gradle : 그루비 스크립트를 기반으로 Maven과 빌드툴인 Ant Builder의 장점을 조합하여 만든 빌드 도구.
- build.gradle을 이용한 정형화된 빌드 시스템이다.
- 스크립트 언어로 구성되어 있기 때문에 XML과 달리 변수선언, if/else/for 등의 로직이 구현가능하여 간결하게 구성 가능하다.
[참고] https://hyojun123.github.io/2019/04/18/gradleAndMaven/
배포 방법
사용 목적에 따라 압축되는 파일의 범위만 다르다.
- Jar : Java Archive
- 자바 클래스 파일, 각 클래스 관련 리소스 파일 및 메타데이터를 압축한 파일.
- path 정보를 유지한채로 zip 파일 포맷으로 압축한다.
- 자바 클래스 파일, 각 클래스 관련 리소스 파일 및 메타데이터를 압축한 파일.
- War : Web Application Archive
- 자바 서버 페이지, 자바 서블릿, 자바 클래스, XML, 파일, 태그 라이브러리, 정적 웹페이지 및 웹 어플리케이션을 구성할 때 필요한 자원을 압축한 파일.
- 웹 어플리케이션을 어떻게 설정할 것인지에 대해 정의된 web.xml 파일이 존재.
의존성 설정
- Spring Boot Dev Tools : 개발에 편리한 기능 제공.
ex) 사용하는 자바파일, 리소스 등이 변경되면 어플리케이션을 다시 실행해주고 웹 페이지를 사용할 때 캐싱을 사용하지 않아서 변경 내용을 바로 반영하게 한다. - Spring Web : 웹 프로그래밍을 위한 라이브러리들이 추가 됨.
- Lombok : 컴파일 시점에 annotation 선언할 것을 가지고 메소드, 생성자 같은 것을 자동으로 만들어주므로 매우 편리하다.
ex) 간단한 한줄의 내용으로 getter/setter, 생성자, toString() 등을 자동으로 생성해준다. - Thymeleaf : 웹 템플릿 엔진으로 클라이언트에서 사용할 HTML을 서버에서 생성하기 위해 사용함. (HTML 기반)
-> JSP도 웹 템플릿 엔진이지만 SpringBoot에서는 더이상 JSP를 권장하지 않음.
설정 후 Generate하면 프로젝트가 생성된다!