
Name : 프로젝트 이름
Type : 라이브러리 관리 툴 (애플리케이션 빌드 방식)
Packaging : 패키징 타입 (Jar - 내장 톰캣을 이용하여 독립적으로 애플리케이션 구동 / War - 별도 외부 톰캣을 이용하여 애플리케이션 구동)
Java Version : 자바 jdk 버전
Language : 프로그래밍 언어
Group : 그룹 아이디
Artifact : 아티팩트 아이디(보통 프로젝트 이름과 동일)
Version : 자주 바뀌는 경우 설정
Description : 프로젝트 설명
Package : 최상위 패키지 (루트 경로)

Spring Boot Devtools(코드 변경 시 서버 자동 재시작)
Lombok(편리한 DTO 구성)
WebSocket(채팅을 위한 웹소켓)
JDBC API
MyBatis Framework
Oracle Driver
Thymeleaf(서버사이드 렌더링)
Spring Web(RESTful, Spring MVC, 내장톰캣)
→ Spring Web은 스프링 기반의 웹 애플리케이션을 만들기 위해 필요한 라이브러리로 가장 익숙한 환경의 Spring을 사용할 수 있으며, Apache Tomcat이 기본적으로 추가된 환경을 제공
→ Dependency는 추후에도 추가 가능하므로 Spring Web과 Spring Boot Devtools를 포함하여 우선 초기에 필요한 것들 위주로 추가하면 된다!

Java Build Path, Project Facets의 Java version을 변경
(프로젝트 생성 시 JDK17 버전으로 기본 선택 → 실제 설치 버전인 11로 변경)
Project 우클릭 - Build Path - Configure Build Path



New > File 에서 application.yml 파일 생성 후 작성

spring:
profiles:
active: local #local,dev,real → 운영환경 지정
#JSP 호출 시 view 설정
mvc:
view: #view 경로 및 확장자 지정
prefix: /WEB-INF/views/
suffix: .jsp
datasource: #DB접속 설정
driver-class-name: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@localhost:1521:xe
username: [DB 아이디]
password: [DB 비밀번호]
hikari:
connection-timeout: 30000 #클라이언트가 pool에 connection을 요청하는데 기다리는 최대시간 설정(30)
maximum-pool-size: 10 #최대 connection 개수 설정
max-lifetime: 180000 #connection pool에서 살아있을 수 있는 커넥션의 최대 수행 시간 1,800초(30분)
messages: #메시지 설정
basename: messages.validation
encoding: UTF-8
#JSP/클래스 변경 시 바로 갱신되게끔
devtools: #View reload
livereload:
enabled: true
restart: #controller, model단이 바뀌었을 때 프로젝트 재시작 설정(Classpath에 있는 모든 파일)
enabled: true
mybatis: #mybatis 설정
type-aliases-package: kr.spring.**.vo #하위 경로 -> **
mapper-locations: kr/spring/**/dao/*.xml
logging: #Log 지정
level:
'[kr.spring]': debug #kr.spring 하위는 모두 debug 모드로 지정
#서버 포트 설정, 인코딩 처리
server:
port: 8000
servlet:
encoding:
charset: UTF-8
enabled: true #http 인코딩 지원 활성화 여부 (charset의 option)
force: true #charset의 option
→ DB접속 설정 명시하지 않을 시 Failed to configure a DataSource 오류 발생
java version 변경
→ <java.version>11</java.version>
ojdbc 버전 변경
→ <artifactId>ojdbc8</artifactId>
spring boot 버전 변경
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.13</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.3.1</version>
</dependency>
...
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter-test</artifactId>
<version>2.3.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<dependencies>
<!-- Library -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId> <!-- jasper은 jsp -->
</dependency>
...
</dependencies>
※ pom.xml에 에러 발생 시 프로젝트 우클릭 > Maven > Update Project (이후에도 오류 뜰 시 오타일 확률이 높음)
Boot Dashboard에서 프로젝트 우클릭 후 start
서버 정상 동작

Open Web Browser

메인 패키지 하위에 controller package 생성

controller package 하위에 class 생성


package com.example.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping("/")
public String index() {
return "Hello World";
}
}
