
4.1 프로젝트 생성
스프링 부트 프로젝트를 생성하는 방법으로는 다음과 같은 2가지 방법이 있습니다.
1번째. Intellij IDEA를 사용해서 프로젝트를 생성한다.
2번째. Spring Initializer를 통해서 프로젝트 생성하기
Intellij IDEA Community 버전 사용 시, Spring 공식 사이트에서 프로젝트를 생성하는 방법만 사용할 수 있습니다.
Ultimate버전에서만 IDE에서 프로젝트를 생성할 수 있습니다.
4.1.1 인텔리제이 IDEA에서 프로젝트 생성하기

사용하고자 하는 프로젝트의 이름을 설정한다. 해당 프로젝트의 이름으로 앞으로의 개발이 진행되고 추후에 변경하기가 까다로워서 처음에 정할 때 신중히 정하는 것이 좋다.
다음은 언어와 타입이다. 언어는 JVM 상에서 동작하는 언어를 선택한다. 만약 코틀린 언어를 통해서 Springboot 프로젝트를 실행할 것이라면 언어에서 Kotlin을 선택한다. 여기서는 JAVA를 선택한다.
타입은 빌드 툴을 선택하는 것이다. 현재 가장 많이 쓰는 빌드 툴은 Gradle을 많이 사용한다. 같은 Gradle이여도 사용하는 언어에 따라 Gradle이 나누어져있다는 것을 알 수 있다.
이전에는 Maven 빌드 툴을 사용해서 pom.xml로 dependency를 관리했다. 하지만 수동으로 depency를 하나 하나 xml 형식으로 적어줘야한다는 단점이 존재한다. Gradle에서는 Maven보다 쉽게 종속성을 관리할 수 있다
다음으로 그룹과 아티팩트이다. 그룹은 해당 프로젝트를 정의하는 고유한 식별자 정보인 그룹을 설정합니다.
아티팩트는 세부 프로젝트를 식별하는 정보를 기입합니다. 추후에 멀티모듈 스프링부트 프로젝트를 할 경우, 아티팩트에 따라 모듈이 구분됩니다.
또한, JDK와 JAVA의 버전 또한 신중히 선택해야한다. 스프링부트 버전에 맞는 JDK가 아니라면, 추후에 문제가 발생할 수 있다.
많이 사용하는 버전으로는 Springboot2.x.x에서는 JDK 11, JAVA 11을 사용하고, Springboot3.x.x에서는 JDK 17, JAVA 17
버전을 사용한다.
여기까지 설정했다면, 다음으로 종속성을 추가하는 페이지로 넘어간다.

UI를 통해서 사용자가 원하는 종속성을 추가할 수 있도록 만들어져있다. 프로젝트에 필요한 종속성을 클릭하면 종속성이 추가되고 생성 버튼 클릭 시 해당 종속성이 build.gradle이나 pox.xml에 적용되어 프로젝트가 생성된다.
4.1.2 스프링 공식 사이트에서 프로젝트 생성하기
위의 주소로 들어가게 되면 다음과 같은 화면을 볼 수 있다.

4.1.1절에서 설명했던 Intellij IDEA에서 프로젝트를 생성하는 것은 사실 위의 페이지를 통해서 프로젝트를 생성하고 로컬에 파일을 생성하는 방식으로 이루어 진다. 따라서 Intellij IDEA과 동일하다.

4.2 pom.xml(Project Object Model) 살펴보기
pom.xml은 메이븐의 기능을 사용하기 위해 작성하는 파일입니다. 해당 파일에는 프로젝트, 의존성 라이브러리, 빌드 등의 정보와 해당 프로젝트를 관리하는데 필요한 내용이 기술되어 있습니다.
4.2.1 빌드 관리 도구
빌드 관리 도구는 JVM이나 WAS가 이 프로젝트를 인식하고 실행할 수 있게 소스코드와 프로젝트에 사용되는 파일들을 빌드하는 도구입니다. 개발 규모가 커질 수록 라이브러리가 많아지고 호환성을 체크해야하는 어려움이 발생하는데 빌드 관리 도구를 사용하면 이러한 문제점들을 해결할 수 있습니다.
4.2.2 메이븐
Apache사에서 만든 Maven은 자바 기반의 프로젝트를 빌드하고 관리하는 데 사용하는 도구입니다.
메이븐의 가장 큰 특징은 pom.xml 파일에 필요한 라이브러리를 추가하고 빌드할 때, 자동으록 종속성을 검사해서 추가적으로 필요한 라이브러리까지 함께 내려받아 관리합니다.
실제 pom.xml 파일 형식
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.zero</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>demo</description>
<url/>
...
실제로 pom.xml 파일을 보게되면 조금 지저분하다는 느낌을 지울 수 없다. 이러한 이유로 Gradle을 최근에 많이 사용하는 것같다.

