[Spring Boot] Rest API Server(1) - IntelliJ 프로젝트 생성
최근 게이트웨이를 개발해야할 업무가 생기면서 기존에 크지 않던 API서버를 그대로 사용하기 위하여 MSA로 개발하기로 했다.
그래서 개발을 하고 있는 환경으로는 Spring Cloud Gateway + Hystrix + Spring Config + Eureka 환경에 Boot로 개발한 자바 서버와
노드 서버등이 분산되어 있다.
그중 이번에는 진행을 하면서 가장 기본이 되는 Spring boot REST API 서버 에서 프로젝트 생성부터 알아본다
개발환경
IDE | IntelliJ |
JDK | adoptopenjdk13 |
1. Create Project
Intellij의 Spring Initializr를 사용하면 https://start.spring.io에서 제공하는 스프링부트 프로젝트 생성과 같은 방식으로 스프링 부트 프로젝트를 좀 더 쉽게 만들 수 있다
제일 처음 SDK 버전을 선택하고 넘어간다
그리고 기본정보등을 설정해준다.
프로젝트 기본이 되는 Group, Artifact 정보들을 입력한다
(기본정보는 https://docs.spring.io/initializr/docs/0.4.x/reference/htmlsingle/#getting-started-advanced-options) 에 설명을 참조해도 좋다
Type은 gradle 프로젝트로 가기위하여 gradle로 선택하고
packaing은 Spring boot의 내장된 서버를 사용하기위하여 jar로 배포한다
스프링 부트에 내장서버는 tomcat, jetty, netty, undertow 가 있다
그리고 필요한 dependency 들을 선택해준다. 물론 build.gralde 에서 차후에 추가나 제거할 수 있다.
Eureka, JPA, Config 서버 등을 연동하기위해서는 추가적인 dependency가 필요하지만 이부분은 차후에 포스팅할 때 추가한다.
그리고 가장 기본이 되는 dependency들만 추가한다.
- Spring Boot devTools (Optional) : 이건 개발을 보조해주는 툴이기에 사실상 선택사항이다. 개발을 하면서 자동 빌드를 지원해준다. 자동 빌드가 되는 부분에 대해서는 사용자가 직접 설정할 수 있다.
- Lombok : 롬복은 자바에서 기본이 되는 getter, setter, constructor 들을 자동으로 관리해준다. 이 외에도 builder 나 null 관리등 다양한 기능들을 제공하기에 추가하여 진행한다.
- Spring Web : 가장 중요한 dependency 이다. 과거에는 Spring Web MVC 또는 Spring MVC 라고도 하며, Spring의 Rest Service를 제공할 수 있게 도와준다.
그리고 Spring boot 버전을 설정할 수 있다.
그리고 프로젝트 이름을 설정한다.
결국 위에 https://start.spring.io에서 제공하는 방식을 IDE에서 할 수 있게 공식 지원한 것 뿐이다.
2. 프로젝트 확인
프로젝트가 생성되면 다음과 같은 구조로 생성된다.
그리고 Lombok을 위한 플러그인의 설치와 활성화 여부를 확인하고,
Preferences(mac) / setting (Window) - Build, Execution, Deployment - Annotation Processors 에서 Enable annotation processing가 체크 되어 있나 확인 후 안되어 있으면 체크를 해준다.
그리고 Build.gradle 파일을 보면 아까 설정한 정보들을 확인할 수 있다.