
그룹: 프로젝트를 고유하게 식별하며, 주로 회사 도메인 이름을 거꾸로 입력한다. 지금은 임시로 com.boot
아티팩트: 그룹 내 아티팩트의 이름(일반적인 프로젝트 이름)으로 설정하면 된다.
패키지 이름은 그룹+아티팩트 이름으로 구성된다.
Spring Boot는 JDK 17버전 이상부터 지원하기 때문에 17버전으로 맞춰 줘야한다.
=> 다음 버튼 누르고

보이는 사진은 스프링 프로젝트 처음 만들 때 Spring Start Project Dependencies를 설정하는 것이다. 쉽게 말해 프로젝트 생성하기 전에 Maven에서 했던 pom.xml 초기 설정이라고 생각하면 된다.

설정
생성 버튼을 누르면



파일을 생성하고 application.properties 파일을 열어보면 spring.application.name 밖에 없다.
아무것도 없기 때문에 추가적으로 설정해줘야한다.

application.properties: Spring Application 실행에 필요한 정보를 제공하기 위한 환경설정파일
=> 데이터베이스 연결 정보, 로그 파일 경로, 서버 포트, 보안 설정 등
=> application.properties 파일 대신 application.yml 파일로 작성 가능하다.
application.properties 파일의 특징
application.yml 파일의 특징
#서버 포트 설정
server.port=8000
#DataSource 설정
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe
spring.datasource.username=scott
spring.datasource.password=tiger
driver-class-name: Oracle JDBC 드라이버 클래스 이름을 지정url: Oracle 데이터베이스에 연결하기 위한 URL이다.지금은 localhost Oracle DB를 사용 중이다.username과 password: 데이터베이스에 접근하기 위한 사용자 계정 정보이다.#JPA 설정
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.open-in-view=false
spring.jpa.database-platform=org.hibernate.dialect.OracleDialect
ddl-auto=update: 엔티티 클래스의 변화를 기반으로 데이터베이스 테이블을 자동으로 업데이트한다.create, create-drop, validate, none 등 다른 옵션들도 있다.)show-sql=true: 실행되는 SQL 쿼리를 콘솔에 출력한다.open-in-view=false: 엔티티 매니저를 뷰 계층에서 열어 두지 않도록 설정한다. 보안 및 성능을 위해 false로 설정하는 것이 좋습니다.database-platform: 사용 중인 데이터베이스에 맞는 Hibernate을 지정한다. Oracle을 사용 중이므로 OracleDialect를 사용한다.#Thymeleaf
spring.thymeleaf.cache=false
#logging
logging.level.root=info
info로 설정한다. 이를 통해 애플리케이션 info 레벨 이상의 로그(예: 경고, 오류 등)을 출력한다. 더 많은 디버깅 정보를 원하면 debug로 변경할 수 있다.라이브러리 의존성 추가
dependencies{
implementation 'org.springframework.boot:spring-boot-devtools'
}
application.properties에서 설정
#devtools
spring.devtools.restart.enabled=true
spring.devtools.livereload.enabled=true
restart.enabled=true: 코드가 변경될 때 애플리케이션을 자동으로 재시작한다.livereload.enabled=true: 브라우저가 자동으로 새로고침 되도록 설정한다. 사용하려면 브라우저에 LiveReload 플러그인이 설치되어 있어야 합니다.

src > main > java > com.boot.study 패키지를보면 아티팩트명Application.java 파일이 있다.
@SpringBootApplication 어노테이션과 main 메서드가 작성된 클래스가 있는데, 이 클래스가 Spring Boot를 실행시키는 클래스이다.
Spring에서는 src > main > java에 만들고 싶은 패키지 명을 쓰고 Controller나 DTO등 작업했지만 Spring Boot에서는 루트 패키지(com.boot.study)를 그대로 쓰고 만들 패키지를 연결해서 작성해야한다.
=> ex) com.boot.study.controller
이런식으로 작성해야 루트 패키지가 어노테이션을 찾아서 실행시킬 수 있다.
src > main > resources
전에는 JSP로 View Page를 만들었다면 Spring Boot는 Thymeleaf를 이용해서 HTML 파일로 만들어 View Page를 만든다. resources > templates에 View page 생성
Thymeleaf를 사용하려면 html 태그에 밑에처럼 추가하면 사용할 수 있다.
<html xmlns:th="http://www.thymeleaf.org">
properties 같은 경우 src > main > resources안에 .properties 확장자를 붙여 작성하면 된다.
변하지 않는 값을 지정할 때는 static 폴더를 만들어 작성하면 된다. static 폴더 안에는 변하지 않는 css, js, images 파일들을 지정해두면 된다.
@Controller
public class HomeContoller {
@GetMapping("/")
public String main(Model model) {
model.addAttribute("name", "임꺽정");
return "index";
}
}
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>BOOT</title>
</head>
<body>
<h1>Hello, Spring Boot!!!</h1>
<hr>
<h3><span th:text="${name}">홍길동</span>님, 안녕하세요</h3>
</body>
</html>
이런식으로 JSP에서는 EL 표현식으로 model 객체로 속성을 받아 ${name}에 들어있는 값을 처리한다 라고 표현하지만 Thymeleaf에서는 EL 표현식이 아닌 변수 표현식이라고 표현한다.
이런식으로 작성하고 루트 패키지의 BootApplication을 실행시키면

값이 잘 출력되는 걸 알 수 있다.