728x90
1. ํ๋ก์ ํธ ์์ฑ
- project - Gradle
- spring boot version - 2.7.12
- spring boot 3.x.x๋ก ์ ํํ๋ ๊ฒฝ์ฐ java version์ด 17 ์ด์์ด์ด์ผํจ
- java version 12(11)
- artifact - output name
- package name = name.artifact ํํ๋ก ํจํค์ง๋จ
- Thymeleaf - template engine, ๋ค์์ ์ค๋ช
- spring web - web builder
ํ๋ก์ ํธ ๊ตฌ์ฑ
- src/main
- src/test ⇒ test ์ฝ๋๋ฅผ ๋ฐ๋ก ์์ฑํ๋ ๊ฒ์ ๋ํ ์ค์์ฑ์ด ๋๋๋๋ ์ค.
- build.gradle ⇒ ๋ฒ์ ์ค์ , ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ก๋ ๋ฑ
- python virtual environment์์ requirement.txt์ฒ๋ผ dependencies๋ฅผ ์ ์ํ๊ณ ๊ฐ์ ธ๋ค๋๋ ๋๋
- react์ ์ข ์์ฑ ๊ด๋ฆฌ… ๋ณด๋ค๋ ๋ ๋นก์ธ๊ณ ํ๋ก์ ํธ ๋น๋๋ฅผ ์ํ ์ข ์์ฑ / ๋ฒ์ ๋ฑ์ ๋ด์ ๊ธธ์ก์ด ํ์ผ
plugins {
id 'java'
id 'org.springframework.boot' version '2.7.12'
id 'io.spring.dependency-management' version '1.0.15.RELEASE'
}
group = 'hello'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
// ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ค์ด๋ก๋๋ฅผ ๋ฐ์ ๊ณณ. maven central์ด๋ผ๋ ์ฌ์ดํธ๊ฐ ์์.
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' // template engine
implementation 'org.springframework.boot:spring-boot-starter-web' // web project
testImplementation 'org.springframework.boot:spring-boot-starter-test' // test library(๊ธฐ๋ฐ)
}
tasks.named('test') {
useJUnitPlatform()
}
- .gitignore ⇒ ์ฐ๋ฆฌ๊ฐ ์๋ ๊ทธ๊ฑฐ
main ์คํ
package hello.hellospring;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class HelloSpringApplication {
public static void main(String[] args) {
SpringApplication.run(HelloSpringApplication.class, args);
}
}
- ์ ์ ์ฑ๊ณต
- spring boot ๋ tomcat web server๋ฅผ ๋ด์ฅํ๊ณ ์์ → ๋ฐ๋ก local host๋ฅผ ํตํด์ ์ ์ ๊ฐ๋ฅํ๊ฒ ํฌํธ ์ ์
2. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ดํด๋ณด๊ธฐ
- Gradle์ ์์กด๊ด๊ณ๊ฐ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํจ๊ป ๋ค์ด๋ก๋ ํ๋ค.
- tensorflow ๋ค์ด๋ก๋ํ๋ฉด numpy pandas ๋ฑ๋ฑ์ด ๊ฐ์ด ๋ค์ด๋ก๋ ๋๋ฏ์ด……….
- ์คํ๋ง ๋ถํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- spring-boot-starter-web
- spring-boot-starter-tomcat: ํฐ์บฃ (์น์๋ฒ)
- spring-webmvc: ์คํ๋ง ์น MVC
- spring-boot-starter-thymeleaf: ํ์๋ฆฌํ ํ ํ๋ฆฟ ์์ง(View)
- spring-boot-starter(๊ณตํต): ์คํ๋ง ๋ถํธ + ์คํ๋ง ์ฝ์ด + ๋ก๊น
- spring-boot
- spring-core
- spring-boot-starter-logging
- logback, slf4j
- Log ์ฐ๋ ์ต๊ด ๋ค์ด๊ธฐ
- spring boot ์์ ์ฐ๋ logging library
- spring-boot
- spring-boot-starter-web
- ํ
์คํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- spring-boot-starter-test
- junit: ํ ์คํธ ํ๋ ์์ํฌ
- mockito: ๋ชฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- assertj: ํ ์คํธ ์ฝ๋๋ฅผ ์ข ๋ ํธํ๊ฒ ์์ฑํ๊ฒ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- spring-test: ์คํ๋ง ํตํฉ ํ ์คํธ ์ง์
- spring-boot-starter-test
3. View ํ๊ฒฝ์ค์
src/main/resources/static
์index.html
์ฌ๋ฆฌ๋ฉด ์์์ welcome page๋ก ๋ฑ๋กํด์ฃผ๋ ๊ธฐ๋ฅ์ด ์๋ค.- ์ ์ ํ์ด์ง๋ฅผ ์น ๋ธ๋ผ์ฐ์ ์ ๋๊ฒจ์ฃผ๋ ๊ฒ. ๋ด๋ถ์ ํ๋ก๊ทธ๋จ ๋ฑ์ด ๋์ํ์ง ์์
- thymeleaf template engine
- thymeleaf ๊ณต์ ์ฌ์ดํธ: https://www.thymeleaf.org/
- ์คํ๋ง ๊ณต์ ํํ ๋ฆฌ์ผ: https://spring.io/guides/gs/serving-web-content/
- ์คํ๋ง๋ถํธ ๋ฉ๋ด์ผ: https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-boot-features.html#boot-features-spring-mvc-template-engines
Template engine ์ ์ฉํ๊ธฐ
1. controller ์์ฑ
- return name๊ณผ temaplates์ ํ์ผ ์ด๋ฆ!
hello.html
์ ์ฐพ์๊ฐ๊ฒ ๋์ด์์ - ๊ธฐ๋ณธ์ ์ผ๋ก
resources/templates/
ํ์์์{ViewName}.html
์ ์ฐพ์ - ์ฐพ๋ ๋ = View Resolver
package hello.hellospring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller // annotation
public class helloController {
@GetMapping("hello") // /hello๋ก ์ ์ํ๋ฉด ์๋ method ์คํ.
public String hello(Model model) { // model์ด๋ผ๋ ๊ฒ ๋์ด์ด
model.addAttribute("data", "hello!"); // key, value
return "hello"; // return name = hello
}
}
2. template ์์ฑ
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org"> // template engine์ ์ธ ์ ์๋๋ก ๋ถ๋ฌ์ด
<head>
<title>Hello</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
// template engine(model)์์ key=data์ธ value๋ฅผ ์ฐพ์์์ ๋ฃ์
<p th:text="'์๋
ํ์ธ์. ' + ${data}" >์๋
ํ์ธ์. ์๋</p>
</body>
</html>
4. ๋น๋ํ๊ณ ์คํํ๊ธฐ
- Intellij ๋๊ณ powershell(์ฌ๊ธฐ์ linux๋ ๊ฐ์ ๋ช ๋ น์ด ์ฌ์ฉ๊ฐ๋ฅ ์ ๋ ์นด)ํ๋ฉด ์์์ ๋น๋ํด์ค
> ./gradlew.bat build
- build/libs/ ์์ jar ํ์ผ ์์ฑ๋จ
- java ๋ช ๋ น์ด๋ก ์คํ ๊ฐ๋ฅ
> java -jar {artifact}-{version}-SNAPSHOT.jar
- ๋๊ฐ์ด
[localhost:8080](http://localhost:8080)
์์ ์ ์ ๊ฐ๋ฅ
728x90
'๐ฅ Web > โ Back-end | Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring ์ ๋ฌธ] 5. ํ์ ๊ด๋ฆฌ ์์ - ์น MVC ๊ฐ๋ฐ (0) | 2023.09.25 |
---|---|
[Spring ์ ๋ฌธ] 4. ์คํ๋ง ๋น๊ณผ ์์กด๊ด๊ณ (0) | 2023.09.25 |
[Spring ์ ๋ฌธ] 3. ํ์ ๊ด๋ฆฌ ์์ - ๋ฐฑ์๋ ๊ฐ๋ฐ (0) | 2023.09.25 |
[Spring ์ ๋ฌธ] 2. ์คํ๋ง ์น ๊ฐ๋ฐ ๊ธฐ์ด (0) | 2023.06.30 |