์คํ๋ง ๋ถํธ ๊ธฐ์ด
VSCODE Spring Boot ๊ฐ๋ฐ ํ๊ฒฝ ์ค์น

VSCODE Spring Boot ๊ฐ๋ฐ ํ๊ฒฝ ์ค์น
SpringBoot
VSCODE
์ค์น
Gradle ๋ฐฐํฌ (SpringBoot)

1.
ํฐ๋ฏธ๋ ์คํ
Gradle ๋ฐฐํฌ (SpringBoot)
VSCODE
SpringBoot
gradle

VSCODE Spring Boot ํ๋ก์ ํธ ์์ฑ
โข
Create Spring Initailizer
โข
index.html ๋ฉ์ธ ํ์ด์ง ์์ฑ
โข
ํ๋ก์ ํธ ์คํ
VSCODE Spring Boot ํ๋ก์ ํธ ์์ฑ

Spring Boot
์คํ๋ง ๋ถํธ๋ ์๋ฐ ๊ธฐ๋ฐ์ ์คํ ์์ค ํ๋ ์์ํฌ๋ก, ์น ์ ํ๋ฆฌ์ผ์ด์
์ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๊ตฌ์ถํ ์ ์๋๋ก ๋์์ค๋๋ค. ์คํ๋ง ํ๋ ์์ํฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ๊ฐ๋ฐ์๋ค์ด ์ค์ ์ ์ต์ํํ๊ณ ๊ฐ๋ฐ์ ์ง์คํ ์ ์๋๋ก ์ ๊ณตํฉ๋๋ค.
์คํ๋ง ๋ถํธ๋ ๋ง์ ๊ฐ๋ฐ์์ ๊ธฐ์
์์ ์น ์ ํ๋ฆฌ์ผ์ด์
๋ฐ ๋ง์ดํฌ๋ก์๋น์ค ๊ฐ๋ฐ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ฉฐ, ์คํ๋ง ๋ถํธ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๊ฐํธํํ๊ณ ๋น ๋ฅด๊ฒ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
Spring Boot
Spring Boot ์ค์น

Eclipse Spring Boot ์ค์น
Spring Boot ์ค์น ๋ฐ ํ๋ก์ ํธ ์์ฑ

Spring Boot ํ๋ก์ ํธ ๊ตฌ์กฐ

Spring Boot ํ๋ก์ ํธ ๊ตฌ์กฐ

Live Reload
โข
ํฌ๋กฌ ์น ์คํ ์ด์์ ๋ผ์ด๋ธ ๋ฆฌ๋ก๋ ๊ธฐ๋ฅ์ ์ ๊ณตํด์ฃผ๋ ํ์ฅ ํ๋ก๊ทธ๋จ์ ์ค์นํด๋ด
๋๋ค.
์๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ LiveReload ์น ์คํ ์ด๋ก ์ด๋ํฉ๋๋ค.
Live Reload
Spring Boot 2.7 โ> 3.x ๋ง์ด๊ทธ๋ ์ด์

์์กด์ฑ ์ฃผ์ (DI; Dependency Injection)
์์กด์ฑ ์ฃผ์
(DI)์ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ์ค์ํ ๊ฐ๋
์
๋๋ค. DI๋ ์ปดํฌ๋ํธ ๊ฐ์ ์์กด์ฑ์ ์ธ๋ถ์์ ์ฃผ์
ํจ์ผ๋ก์จ ๋์จํ ๊ฒฐํฉ์ ์ ์งํ๋ ๋ฐฉ๋ฒ์
๋๋ค. ์ด๋ฅผ ํตํด ์ฝ๋์ ์ ์ฐ์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ๋์ผ ์ ์์ต๋๋ค.
์คํ๋ง DI
์คํ๋ง ํ๋ ์์ํฌ์์๋ DI๋ฅผ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์คํ๋ง DI ์ปจํ
์ด๋๊ฐ ๊ฐ์ฒด ๊ฐ์ ์์กด์ฑ์ ๊ด๋ฆฌํ๊ณ ํ์ํ ์์กด ๊ฐ์ฒด๋ฅผ ์ฃผ์
ํด์ค๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์์กด์ฑ์ ๊ด๋ฆฌํ๋ ๋ถ๋ถ์ ์ง์คํ ํ์ ์์ด ๋น์ฆ๋์ค ๋ก์ง์ ์ง์คํ ์ ์์ต๋๋ค.
์์กด์ฑ ์ฃผ์
(DI)

