스프링 Initializr를 사용하여 초기 설정한다.
스프링 Initializr는 REST API를 사용하는 브라우저 기반의 웹 애플리케이션
STS4(이클립스 기반 Spring Tool Suite IDE) 사용
💡 REST API란?
◾ 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미
◾ HTTP URI를 통해 자원을 명시하고 HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미
*CRUD Operation (Create, Read, Update, Delete, Head(header 정보 조회))
1. File -> New -> Spring Starter Project 선택

2. 다음과 같이 입력하고 Next를 누른다.

이곳의 대부분의 필드는 메이븐 빌드 명세를 정의한 pom.xml 파일의 항목이 된다.
Packaging War 선택
자바 웹 애플리케이션은 WAR 파일로, 라이브러리와 데스크톱 UI 애플리케이션은 JAR 파일로 패키징 한다.
3. 프로젝트에 추가할 의존성 지정하고 Next를 누른다.

의존성에는 프로젝트의 애플리케이션에서 사용하는 외부 라이브러리 모듈을 지정하며, 여러 컴포넌트 클래스가 포함된 jar 파일이 주로 사용된다.
4. Finish를 클릭하면 프로젝트가 생성된다.


◾ mvnw와 mvnw.cmd : 메이븐 래퍼 스크립트 (메이븐이 각자 컴퓨터에 설치되어 있지 않더라도 이 스크립트를 사용하여 프로젝트를 빌드할 수 있다.)
◾ pom.xml : 메이븐 빌드 명세(프로젝트를 빌드할 때 필요한 정보)를 지정한 파일
◾ DungziApplication.java : 스프링 부트 메인 클래스
◾ application.properties : 구성 속성을 지정할 수 있는 파일
◾ static : 브라우저에 제공할 정적인 콘텐츠(이미지, 스타일시트, 자바스크립트 등)를 둘 수 있는 폴더
◾ templates : 브라우저에 콘텐츠를 보여주는 템플릿 파일을 두는 폴더
◾ DungziApplicationTests.java : 간단한 테스트 클래스
5. UTF-8 설정

File -> Properties에서 UTF-8 설정
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>2.7.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.dungzi</groupId>
<artifactId>dungzi</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>dungzi</name>
<description>dungziProject</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
DungziApplication.java 파일
부트스트랩 클래스
애플리케이션을 실행할 때 제일 먼저 시작되는 부트스트랩 클래스가 필요하다.
package com.dungzi.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DungziApplication {
public static void main(String[] args) {
SpringApplication.run(DungziApplication.class, args);
}
}
@SpringBootApplication : 이 코드가 스프링 부트 애플리케이션임을 나타냄
=> @SpringBootConfiguration, @EnableAutoConfiguration, @ComponentScan이 결합된 것
@SpringBootConfiguration : 현재 클래스를 구성 클래스로 지정
@EnableAutoConfiguration : 스프링 부트 자동-구성을 활성화
@ComponentScan : 컴포넌트 검색 활성화, @Component, @Controller, @Service 등과 함께 클래스를 선언하게 해 줌
DungziApplicationTests.java
package com.dungzi.demo;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class DungziApplicationTests {
@Test
void contextLoads() {
}
}
@SpringBootTest : 스프링 부트 기능으로 테스트를 시작하라는 것을 JUnit에 알려줌
이 글은 '스프링 인 액션(크레이그 윌즈 지음)'을 참고하여 작성하였습니다.
'웹 개발 노트' 카테고리의 다른 글
CHAPTER 1. 스프링 시작하기 - (3) 스프링 (1) | 2022.06.27 |
---|---|
CHAPTER 1. 스프링 시작하기 - (1) 스프링이란? (0) | 2022.06.26 |
스프링 Initializr를 사용하여 초기 설정한다.
스프링 Initializr는 REST API를 사용하는 브라우저 기반의 웹 애플리케이션
STS4(이클립스 기반 Spring Tool Suite IDE) 사용
💡 REST API란?
◾ 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미
◾ HTTP URI를 통해 자원을 명시하고 HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미
*CRUD Operation (Create, Read, Update, Delete, Head(header 정보 조회))
1. File -> New -> Spring Starter Project 선택

2. 다음과 같이 입력하고 Next를 누른다.

이곳의 대부분의 필드는 메이븐 빌드 명세를 정의한 pom.xml 파일의 항목이 된다.
Packaging War 선택
자바 웹 애플리케이션은 WAR 파일로, 라이브러리와 데스크톱 UI 애플리케이션은 JAR 파일로 패키징 한다.
3. 프로젝트에 추가할 의존성 지정하고 Next를 누른다.

의존성에는 프로젝트의 애플리케이션에서 사용하는 외부 라이브러리 모듈을 지정하며, 여러 컴포넌트 클래스가 포함된 jar 파일이 주로 사용된다.
4. Finish를 클릭하면 프로젝트가 생성된다.


◾ mvnw와 mvnw.cmd : 메이븐 래퍼 스크립트 (메이븐이 각자 컴퓨터에 설치되어 있지 않더라도 이 스크립트를 사용하여 프로젝트를 빌드할 수 있다.)
◾ pom.xml : 메이븐 빌드 명세(프로젝트를 빌드할 때 필요한 정보)를 지정한 파일
◾ DungziApplication.java : 스프링 부트 메인 클래스
◾ application.properties : 구성 속성을 지정할 수 있는 파일
◾ static : 브라우저에 제공할 정적인 콘텐츠(이미지, 스타일시트, 자바스크립트 등)를 둘 수 있는 폴더
◾ templates : 브라우저에 콘텐츠를 보여주는 템플릿 파일을 두는 폴더
◾ DungziApplicationTests.java : 간단한 테스트 클래스
5. UTF-8 설정

File -> Properties에서 UTF-8 설정
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>2.7.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.dungzi</groupId>
<artifactId>dungzi</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>dungzi</name>
<description>dungziProject</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
DungziApplication.java 파일
부트스트랩 클래스
애플리케이션을 실행할 때 제일 먼저 시작되는 부트스트랩 클래스가 필요하다.
package com.dungzi.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DungziApplication {
public static void main(String[] args) {
SpringApplication.run(DungziApplication.class, args);
}
}
@SpringBootApplication : 이 코드가 스프링 부트 애플리케이션임을 나타냄
=> @SpringBootConfiguration, @EnableAutoConfiguration, @ComponentScan이 결합된 것
@SpringBootConfiguration : 현재 클래스를 구성 클래스로 지정
@EnableAutoConfiguration : 스프링 부트 자동-구성을 활성화
@ComponentScan : 컴포넌트 검색 활성화, @Component, @Controller, @Service 등과 함께 클래스를 선언하게 해 줌
DungziApplicationTests.java
package com.dungzi.demo;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class DungziApplicationTests {
@Test
void contextLoads() {
}
}
@SpringBootTest : 스프링 부트 기능으로 테스트를 시작하라는 것을 JUnit에 알려줌
이 글은 '스프링 인 액션(크레이그 윌즈 지음)'을 참고하여 작성하였습니다.
'웹 개발 노트' 카테고리의 다른 글
CHAPTER 1. 스프링 시작하기 - (3) 스프링 (1) | 2022.06.27 |
---|---|
CHAPTER 1. 스프링 시작하기 - (1) 스프링이란? (0) | 2022.06.26 |