게임 옥션 서버
Spring Boot 프로젝트 생성
KimGeonWoo
2024. 1. 8. 00:59
Spring Boot
Spring은 오픈소스 Java기반 프레임워크로써 개발자가 의존성에 관련된 업무를 지원하는 빌드 도구, 제어의역전, 의존성 주입(IoC/DI)등을 간편하게 사용하는 오픈소스 경량급 프레임워크입니다.
Spring Boot는 스프링을 보다 더 쉽게 사용하기위한 도구로써, Spring의 복잡한 환경설정들을 spring-boot-starter 옵션을 사용하여 보다 쉽게 사용할 수 있도록 도와주는 역할을 합니다.
Spring Boot를 사용하는 이유
- 자주 사용되는 라이브러리(log4j2, redis, jdbc)들의 버전 관리를 자동화 해준다.
- 내장 웹서버(TomCat)를 제공한다
- Test 코드 라이브러리를 지원한다.
- DB, MessageQueue등 연동시에 필요한 과정들을 간단한 설정으로 해결할 수 있다.
- 실행 가능한 JAR로 개발이 가능하다.
스프링 부트 프로젝트 설정 홈페이지 및 설정
Project :
- 사용할 빌드 툴을 선택합니다.
- Maven :
- 프로젝트를 진행하며 사용하는 의존성 라이브러리들을 관리해주는 도구입니다.
- POM(Project Object Model)의 정보를 담고있는 pom.xml을 사용하여 라이브러리들을 관리할 수 있습니다.
- xml을 사용하며 프로젝트가 커질수록 빌드 스크립트의 내용이 길어지며 가독성이 저하됩니다.
- Gradle :
- Java, C/C++, Python등을 지원하는 빌드 도구입니다.
- 변수선언, if, else, for 등의 로직을 구현할 수 있어 기존의 Maven보다 간결한 구성이 가능합니다.
- 캐시를 사용하여 중복된 작업을 최소화 하여 빌드시 Maven보다 10~100배더 빠른 빌드속도를 보장합니다.
- Gradle 사용 시 초기에는 Maven보다 더 복잡성을 요구합니다.
- Maven은 xml을 사용하여 프로젝트를 관리하기때문에 의존성 추가/삭제 시 Gradle보다 상대적으로 가독성이 떨어짐으로 인해 불편하다고 느껴졌습니다. 동시에 빌드속도를 고려하여 Gradle 빌드 툴을 선택하게 되었습니다.
Language :
- Java : 생성할 프로젝트에서 사용할 언어를 선택합니다.
Spring Boot :
- 생성할 프로젝트에서의 스프링 부트 버전을 선택합니다.
Project Metadata :
- Group, Artifact : 이후 프로젝트를 배포하는 경우 프로젝트가 어떤 프로젝트인지 알려주는데 사용합니다.
- Packaging : 배포시 패키징할 확장자를 선택합니다.
- Java : 사용할 자바의 버전을 선택합니다. 스프링 부트 3.1.3에서는 Java17이상만 호환이 됩니다.
Dependencies :
- 프로젝트를 생성하며 build.gradle에 의존성 주입을 할 라이브러리들을 선택합니다.
프로젝트 설정을 완료했다면, GENERATE를 선택하여 설정한 프로젝트를 다운받을 수 있습니다.
결과
- 스프링 부트를 사용하여 spring-boot-starter에서 제공하는 기능들(AOP, Test, Log4j2 등)을 보다 간편하게 사용할 수 있다.
- Gradle,Maven등 빌드도구를 선택하여 사용할 수 있으며, 빌드 도구를 사용함으로써 스프링부트에서 자동으로 버전관리를 도와준다.
- 스프링을 사용함으로써 느슨한 결합을 유지하며, 그로인해 DB,캐싱,MQ등 다양한 기능들을 간편하게 설정 및 관리할 수 있다.
느낀점
스프링 서적 토비의 스프링3.1을 학습하면서 스프링 부트를 적용하지않고 학습하였을떈 트랜잭션을 사용하기위해 JDBC를 직접 연결하는것부터 시작하여 스프링을 사용하기 번거로움을 가지고있엇습니다.
스프링 부트를 사용하여 빌드 툴을 Gradle로 설정하면서 동시에 간편한 라이브러리 등록 및 사용을 할 수 있게되었습니다.
또한 Gradle외에도 Maven의 장단점 및 차이점을 알게 되었으며, Maven을 사용하는 기회가 있다면 그에 관련해서 실제로 사용예시에 관련된 포스트를 남기겠습니다.