HTTP
HTTP(Hypertext Transfer Protocol)๋ ์น ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ํต์ ํ๋กํ ์ฝ์
๋๋ค.

HTTP

HTTP X SpringBoot - RestTemplate & WebClient
HTTP ์์ฒญ ๋ฉ์์ง์ ์๋ฐ ์น๊ฐ๋ฐ
โข
HTTP ๋ฉ์์ง์ ํค๋ ์ ๋ณด์๋ ์์ฒญํ๋ ๋ฆฌ์์ค์ ํ์
, ๊ธธ์ด, ์ธ์ฝ๋ฉ ๋ฐฉ์ ๋ฑ์ ์ ๋ณด๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค.
โข
Java์์๋ HttpURLConnection ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ HTTP ์์ฒญ์ ๋ณด๋ผ ์ ์์ต๋๋ค. ์์ ์ฝ๋์์๋ GET ์์ฒญ์ ๋ณด๋ด๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
HTTP X SpringBoot - RestTemplate & WebClient

Request
: HTTP Request(์์ฒญ)๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก ๋ณด๋ด๋ ์์ฒญ ๋ฉ์์ง๋ก, ์น ๋ฆฌ์์ค์ ๋ํ ๋์(GET, POST, ๋ฑ) ๋ฐ ํด๋น ๋ฆฌ์์ค์ ํจ๊ป ์ ๋ฌ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ํฉ๋๋ค.

Request

Response
: ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ๋ณด๋ด๋ ์๋ต ๋ฉ์์ง๋ก, ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ํ ์ํ ๋ฐ ํด๋น ์์ฒญ๊ณผ ํจ๊ป ์ ๋ฌ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ํฉ๋๋ค.

Response

Thunder Client
๊ฒฝ๋ Rest API ํด๋ผ์ด์ธํธ ์ต์คํ
์
์ผ๋ก, Visual Studio Code์ฉ์ผ๋ก ์ค๊ณ๋ ๊ฐ๋จํ๊ณ ๊น๋ํ ๋์์ธ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.

Thunder Client

MyBatis
MyBatis ๋ํด์ ์์๋ณด๊ณ ๊ฐ๋จํ๊ฒ ๊ฒ์ํ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ์ค์ต๊น์ง ์งํํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
โข
Mybatis
โข
ํ๋ก์ ํธ ๊ตฌ์กฐ
โข
์คํ๋ง ๋ถํธ์์ MyBatis ์ฌ์ฉ
MyBatis
๊ฒ์ํ

REST (Representational State Transfer)
์ํ ํํ ์ ์ก ์ํคํ
์ฒ
present [prษชหzent]
: ๋ณด์ฌ์ฃผ๋ค
REST

๊ฐ์
โข
MVC ํจํด
โข
MVC vs REST
โข
MVC๋ ์ธ์ ์ฐ์ด๋?
โข
REST๋ ์ธ์ ์ฐ์ด๋?
โข
MVC model1
MVC

Pagination
๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ๋ชจ๋ ๋ณด์ฌ์ฃผ์ง ์๊ณ ์ฌ๋ฌ ํ์ด์ง๋ก ๋๋ ์ ์ถ๋ ฅํ๋ ๊ธฐ์
1.
Page ๊ฐ์ฒด ์ ์
2.
์ฟผ๋ฆฌ ์ ์ฉ
3.
ํ์ด์ง๋ค์ด์
Pagination

Spring Validation