메이븐의 생명주기는 위와 같다.
가장 위에 있는 clean부터 deploy까지 순서대로 동작한다. 크게 기본 생명주기, 클린 생명주기, 사이트 생명주기의 3가지로 구분이 된다.
각 생명주기는 다음과 같은 단계가 존재하면 특정 단계를 수행하기 위해서는 이전 단계를 완료해야합니다.

4.3 Hello World 출력하기
4.3.1 컨트롤러 작성하기
가장 하위 패키지에서 controller 폴더를 생성하고 TestController 클래스를 생성한다.

package com.example.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@RequestMapping("/test")
public String test() {
return "Hello World!";
}
}
4.3.2 애플리케이션 실행하기
다음으로 우측 상단에 있는 실행버튼을 누르면 실행이 된다.

정상적으로 실행이 됐다면, Started DemoApplication in 0.525 seconds 이러한 로그가 마지막으로 출력될 것이다.
4.3.3 웹 브라우저를 통한 동작 테스트
다음으로 localhost:8080번으로 접속하게 되면

이러한 화면을 볼 수 있을 것이다.
4.3.4 Talend API Tester를 통한 동작 테스트
책에서는 크롬 익스텐션인 Talend API Tester를 통해서 스프링 부트를 테스트하려고한다. 하지만 추후에 더 복잡한 API를 테스트하기 위해서 나는 Postman을 사용해서 API를 테스트 해 볼 것이다.

localhost:8080/test로 접근했을 때 반환되는 값이 Hello Wordl!인 것을 확인할 수 있다.
'책' 카테고리의 다른 글
[Book] 스프링 부트 핵심 가이드 Chap.6 (0) | 2024.07.02 |
---|---|
[Book] 스프링 부트 핵심 가이드 Chap.5 (1) | 2024.07.02 |
[Book] 스프링 부트 핵심 가이드 Chap.3 (0) | 2024.06.23 |
[Book] 스프링 부트 핵심 가이드 Chap.2 (0) | 2024.06.23 |
[Book] 스프링 부트 핵심 가이드 Chap.1 (0) | 2024.06.23 |

4.1 프로젝트 생성
스프링 부트 프로젝트를 생성하는 방법으로는 다음과 같은 2가지 방법이 있습니다.
1번째. Intellij IDEA를 사용해서 프로젝트를 생성한다.
2번째. Spring Initializer를 통해서 프로젝트 생성하기
Intellij IDEA Community 버전 사용 시, Spring 공식 사이트에서 프로젝트를 생성하는 방법만 사용할 수 있습니다.
Ultimate버전에서만 IDE에서 프로젝트를 생성할 수 있습니다.
4.1.1 인텔리제이 IDEA에서 프로젝트 생성하기

사용하고자 하는 프로젝트의 이름을 설정한다. 해당 프로젝트의 이름으로 앞으로의 개발이 진행되고 추후에 변경하기가 까다로워서 처음에 정할 때 신중히 정하는 것이 좋다.
다음은 언어와 타입이다. 언어는 JVM 상에서 동작하는 언어를 선택한다. 만약 코틀린 언어를 통해서 Springboot 프로젝트를 실행할 것이라면 언어에서 Kotlin을 선택한다. 여기서는 JAVA를 선택한다.
타입은 빌드 툴을 선택하는 것이다. 현재 가장 많이 쓰는 빌드 툴은 Gradle을 많이 사용한다. 같은 Gradle이여도 사용하는 언어에 따라 Gradle이 나누어져있다는 것을 알 수 있다.
이전에는 Maven 빌드 툴을 사용해서 pom.xml로 dependency를 관리했다. 하지만 수동으로 depency를 하나 하나 xml 형식으로 적어줘야한다는 단점이 존재한다. Gradle에서는 Maven보다 쉽게 종속성을 관리할 수 있다
다음으로 그룹과 아티팩트이다. 그룹은 해당 프로젝트를 정의하는 고유한 식별자 정보인 그룹을 설정합니다.
아티팩트는 세부 프로젝트를 식별하는 정보를 기입합니다. 추후에 멀티모듈 스프링부트 프로젝트를 할 경우, 아티팩트에 따라 모듈이 구분됩니다.
또한, JDK와 JAVA의 버전 또한 신중히 선택해야한다. 스프링부트 버전에 맞는 JDK가 아니라면, 추후에 문제가 발생할 수 있다.
많이 사용하는 버전으로는 Springboot2.x.x에서는 JDK 11, JAVA 11을 사용하고, Springboot3.x.x에서는 JDK 17, JAVA 17
버전을 사용한다.
여기까지 설정했다면, 다음으로 종속성을 추가하는 페이지로 넘어간다.

