CHAPTER 1. 스프링 시작하기 - (2) 스프링 초기 설정하기

2022. 6. 27. 10:05· 웹 개발 노트
728x90
반응형

스프링 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를 클릭하면 프로젝트가 생성된다.

 

Initializr의 주소 지정하기

 

 

초기 스프링 프로젝트 구조

 

◾ 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에 알려줌

 

 

이 글은 '스프링 인 액션(크레이그 윌즈 지음)'을 참고하여 작성하였습니다.

728x90
반응형

'웹 개발 노트' 카테고리의 다른 글

CHAPTER 1. 스프링 시작하기 - (3) 스프링  (1) 2022.06.27
CHAPTER 1. 스프링 시작하기 - (1) 스프링이란?  (0) 2022.06.26
'웹 개발 노트' 카테고리의 다른 글
  • CHAPTER 1. 스프링 시작하기 - (3) 스프링
  • CHAPTER 1. 스프링 시작하기 - (1) 스프링이란?
코블리_vv
코블리_vv
코블리_vv
코딩 놀이터
코블리_vv
전체
오늘
어제
  • 분류 전체보기 (67)
    • CS 노트 (1)
    • 대외활동 (0)
      • 창업 동아리 (0)
    • AWS (0)
      • AWS Academy Cloud Architect.. (0)
      • AWS Lab (0)
    • 웹 개발 노트 (3)
      • 웹 프로젝트 (0)
      • 스프링 인 액션 (0)
      • 스프링 입문을 위한 자바 객체 지향의 원리와 이해 (0)
    • ORACLE (0)
    • TOPCIT (2)
      • M1 소프트웨어 개발 (2)
      • M2 데이터 이해와 활용 (0)
    • 캡스톤 (5)
    • BOJ 백준 (53)
      • 브루트포스 (1)
      • 정렬 (6)
      • 이분탐색 (5)
      • 맵 (2)
      • 다이나믹 프로그래밍 (11)
      • 수학 (5)
      • 그리디 (3)
      • 분할정복 (4)
      • DFS (3)
      • BFS (6)
      • 그래프 (4)
      • 자료구조 (1)
      • 백트래킹 (2)
    • 코딩 테스트 (0)
      • 코드트리 (0)
    • 대회 (0)
    • Spring Boot (3)
      • JPA (3)

블로그 메뉴

  • 홈
  • 태그
  • 알고리즘
  • BOJ 백준
  • 방명록

공지사항

인기 글

태그

  • 이분탐색
  • 우선순위 큐
  • 재귀
  • BFS
  • 컴퓨터 보안
  • 웹개발
  • n과m
  • java
  • 투자
  • binary search
  • 백준 토마토
  • 백트래킹
  • dfs
  • 파이썬 backtrader
  • 분할정복
  • 스프링인액션
  • 플로이드 와샬
  • computer security
  • spring
  • 다이나믹 프로그래밍
  • 다이나믹프로그래밍
  • 너비우선탐색
  • 투자 전략
  • 1676
  • 암호학
  • 시스템 트레이딩
  • 백준 n과m
  • dp
  • backtrader
  • 그리디 알고리즘

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
코블리_vv
CHAPTER 1. 스프링 시작하기 - (2) 스프링 초기 설정하기
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.