Spring Validation์ ์ฌ์ฉ์ ์
๋ ฅ ๋ฐ์ดํฐ์ ์ ํจ์ฑ์ ๊ฒ์ฆํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
์์ ์๋ชป๋ ๋ฐ์ดํฐ๊ฐ ์ฒ๋ฆฌ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ , ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๋๋ฐ ๋์์ ์ค๋๋ค.
์ฃผ์ ํน์ง
Spring Validation
Springdoc OpenApi

Spring ์ ํ๋ฆฌ์ผ์ด์
์ ์ํ OpenAPI 3.0 ๋ฌธ์๋ฅผ ์๋ ์์ฑํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
REST API ์ API ๋ฌธ์๋ฅผ ์๋ํ ํด์ฃผ๋ ๋๊ตฌ์
๋๋ค.
API ๊ฐ๋ฐ ๋ฌธ์ํ ๋๊ตฌ
API ๊ฐ๋ฐ ๋ฌธ์ํ ๋๊ตฌ๋ API ์๋ํฌ์ธํธ, ์์ฒญ, ์๋ต ๋ฐ ๊ด๋ จ ์ ๋ณด๋ฅผ ๋ฌธ์ํํ์ฌ ๊ฐ๋ฐ์๋ค์๊ฒ API ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ ์ํํธ์จ์ด ๋๊ตฌ์
๋๋ค.
Springdoc OpenApi

์ฃผ์ ์ด๋ ธํ ์ด์ ์ ๋ฆฌ
โข
์์กด์ฑ ์ด๋
ธํ
์ด์
โฆ
@Component
โฆ
@Autowired
โฆ
@Controller
โฆ
@RestController
โฆ
@Service
โฆ
@Repository
โข
์์ฒญ ๊ฒฝ๋ก ๋งคํ ์ด๋
ธํ
์ด์
โฆ
@Controller or @RestController
โฆ
@RequestMapping
โช
@GetMapping
โช
@PostMapping
โช
@PutMapping
โช
@DeleteMapping
โข
์์ฒญ ํ๋ผ๋ฏธํฐ ์ด๋
ธํ
์ด์
โฆ
@RequestParam
โฆ
@PathVaiable
โฆ
@RequestBody
โฆ
@ModelAttribute
์ฃผ์ ์ด๋
ธํ
์ด์
์ ๋ฆฌ
๊ฒ์ํ ํ๋ก์ ํธ
โข
ํ๋ก์ ํธ
โฆ
โฆ
โฆ
๋ก๊ทธ
โช
โช
โข
๋ฐ์ดํฐ๋ฒ ์ด์ค
โฆ
โข
์์ค์ฝ๋
โฆ
๋ก์ง
โช
โช
โช
โช
โช
โช
โช
โฆ
ํ๋ฉด
โช
โช
board
โข
โข
โข
โข
๊ฒ์ํ ํ๋ก์ ํธ
โข
๋ฐ์ดํฐ๋ฒ ์ด์ค
โฆ
โข
์์ค์ฝ๋
โฆ
๋ก์ง
โช
โช
โช
โช
โช
โช
โช
โฆ
ํ๋ฉด
โช
โช
board
โข
โข
โข
โข
ํ์ผ ์
๋ก๋
ํ์ผ ๋ชฉ๋ก ์ธ๋ค์ผ
โข
MyBatis resultMap ๊ธฐ๋ฅ์ผ๋ก 1:N ๋งคํ
โฆ
collection
โฆ
board ํ
์ด๋ธ : file ํ
์ด๋ธ = 1 : N
ํ์ผ ๋ชฉ๋ก ์ธ๋ค์ผ
์ด๋ฆ
ํ๊ทธ
ํ
์คํธ
v3.2~
์คํ๋ง ๋ถํธ 3.2 ๋ฒ์ ์ดํ ๋ถํฐ๋, ํด๋น ์ด๋
ธํ
์ด์
์์ ํ๋ผ๋ฏธํฐ ์ด๋ฆ์ ์๋ ๋งคํํ์ง ์๋๋ค.
ํ๋ผ๋ฏธํฐ ๋ช
์ ๋ฐ๋์ ๋ช
์ํด์ฃผ์ด์ผํ๋ค.










