[Spring boot] IntelliJ IDEA를 이용한 Spring boot 프로젝트 시작

기존의 Java 언어를 이용해서 웹 개발을 위해서는 Tomcat, Jetty 등과 같은 Servlet Container를 설치하고, 프로젝트 내에 환경을 구성해야 했고, 대표적인 Java Application Framework인 Spring 역시 개발 환경 설정이 만만치 않다는 이유로 Java 언어를 잘 사용하는 분이 아닌 분들은 대부분 웹 개발을 위해 비교적 개발 환경 설정이 쉬운 Node.js의 Express나 Python의 Django 등을 많이 사용하죠.

 

Spring boot

Spring boot는 이러한 Spring의 개발 환경 설정의 어려움과 부담을 덜어주기 위해 개발 환경 설정을 최소화 하고, 개발자가 비즈니스 로직에 집중할 수 있도록 도와줍니다.

먼저 Spring boot의 특징부터 간단히 살펴보자면..

  • Embedded Tomcat이 내장되어 있어, Jetty 등을 사용해 독립 실행이 가능한 Spring Application 개발이 가능합니다.
  • 통합 스타터를 제공하여 Maven, Gradle 등의 디펜던시 구성을 간소화 하였습니다.
  • Starter 패키지를 통해 자동화된 스프링 설정을 제공합니다.
  • 번거로운 XML 설정을 요구하지 않습니다.
  • JAR 파일 포맷을 사용해 Java 옵션만으로도 애플리케이션 배포가 가능합니다.
  • 애플리케이션 모니터링과 관리를 위한 Spring Actuator를 제공합니다.

위 특징들 중에서 제가 진하게 칠해 놓은 두 가지 사항은 굉장히 매력적이라고 봅니다. 기존의 Spring은 의존성 주입(DI) 등이 모두 XML 설정으로 이루어져 있어, 코드를 두 군데를 봐야 하는 불편한 점이 있었습니다. 그러나 이를 Java 코드에서 어노테이션을 이용해 의존성 주입을 가능하도록 구현하였고, 또 JAR 파일로 배포할 수 있도록하여 Tomcat을 이용하지 않고, Java 옵션만으로도 애플리케이션 배포가 가능한 것은 그만큼 프로덕션에 대한 자유도도 높였다고 볼 수 있습니다.

 

How to start

그럼 이제 IntelliJ IDEA를 이용해 Spring boot 프로젝트를 시작해보도록 하겠습니다. 먼저, IntelliJ IDEA를 실행시킨 후, Create New Project 버튼을 클릭해줍니다.

좌측에서 Spring Initializr 버튼을 클릭해줍니다. Spring Initializr는 간단한 기본 정보만으로 Spring boot 프로젝트를 빠르게 만들어줄 수 있도록 Spring 프로젝트에서 개발한 도구입니다.

Project SDK에서 여러분이 원하는 Java 버전을 선택할 수 있습니다. 이 포스트에서는 Java 8 버전을 이용해서 시작해보도록 하겠습니다. 

Next 버튼을 클릭하면 여러분들의 프로젝트 이름을 입력해야 합니다. 그런데, 일반적으로 우리가 쓰는 Java 프로젝트의 이름과는 좀 더 구체적으로 지정해야 하는 느낌입니다. 각각 하나씩 설명을 드리자면..

  • GroupID: 여러분의 프로젝트를 모든 프로젝트 사이에서 고유하게 식별해주는 ID
  • ArtifactID: 현재 만들려고 하는 프로젝트의 이름으로 차후 배포할 떄 JAR 파일에 붙여지는 파일 이름

지금은 작은 프로젝트로 시작하게 되지만, 프로젝트가 커지면, 여러 프로젝트를 만들게 됩니다. 그러면 해당 프로젝트에 대한 그룹핑이 필요할텐데, 그 그룹의 ID를 GroupID라고 보시면 되고, 각각의 프로젝트 이름을 ArtifactID에 넣어주시면 되겠습니다.

다음으로, 의존성 관리 툴을 정해야 합니다. 의존성 관리 툴은 Maven, Gradle 두 가지를 고를 수 있는데, 개인적으로 저는 Groovy 언어를 사용하는 Gradle을 많이 사용하는 편입니다.

Langauge는 Kotlin 언어로 진행하고, Packaging은 Jar 파일로 맞춰 주세요. 버전과 프로젝트 이름은 위에서 설정한대로 그대로 이어가도록 하겠습니다.

Next 버튼을 눌러 다음으로 진행하면, 여러분들이 사용할 디펜던시를 선택할 수 있도록 목록을 제공합니다. 여기에 나와 있는 목록들은 대부분 Spring 개발팀에서 진행하는 디펜던시를 포함하여 GCP, AWS 등의 클라우드 툴, Java에서 Getter Setter 라이브러리로 유명한 Lombok 등 다양한 디펜던시가 제공됩니다.

그 중 REST API를 개발하고자 한다면, 대표적으로 Web 부분에서 Spring Web에 체크를 해주시면 됩니다. Spring Web은 Spring boot에서 REST API를 쉽게 개발하기 위한 디펜던시로 GetMapping, PostMapping 등 REST API의 어노테이션을 제공하는 방식으로 쉽게 REST API를 구현할 수 있습니다. 이 부분은 다음 포스트에서 다뤄보도록 하겠습니다.

마지막으로 여러분들의 프로젝트를 저장할 경로를 지정해주면 Spring boot 프로젝트가 뚝딱 만들어지게 됩니다.

다음 포스트로 이어 나가서, 간단한 REST API를 만드는 시간을 가져보도록 하겠습니다.

TAGS.
comments powered by Disqus

Tistory Comments 0