본문 바로가기

Spring

스프링 부트 애플리케이션 개발하기

1. 프로젝트 생성

 

1.1 스프링 부트 프로젝트를 쉽게 만드는 두 가지 방법

 

1. 인텔리제이 IDEA에서 프로젝트 생성
2. Spring Initializr를 이용하여 생성

 

 

1.2 인텔리제이 IDEA에서 프로젝트 생성

 

인텔리제이로 스프링 프로젝트를 생성하기 위해서는 Ultimate버전으로 업그레이드가 필요하다. 인텔리제이 Ultimate 버전에서는 내장된 Spring initializr를 제공한다. 이 기능을 이용하면 외부에서 프로젝트를 생성할 필요 없이 곧바로 스프링 프로젝트를 생성할 수 있다.
인텔리제이 Ultimate 버전에서 'New Project'를 클릭하면 스프링 부트를 개발할 때 필요한 설정 항목들이 나온다.

  • Name : 프로젝트 이름
  • Location : 프로젝트를 생성할 위치
  • Language : JVM 상에서 동작하는 언어
  • Type : 빌드 툴
  • Group : 해당 프로젝트를 정의하는 고유한 식별자 정보인 그룹을 설정
  • Artifact : 세부 프로젝트를 식별하는 정보
  • Package name : 패키지 이름을 정의하는 것인데, Group과 Artifact를 설정하면 자동으로 입력된다.
  • Project SDK : 해당 프로젝트의 SDK(Software Development Kit) SDK는 응용프로그램 등을 만들 수 있게 해주는 개발 도구의 집합이다.
  • Java : 해당 프로젝트에서 사용할 자바 버전
    • 프로젝트 구성의 자바 버전은 애플리케이션이 사용하는 자바 버전을 지정하는 것이고, SDK 버전은 컴퓨터에 설치된 툴킷을 나타낸다. 자바만 개발할 수 있는 SDK를 JDK라 한다.
    • 참고 : Spring Boot 2.7.x는 자바 8, 11, 17을 지원, Spring Boot 3.x에서는 자바 17 이상이 필요
  • Packaging : 애플리케이션을 쉽게 배포하고 동작하게 할 파일들의 패키징 옵션

 

다음 단계로는 의존성을 추가해야 한다. 의존성은 프로젝트를 만들 때 추가할 수도 있지만, 개발을 진행하는 중에 추가할 
수도 있다.

 

 

1.3 스프링 공식 사이트에서 프로젝트 생성하기


사용중인 인텔리제이가 커뮤니티 버전이라면 해당 방법으로 프로젝트를 생성하는 것이 좋다. 스프링 공식 사이트에는 스프링 부트 프로젝트를 자동으로 만들어 주는 서비스를 제공한다.

https://start.spring.io 해당 경로로 접속하면 프로젝트를 만들 수 있는 페이지가 나온다.

설정은 인텔리제이로 프로젝트를 만들 때 보았던 설정과 같다.

의존성을 추가하기 위해서는 'ADD DEPENDENCIES'를 클릭하여 의존성을 추가할 수 있다.
'GENERATE' 버튼을 클릭하여 프로젝트를 내려받을 수 있다. 내려받은 파일을 프로젝트를 진행할 경로로 압축을 푼다.
인텔리제이(또는 다른 IDE)를 실행하여 해당 경로의 프로젝트 파일을 열 수 있다.

 

 

2. pom.xml (Project Object Model)

 

pom.xml은 메이븐의 기능을 사용하기 위해 작성하는 파일이다. 이 파일에는 프로젝트, 의존성 라이브러리, 빌드 등의 정보 및 해당 프로젝트를 관리하는 데 필요한 내용이 기술돼 있다. 해당 파일을 알아보기에 앞서 메이븐이라는 빌드 도구에 대해 먼저 알아보아야 한다.

 

2.1 빌드 관리 도구

빌드 관리 도구는 JVM이나 WAS가 프로젝트를 인식하고 실행할 수 있게 우리가 작성한 소스코드와 프로젝트에 사용된 파일들(.xml, .jar, .properties)을 빌드하는 도구이다. 개발 규모가 커질수록 관리할 라이브러리가 많아지고 라이브러리 간 버전 호환성을 체크해야 하는 어려움이 발생하는데, 빌드 관리 도구를 이용하면 이 같은 문제를 해결할 수 있다.

 

2.2 메이븐

메이븐은 자바 기반의 프로젝트를 빌드하고 관리하는 데 상요하는 도구이다. 메이븐은 pom.xml 파일에 필요한 라이브러리를 추가하면 해당 라이브러리에 필요한 라이브러리까지 함께 내려받아 관리한다. 메이븐의 대표 기능은 다음과 같다.

  • 프로젝트 관리 : 프로젝트 버전과 아티팩트를 관리
  • 빌드 및 패키징 : 의존성을 관리하고 설정된 패키지 형식으로 빌드를 수행
  • 테스트 : 빌드를 수행하기 전에 단위 테스트를 통해 작성된 애플리케이션 코드의 정상 동작 여부를 확인
  • 배포 : 빌드가 오나료된 패키지를 원격 저장소에 배포

 

메이븐의 생명 주기

 

메이븐의 기능은 생명주기 순서에 따라 작동된다. 메이븐의 생명주기는 크게 '기본 생명주기(Default Lifecycle)', '클린 생명주기(Clean Lifecycle)', '사이트 생명주기(Site Lifecycle)'의 3가지로 구분한다. 각 생명주기는 아래 그림과 같고, 단(phase)가 존재하며, 특정 단계를 수행하기 위해서는 이전 단계를 마쳐야 한다.


각 단계에서는 메이븐에서 제공하는 플러그인이 설정된 목표(goal)를 수행하는 방식으로 동작한다. 또한 그림에서 표현되지 않은 세부 단계들이 있다. 메이븐의 생명주기 단계는 순차적으로 실행되며, 각 생명주기 단계의 역할은 다음과 같다.

 

클린 생명주기

- clean : 이전 빌드가 생성한 모든 파일을 제거

 

기본 생명주기

- validate : 프로젝트를 빌드하는 데 필요한 모든 정보를 사용할 수 있는지 검토
- complie : 프로젝트의 소스코드를 컴파일
- test : 단위 테스트 프레임워크를 사용해 테스트를 실행
- package : 컴파일한 코드를 가져와 JAR 등의 형식으로 패키징 수행
- verify : 패키지가 유효하며 일정 기준을 충족하는지 확인
- install : 프로젝트를 사용하는 데 필요한 패키지를 로컬 저장소에 설치
- deploy : 프로젝트를 통합 또는 릴리스 환경에서 다른 곳에 공유하기 위해 원격 저장소에 패키지를 복사

 

사이트 생명주기

- site : 메이븐의 설정 파일 정보를 기반으로 프로젝트의 문서 사이트를 생성
- site-deploy : 생성된 사이트 문서를 웹 서버에 배포

 

 

 

출처: 이 글의 출처는 책 '스프링 부트 핵심 가이드'를 참고하여 작성하였습니다.

https://www.yes24.com/Product/Goods/110142898 

'Spring' 카테고리의 다른 글

스프링 부트와 ORM  (5) 2024.10.03
API를 작성하는 다양한 방법  (1) 2024.09.27
Spring Boot 개발 환경 구성  (0) 2024.09.22
Spring Boot 개발을 위한 필수 지식  (2) 2024.09.22
스프링 부트(Spring Boot)란?  (0) 2024.09.22