ALOHA CLASS
/
Back-End
/
Spring Boot
Search
Share
Spring Boot
์คํ๋ง ๋ถํธ ๊ธฐ์ด
SpringBoot_TJE
ALOHA-CLASS
ALOHA CLASS - SpringBoot [LIVE] V.1
Spring Boot ๊ธฐ์ด
ํ๋ก์ ํธ ๋์ฐ๋ฏธ
๊ฐ๋ฐํ๊ฒฝ ์ธํ
VSCODE Spring Boot ๊ฐ๋ฐ ํ๊ฒฝ ์ค์น
VSCODE Spring Boot ๊ฐ๋ฐ ํ๊ฒฝ ์ค์น
youtu.be
SpringBoot
VSCODE
์ค์น
Spring Boot ์ค์น
Spring Boot ์ค์น (Eclipse)
youtu.be
SpringBoot
Eclipse
์ค์น
Spring Boot ํ๋ก์ ํธ ์์ฑ (Eclipse)
youtu.be
SpringBoot
Eclipse
Gradle ์ค์น
1.
๋ค์ด๋ก๋
2.
์์ถํด์
Gradle ์ค์น
youtube.com
gradle
์ค์น
Gradle ๋ฐฐํฌ (SpringBoot)
1.
ํฐ๋ฏธ๋ ์คํ
Gradle ๋ฐฐํฌ (SpringBoot)
youtube.com
VSCODE
SpringBoot
gradle
VS CODE & Gradle ๋ฐฐํฌ
VS CODE & Gradle ๋ฐฐํฌ
youtube.com
SpringBoot
VSCODE
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์์ 3 ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์
Spring Boot 3.0 Migration Guide
Spring Boot. Contribute to spring-projects/spring-boot development by creating an account on GitHub.
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์ฉ์ผ๋ก ์ค๊ณ๋ ๊ฐ๋จํ๊ณ ๊น๋ํ ๋์์ธ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
marketplace.visualstudio.com
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
Springdoc OpenApi
API ๊ฐ๋ฐ ๋ฌธ์ํ ๋๊ตฌ
Springdoc OpenApi
์ฃผ์ ์ด๋ ธํ ์ด์ ์ ๋ฆฌ
โข
์์กด์ฑ ์ด๋ ธํ ์ด์
โข
์์ฒญ ๊ฒฝ๋ก ๋งคํ ์ด๋ ธํ ์ด์
โข
์์ฒญ ํ๋ผ๋ฏธํฐ ์ด๋ ธํ ์ด์
์ฃผ์ ์ด๋ ธํ ์ด์ ์ ๋ฆฌ
์ค์ต ํ๋ก์ ํธ
๊ฒ์ํ ํ๋ก์ ํธ
โข
ํ๋ก์ ํธ
โข
๋ฐ์ดํฐ๋ฒ ์ด์ค
โข
์์ค์ฝ๋
๊ฒ์ํ ํ๋ก์ ํธ
โข
๋ฐ์ดํฐ๋ฒ ์ด์ค
โข
์์ค์ฝ๋
ํ์ผ ์ ๋ก๋
ํ์ผ ๋ชฉ๋ก ์ธ๋ค์ผ
โข
MyBatis resultMap ๊ธฐ๋ฅ์ผ๋ก 1:N ๋งคํ
ํ์ผ ๋ชฉ๋ก ์ธ๋ค์ผ
์คํ๋ง ๋ถํธ 3 ์ด์
์ด๋ฆ
ํ๊ทธ
ํ ์คํธ
@PathVariable,
ย
@RequestParam ํ๋ผ๋ฏธํฐ ์๋ ๋งคํ
Open
v3.2~
์คํ๋ง ๋ถํธ 3.2 ๋ฒ์ ์ดํ ๋ถํฐ๋, ํด๋น ์ด๋ ธํ ์ด์ ์์ ํ๋ผ๋ฏธํฐ ์ด๋ฆ์ ์๋ ๋งคํํ์ง ์๋๋ค. ํ๋ผ๋ฏธํฐ ๋ช ์ ๋ฐ๋์ ๋ช ์ํด์ฃผ์ด์ผํ๋ค.
Open