[Java, macOS] Spring Boot 프로젝트 생성부터 실행까지(1)

이성일·2024년 9월 1일

spring-boot

목록 보기
2/4

Device : MacBook Pro M3 (Apple Silicon)
OS : macOS Sonoma 14.5
JDK : OpenJDK 17
IDE : Intellij 2024.1.4

0.  Spring Boot란?

Java Spring Framework(Spring Framework)는 Java Virtual Machine(JVM)에서 실행되는 프로덕션급 독립형 애플리케이션을 만들기 위한 인기 있는 엔터프라이즈급 오픈소스 프레임워크입니다.

Java Spring Boot(Spring Boot)는 세 가지 핵심 기능을 통해 Spring Framework를 사용하여 더 빠르고 쉽게 웹 애플리케이션과 마이크로서비스를 개발하도록 돕는 툴입니다.

1. 자동 구성
2. 구성에 대한 독선적 접근 방식
3. 독립형 애플리케이션을 만드는 능력

이러한 특징들이 함께 작용하여 최소한의 구성 및 설정으로 Spring 기반 애플리케이션을 설정하도록 지원하는 툴을 제공합니다.

출처 : ibm.com

1.  프로젝트 생성

 프로젝트를 생성하는 방법에 대해서는 여러 방법이 있습니다
그 중 저는 Spring Initializr를 이용해서 생성해보겠습니다

Spring Initializr

Initializr generates spring boot project with just what you need to start quickly!
Spring Initializr

  서비스명, 설명만 봐도 기능이 유추가 될 정도로 매우 직관적이네요
그럼 한번 진행해보겠습니다

  • Project : 빌드 자동화 도구를 선택할 수 있습니다.
  • Langauge : 언어를 선택할 수 있습니다. 당연하지만 Java를 선택했습니다
    (만 추후 Kotlin도 혼용해서 사용이 가능합니다! 이 부분은 추후 포스팅 예정입니다)
  • Spring Boot : 버전 선택이 가능합니다 저는 3.2.9버전을 선택했습니다
    (SNAPSHOT이라 적힌 버전은 아직 개발 및 테스트 단계이므로 피했습니다)
  • Group: 기업 도메인명
  • Artifact: 빌드되어 나올 결과물
  • Name: 프로젝트명 (일반적으로 Artifact와 동일하게)
  • Description: 설명에 해당하는 부분
  • Packaging: RESTful 서버 어플리케이션을 개발 할 예정이므로 .jar를 선택했습니다
  • Java : 버전을 선택할 수 있습니다
    (Spring Boot 3.0 버전 이후로는 JDK 17(LTS) 이상을 사용할 것을 강력히 권장합니다)

🧰
 추가로 Spring Boot 3.0 버전 이후로는 상표권 문제로 기존 JavaEE 패키지명인 javax.* 를 사용할 수 없어
JakartaEE 패키지명인 jakarta.* 로 변경되었습니다.
작년에 신규 스켈레톤 프로젝트를 진행하는데 꽤나 많은 라이브러리들이 업데이트 지원이 되지않아 사용이 불가능하여
대체 라이브러리 찾느라 고생을 좀 했었던 기억이 있네요..
반드시 라이브러리들에 대해 의존여부를 확인하여 사용해야합니다!
관련 내용 : Preparing for Spring Boot 3.0

  • Dependencies : dependency를 미리 선택하여 프로젝트 빌드내용에 포함시켜줍니다.

    Spring Web(필수) : Spring Web MVC 뿐만 아니라 RESTful API 서버를 구성하는데 필수인 항목으로
    WAS로써 Apache Tomcat이 내장되어 있습니다
    Lombok(필수) : 어노테이션 기반으로 기계적으로 작성해야하는 코드들을 컴파일 시점에 생성해준다(!!)
    대표적으로 getter, setter, constructor 등이 있습니다. (이거 안쓰면 엄청 귀찮아지니 필수로 씁시다!)
    MySQL Driver : RDB인 MySQL의 JDBC Driver를 위해 추가했습니다
    본인이 사용할 DB에 맞게 선택하면 됩니다
    Spring Data JPA(필수) : JPA는 Java Persistence API라고 하는데 자바 ORM기술의 토대를 이루는 기술 명세라고 합니다.
    이번 프로젝트에서 구조가 간단한 테이블들에 적용해가며 학습해볼 예정입니다
    MyBatis Framework : SQL에 대한 boilerplate를 제거하고 소스 코드와 SQL을 분리하기 위해 사용했습니다
    JPA보다는 MyBtis가 더 익숙하기도 하고 복잡한 SQL과 동적쿼리를 이용하기 위해 추가했습니다

모든 세팅이 완료되었다면 하단의 GENERATE를 눌러 다운로드를 진행합니다

압축을 푸니 위와 같은 파일들이 보이네요
IntelliJ로 프로젝트를 Open 해봅시다

네. Spring Boot Application을 실행하기 위한 main함수와
위에서 선택한 Dependencies에 대한 내용이 build.gradle에 작성된게 보이네요!
한번 실행해볼까요?

Data Source에 대한 정보가 존재하지 않아 어플리케이션 실행에 실패한 모양이네요
다음 포스팅에서는 Local에 DB를 설치하고 어플리케이션 설정을 통해 Data Source 작성을 진행해보겠습니다

profile
늦었지만 차근차근

0개의 댓글