UI를 통해서 사용자가 원하는 종속성을 추가할 수 있도록 만들어져있다. 프로젝트에 필요한 종속성을 클릭하면 종속성이 추가되고 생성 버튼 클릭 시 해당 종속성이 build.gradle이나 pox.xml에 적용되어 프로젝트가 생성된다.
4.1.2 스프링 공식 사이트에서 프로젝트 생성하기
위의 주소로 들어가게 되면 다음과 같은 화면을 볼 수 있다.

4.1.1절에서 설명했던 Intellij IDEA에서 프로젝트를 생성하는 것은 사실 위의 페이지를 통해서 프로젝트를 생성하고 로컬에 파일을 생성하는 방식으로 이루어 진다. 따라서 Intellij IDEA과 동일하다.

4.2 pom.xml(Project Object Model) 살펴보기
pom.xml은 메이븐의 기능을 사용하기 위해 작성하는 파일입니다. 해당 파일에는 프로젝트, 의존성 라이브러리, 빌드 등의 정보와 해당 프로젝트를 관리하는데 필요한 내용이 기술되어 있습니다.
4.2.1 빌드 관리 도구
빌드 관리 도구는 JVM이나 WAS가 이 프로젝트를 인식하고 실행할 수 있게 소스코드와 프로젝트에 사용되는 파일들을 빌드하는 도구입니다. 개발 규모가 커질 수록 라이브러리가 많아지고 호환성을 체크해야하는 어려움이 발생하는데 빌드 관리 도구를 사용하면 이러한 문제점들을 해결할 수 있습니다.
4.2.2 메이븐
Apache사에서 만든 Maven은 자바 기반의 프로젝트를 빌드하고 관리하는 데 사용하는 도구입니다.
메이븐의 가장 큰 특징은 pom.xml 파일에 필요한 라이브러리를 추가하고 빌드할 때, 자동으록 종속성을 검사해서 추가적으로 필요한 라이브러리까지 함께 내려받아 관리합니다.
실제 pom.xml 파일 형식
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.zero</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>demo</description>
<url/>
...
실제로 pom.xml 파일을 보게되면 조금 지저분하다는 느낌을 지울 수 없다. 이러한 이유로 Gradle을 최근에 많이 사용하는 것같다.

메이븐의 생명주기는 위와 같다.
가장 위에 있는 clean부터 deploy까지 순서대로 동작한다. 크게 기본 생명주기, 클린 생명주기, 사이트 생명주기의 3가지로 구분이 된다.
각 생명주기는 다음과 같은 단계가 존재하면 특정 단계를 수행하기 위해서는 이전 단계를 완료해야합니다.

4.3 Hello World 출력하기
4.3.1 컨트롤러 작성하기
가장 하위 패키지에서 controller 폴더를 생성하고 TestController 클래스를 생성한다.

package com.example.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@RequestMapping("/test")
public String test() {
return "Hello World!";
}
}
4.3.2 애플리케이션 실행하기
다음으로 우측 상단에 있는 실행버튼을 누르면 실행이 된다.

정상적으로 실행이 됐다면, Started DemoApplication in 0.525 seconds 이러한 로그가 마지막으로 출력될 것이다.
4.3.3 웹 브라우저를 통한 동작 테스트
다음으로 localhost:8080번으로 접속하게 되면

이러한 화면을 볼 수 있을 것이다.
4.3.4 Talend API Tester를 통한 동작 테스트
책에서는 크롬 익스텐션인 Talend API Tester를 통해서 스프링 부트를 테스트하려고한다. 하지만 추후에 더 복잡한 API를 테스트하기 위해서 나는 Postman을 사용해서 API를 테스트 해 볼 것이다.

localhost:8080/test로 접근했을 때 반환되는 값이 Hello Wordl!인 것을 확인할 수 있다.
'책' 카테고리의 다른 글
[Book] 스프링 부트 핵심 가이드 Chap.6 (0) | 2024.07.02 |
---|---|
[Book] 스프링 부트 핵심 가이드 Chap.5 (1) | 2024.07.02 |
[Book] 스프링 부트 핵심 가이드 Chap.3 (0) | 2024.06.23 |
[Book] 스프링 부트 핵심 가이드 Chap.2 (0) | 2024.06.23 |
[Book] 스프링 부트 핵심 가이드 Chap.1 (0) | 2024.06.23 |