Springboot 세팅

sally·2024년 1월 1일
0

spring

목록 보기
2/2

Spring Initializr 에는 더이상 2.X 대 생성이 없다보니,
아직 3.X는 미루고 있는 상황에서 gradle 이나 모듈화를 공부 할 좋은 기회가 됐다고도 생각(?..)으로 직접 gradle 을 세팅해보다,
사실 그렇게 복잡하지도 않다는 생각으로 간략히 정리해 봅니다.

복잡하고, 자세히 알아야 하는 부분들은 알려주시면 감사하겠습니다. 🧡


p.s.

  • intellij Ultimate 기반으로 작업 합니다.
    (Community 버전만 사용했던 경험으로 알게 모르게 작은 부분들에서 헤맸었어서, 다를 수도 있을 거 같습니다.)

  • intellij도 버전마다 차이 있는 걸 요즘 많이 느끼는 데요. (-_-)
    사실, 개인적으로 최신 버전은 멈춤 현상도 잦아서 버전을 낮추기도 했었던 경험으로 개인적으로 권장하지 않기도 하며, 차이가 있을 수 있습니다.


intellij 프로젝트 생성하기

File > New > Project

  • 창이 뜨면, 가장 상단의 New Project 에서 Name 부분만 설정 해서 create 합니다.

모듈화 기반으로 가장 최상위 모듈설정 예시 입니다.
모듈화가 아닌 경우 해당 build.gradle 에 모든 dependency를 추가하시면 됩니다.

build.gradle setting

SpringBoot 공식 사이트에서 (2023.01.01 기준) GA 로 2.X 대 버전으로 2.7.18이길래 참고해서 작업 했습니다.

Dependency Versions

  • gradle 및 dependency 버전 정보를 얻을 수 있습니다.
    • 해당 버전 정보를 Maven Repository 에서 검색해서 복붙 합니다.
      • 더 좋은 사이트 공유 환영 합니다. ^^ .. 계속 지원 되기도 하고, 전 여기가 편한 거 같아요...
    • 검색 되지 않는 그외 버전들은 Maven Repository에서 최신 아닌 버전들을 선택하거나, 검색하면서 참고 했습니다.
  • Java 버전 등은 Sprigboot 공식문서에서 허용 가능한 범위들을 확인해서 자유롭게 추가해도 됩니다. (전 요즘 17 😅)
    • Springboot 장점이죠. Spring framework와 다르게 간편! 세팅 할 수 있습니다!

springboot Docs

build.gradle의 기본 frame 인데요.. 정말 기본적입니다. ㅎㅎ

buildscript {
    dependencies {

    }
}

plugins {

}

compileJava {
    sourceCompatibility = 17
    targetCompatibility = 17
}

apply plugin: 'java'
apply plugin: 'java-library'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

group = 'org.example'
version = '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {

}

test {
    useJUnitPlatform()
}

해당 모듈 정상 동작하는지 간단히 확인 해 봅니다.

  • build.gradle 내 group 경로에 해당 모듈에 맞는 애플리케이션 클래스와 간단한 컨트롤러 생성해서 확인 합니다.
    • 기본은 Main 클래스만 있어서 스프링 동작시 주요한 @SpringBootApplication, SpringApplication.run(TestApplication.class, args); 가 없습니다.
    • 아직 DB 연동이 안 된 경우, JPA 등은 주석해서 확인 합니다.
@SpringBootApplication
public class TestApplication {
	public static void main(String[] args) {
		SpringApplication.run(TestApplication.class, args);
	}
}

그 외 모듈화로 bootJar 등 추가 할 수 있는데, 이 부분은 다른 블로그 등을 참고해 주세요. (-_- 배포시 달라질 수도 있어서 ㅎㅎㅎㅎㅎ 전 아직 부족한게 많은 거 같습니다. 개인프로젝트로 급하시면 그냥 프로세스 다 돌리세요 ㅎㅎㅎㅎ 비밀..)


하위 모듈

프로젝트명에서 마우스+우 클릭

Open Module Settings > Project Settings > Modules

+ 버튼을 클릭 > New Module 로 하위 모듈을 생성 합니다.

  • Name : 생성할 모듈명
  • Parent : 상위 모듈 (보통 앞서 생성한 프로젝트로 둡니다.)
  • Advanced Settings > GroupId : 생성된 하위 모듈의 작업 패키지명

생성된 해당 모듈의 오른 쪽에 Sources, Paths, Dependencies 등

  • Paths 등은 Springframework 라면 톰캣 등 했던 거 같아요
  • Dependencies에서 자바 버전을 미리 확인 해도 좋습니다.

build.gradle setting

정리?

  • 기존 build.gradle 을 복사해 와서 부분 수정하고 제거하고 추가하며 생성한 모듈에 맞게 작업 합니다.
  • 생성한 하위 모듈의 groupid의 패키지와 맞게 build.gradle 의 group을 정의 합니다.
    • 초반에는 너무 엄격하게 중복 되지 않게 하려 고민하지 않는 게 좋은 거 같습니다.
  • 최상위 src 를 사용하지 않는다면 삭제 하셔도 됩니다.

앞서 확인 했던 방식으로 스프링 애플리케이션 클래스와 간단한 컨트롤러로 동작 확인 하면 됩니다.

자세하게 라이브러리 별로 설명하지 않았는데요.
여러 테스트 해보면서 확인 해보시면 된다고 생각 했습니다.

처음에 gradle, 모듈화 구조, 아키텍처 ..
이렇게 가다가 계속 가고(?)
배포 환경에서 달라지기도 하고, 공부할 건 늘어나고 그랬는데요,
간략히 모듈화 방식만 익혀 두고, 천천히 필요한 부분들만 추가 해보는 게 좋다는 생각이 들었습니다.

  • 관련 강의들도 많이 있는 거 같아요. 기본적인 거 해보고 학습 하시면 좋을 거 같습니다.
  • 자세한 정보들은 검색으로도 가능 했었어요.

제가 간략히 확인하려 남겨둬서 부족한 부분이 많더라도 양해 부탁드립니다.
감사합니다.


with version 3.x.x

springboot 3.X 버전에서 몇 가지 차이점들 추가 해 봅니다.

  • swagger
    implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0'
  • JDK V17 이라면, jakarta ! (no javax)

reference. springboot v3.3.2 : Managed Dependency Coordinates


참고 사이트

그 외, 참고 사이트

profile
sally의 법칙을 따르는 bug Duck

0개의 댓글