본문 바로가기
개발

[Spring Boot] Web Application 프로젝트를 생성해보자.

by angeloper 2023. 7. 1.
반응형

오늘은 Spring Boot Application을 통하여 Web Application 프로젝트를 생성하는 방법을 알아보겠습니다.

이전에 Spring 개발을 위한 Tool 설치방안을 알아보기로 하였는데, 프로젝트 생성? 이게 무슨 말이냐고 물어보실 수 있으실 것 같습니다. 우리가 Web Application 프로젝트를 생성하다 보면, 자동으로 Tool도 설명드릴 수 있을 거 같아, 금일은 프로젝트 생성을 하는 부분을 설명드리려고 합니다.

 

프로젝트 생성을 하는 방법은 여러가지 방법이 있습니다.

 

스프링 이니셜라이져(https://start.spring.io) 사이트를 이용하여 웹 프로젝트를 생성하는 방법

 

이 방법은 비용이 들지 않으며, Spring 공식사이트(https://spring.io)에서 제공하는 것으로 알고 있어 Spring 프레임워크의 빠른 적용이 가능하다고 알고 있습니다. 이에, 많은 강의에서 프로젝트를 생성 시에 사용하는 것으로 알고 있습니다.

그럼, 스프링 이니셜라이져 사이트를 확인해 볼까요?

 

https://start.spring.io 사이트 화면

  • Project
    • 프로젝트를 빌드하기 위한 빌드 도구를 선택하는 옵션입니다.
      • Gradle-Groovy : Gradle은 JVM 기반의 현대적인 빌드 도구로, Groovy 언어를 사용하여 빌드 스크립트를 작성할 수 있습니다. Groovy 기반의 Gradle 스크립트는 가독성이 좋으며, 유연한 구성을 가능하게 한다고 합니다. Gradle은 의존성 관리, 빌드 자동화, 테스트 실행, 배포 등 다양한 빌드 관련 작업을 지원하고 있으며, Groovy를 이용한 Gradle 스크립트는 간결하고 강력한 DSL(Domain-Specific Language)을 제공하여 빌드 설정을 유연하게 구성할 수 있습니다.
      • Gradle (Kotlin) : Gradle은 JVM 기반의 빌드 도구로, Kotlin 언어를 사용하여 빌드 스크립트를 작성합니다. Kotlin 기반의 Gradle 스크립트는 타입 안정성, 표현력, 가독성 등의 장점을 제공합니다. Kotlin DSL을 사용하면 강력한 기능과 자동 완성을 활용하여 빌드 스크립트를 작성할 수 있습니다. Kotlin을 이용한 Gradle 스크립트는 Java와의 상호 운용성을 제공하면서도 더 간결하고 유연한 문법을 사용할 수 있습니다.
      • Maven : Maven은 Java 기반의 빌드 도구로, XML 기반의 프로젝트 객체 모델(POM, Project Object Model)을 사용합니다. Maven은 프로젝트 빌드, 의존성 관리, 테스트 실행, 패키징, 배포 등을 위한 표준화된 빌드 프로세스를 제공합니다. Maven은 중앙 저장소에서 필요한 의존성을 자동으로 다운로드하여 관리하고, 빌드 수명 주기를 정의하여 표준 작업을 실행합니다. XML 기반의 POM은 프로젝트의 구성, 의존성, 라이브러리 버전 등을 명시하여 일관된 빌드 환경을 구성할 수 있습니다. Gradle과 Maven은 모두 강력한 빌드 도구로, 의존성 관리, 빌드 프로세스 자동화, 배포 등을 지원하여 프로젝트의 개발 및 릴리스 과정을 편리하게 관리할 수 있습니다. 선택하는 빌드 도구는 개발자의 선호도나 프로젝트의 요구 사항에 따라 결정될 수 있습니다.
  • Language
    • 주 언어를 설정하는 기능입니다.
      • Java : Java는 가장 널리 사용되는 프로그래밍 언어 중 하나입니다. Spring Framework와의 완벽한 통합을 지원하며, 대부분의 Spring Boot 프로젝트는 Java로 개발됩니다. Java는 객체지향 프로그래밍을 기반으로 하며, 플랫폼 독립적이고 확장성이 높은 언어입니다. Java의 강력한 생태계와 다양한 라이브러리, 프레임워크, 도구들은 개발 작업을 지원하고 생산성을 향상합니다.
      • Kotlin : Kotlin은 JetBrains에서 개발한 현대적인 프로그래밍 언어입니다. Kotlin은 Java와의 100% 상호 운용성을 제공하며, Java와 함께 사용되는 Spring Boot 애플리케이션 개발을 위한 선택적 언어로 많이 사용됩니다. Kotlin은 코드의 가독성과 표현력을 높이기 위해 간결한 문법을 제공합니다. Null 안정성, 확장 함수, 데이터 클래스, 코루틴 등의 기능을 포함하여 개발 생산성을 향상합니다.
      • Groovy : Groovy는 JVM에서 동작하는 동적 프로그래밍 언어입니다. Groovy는 Java와의 강력한 상호 운용성을 가지고 있으며, Java와 함께 Spring Boot 애플리케이션 개발을 위해 선택적으로 사용될 수 있습니다. Groovy는 자바보다 더 풍부한 문법과 간결한 구문을 제공하여 개발 작업을 단순화할 수 있습니다. 동적 타입 시스템, 클로저, 메타프로그래밍 등의 기능을 제공하여 유연한 개발 경험을 제공합니다.
  • Spring Boot :
    • 스프링부트의 버전을 의미합니다. 스프링 버전의 표기방식은 다음과 같습니다.
      • RELEASE : "RELEASE"는 안정적으로 릴리스 된 버전을 나타냅니다. RELEASE 버전은 테스트와 검증을 거쳐 공식적으로 배포된 버전으로, 신뢰성과 안정성이 높은 버전입니다. RELEASE 버전은 일반적으로 사용자들에게 권장되는 버전으로, 프로덕션 환경에서 안전하게 사용할 수 있습니다.

      • SNAPSHOT : "SNAPSHOT"은 개발 중인 버전이나 빌드 중인 최신 코드를 나타냅니다. SNAPSHOT 버전은 아직 완전히 테스트되지 않았거나, 변경 사항이 포함된 최신 개발 버전입니다. SNAPSHOT 버전은 빠른 개발 주기를 가진 프로젝트에서 개발자들에게 최신 변경 사항을 제공하고 피드백을 받기 위해 사용됩니다. SNAPSHOT 버전은 안정성이 보장되지 않을 수 있으므로 프로덕션 환경에서 사용하는 것은 권장되지 않습니다.
  • Project MetaData : 생성할 프로젝트의 구성정보를 제공하는 내역입니다.
    • Group
      • 프로젝트의 소속을 나타내는 식별자입니다.
      • 주로 도메일 이름을 거꾸로 사용하여 지정합니다.
      • 보통 조직 또는 팀의 식별을 나타내기 위해서 사용합니다.
    • Artifact
      • 프로젝트의 고유한 이름입니다.
      • 보통 프로젝트의 목적 또는 기능을 설명하는 단어나 구를 사용합니다.
    • Name
      • 프로젝트의 인식 가능한 이름을 나타냅니다.
      • 일반적으로 사람들이 프로젝트를 인식하고 이해하는데, 도움이 되도록 간결한 이름을 사용합니다.
      • 프로젝트를 대표하는 이름으로 사용합니다.
    • Description
      • 프로젝트에 대한 간단한 설명을 제공하는 항목입니다.
      • 프로젝트의 목적이나 기능을 요약적으로 설명하는 데 사용합니다.
    • Package Name
      • 프로젝트의 Java 패키지 구조를 결정하는 항목입니다.
      • 일반적으로는 도메인 이름을 거꾸로 작성하여 패키지 이름을 사용합니다.
      • 프로젝트의 클래스들을 유일하게 식별하고, 코드의 구조화와 모듈화를 지원하고 있습니다.
    • Packaging
      • 프로젝트를 패키징 하는 방식을 선택하는 옵션입니다.
        • Jar : 실행 가능한 Jar 파일을 생성하여 독립적으로 실행할 수 있는 애플리케이션을 생성합니다.'
        • War : 서블릿 컨테이너에 배포되는 웹 애플리케이션 아카이브를 생성합니다.
    • Java
      • 주 언어의 버전을 설정하는 기능입니다
  • Dependencies
    • 프로젝트에 포함할 Spring Boot 라이브러리와 다른 의존성을 선택하는 옵션입니다.
  • Generate
    • 선택한 프로젝트의 설정과 의존성을 기반으로 실제 프로젝트 코드를 생성하는 기능입니다.
    • 이는 압축된 파일 형태로 나오며, 압축을 풀어 개발도구에 Import를 하여 개발을 시작할 수 있습니다.
  • Explore
    • 선택한 프로젝트 설정과 의존성에 대한 자세한 정보와 문서를 제공합니다.

우리는 다음과 같이 선택합니다.

  • 다른 부분은 모두 다 그대로 두고, Dependencies에서 다음 내용을 추가하시면 됩니다. 추가된 내역에 대해서는 천천히 설명할 예정이오니, 그냥 따라오시면 됩니다.
    • Lombok
    • Spring Configuration Processor
    • Spring Boot DevTools
    • Spring Web : 이게 제일 중요합니다.

Generate를 하여 프로젝트를 생성하시면 됩니다.

 

또한, 이 방식 외에도 툴을 이용한 방식을 다음 강의에서 설명할 예정입니다. 만약, 이것으로 만족하신다면 다음강의를 보시지 않으셔도 됩니다. 그럼 금일도 즐거운 개발되세요~!

반응형