Spring/Spring Boot ์ ๋ฑ์ฅ๊ณผ ํ๋ก์ ํธ ์์ฑ
Spring์ ๋ฑ์ฅ
: ๋๊ท๋ชจ์ ๋ณต์กํ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ์ ํ๋ฆฌ์ผ์ด์
์ธ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์
์ ์ํํธ์จ์ด ๋ถ์ผ๊ฐ ๋ฐ์ ํ๋ฉด์ ๋์ฑ ๋ณต์กํด์ก๋ค. ์๋ฅผ ๋ค์ด ์ํ ์์คํ
์ ์๊ฐํด๋ณด๋ฉด ๋ช ์ฒ๋ง์ ์ฌ๋์ด ํ๊บผ๋ฒ์ ์๊ณ ์กฐํ๋ฅผ ํ๊ณ , ์
๊ธ์ด๋ ์ถ๊ธ์ ํ๊ฑฐ๋ ์๋ก์ด ํต์ฅ์ ๊ฐ์คํ๊ธฐ๋ ํ๋ค. ์ด๋ ๋ฏ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ง์ ์ฌ์ฉ์์ ์์ฒญ์ ๋์์ ์ฒ๋ฆฌํด์ผ ํ๋ฏ๋ก ์๋ฒ ์ฑ๋ฅ๊ณผ ์์ ์ฑ, ๋ณด์์ด ๋งค์ฐ ์ค์ํ๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ฐ ๊ฒ๋ค์ ์ ๊ฒฝ์ฐ๋ฉด์ ๋น์ฆ๋์ค ๋ก์ง๊น์ง ๊ฐ๋ฐํ๊ธฐ๋ ๋งค์ฐ ์ด๋ ต๋ค.
์ด๋ฌํ ์ํฉ์์ Spring ํ๋ ์์ํฌ๊ฐ ๋ฑ์ฅํ๋ค. Spring ํ๋ ์์ํฌ๋ ๋งค์ฐ ๋์ ์์ค์ผ๋ก ์๋ฒ ์ฑ๋ฅ, ์์ ์ฑ, ๋ณด์ ๋ฑ์ ์ ๊ณตํ๋ ๋๊ตฌ์ด๋ค. ์ด๋ก์จ ๊ฐ๋ฐ์๋ค์ ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ์ง์คํ ์ ์๊ฒ ๋์๋ค.
Spring Boot์ ๋ฑ์ฅ
: ์คํ๋ง์ ์ฅ์ ์ด ๋ง์ ๊ฐ๋ฐ ๋๊ตฌ์ด์ง๋ง ์ค์ ์ด ๋งค์ฐ ๋ณต์กํ๋ค๋ ๋จ์ ์ด ์์๋ค. ์ด๋ฅผ ๋ณด์ํ๊ณ ์ Spring Boot๊ฐ ์ถ์๋์๋ค. Spring Boot๋ Spring ํ๋ ์์ํฌ๋ฅผ ๋ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์ด์ฉํ ์ ์๋๋ก ๋ง๋ค์ด์ฃผ๋ ๋๊ตฌ์ด๋ค.
Spring์
IoC(Inversion of Control) / DI(Dependency Injection)
PSA(Portable Service Abstraction)
AOP(Aspect Oriented Programming)
์ด๋ ๊ฒ 3๊ฐ์ง๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
์ถ์ฒ : ์คํ๋ง๋ถํธ3 ๋ฐฑ์๋ ๊ฐ๋ฐ์ ๋๊ธฐ (์ ์ ์ ์ง์)
<<Spring Boot ํ๋ก์ ํธ ๋ง๋ค๊ธฐ>>
1. ์คํ๋ง ๋ถํธ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ธฐ ์ํด ๊ทธ๋ ์ด๋ค ํ๋ก์ ํธ ์์ ํ๊ธฐ
Spring boot ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ธฐ ์ด์ Gradle ํ๋ก์ ํธ๊ฐ ๋ง๋ค์ด์ง๋๋ฐ ๋นจ๊ฐ ๋ฐ์ค๋ฅผ ์น build.gradle์ ๋ค์ด๊ฐ์ Spring Boot ํ๋ก์ ํธ๋ก ๋ณ๊ฒฝ์ํฌ ์ ์๋ค.
id์ dependecy๋ฅผ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ Spring Boot ๋ฒ์ ์ผ๋ก ๋ง๋ค์ด์ฃผ๊ณ , JPA ์ญ์ ์ฌ์ฉํ๊ธฐ ์ํด์ ์์กด์ฑ์ ์ถ๊ฐํด์ค๋ค.
๊ทธ ๋ค์, ๋์ DB์ ์ ๊ทผํ ์ ์๊ฒ resources ํด๋ ์๋ application.properties๋ฅผ ์ถ๊ฐํ ๋ค์
์ด๋ ๊ฒ MySQL์ ์ ๊ทผํ ์ ์๊ฒ ์ค์ ํด์ค๋ค.
์ค์ ์ ๋ง์ณค๋ค๋ฉด, java ํด๋ ๋์ ๋๋ฉ์ธ (me.jihooo) ์๋ springbootdeveloper ํจํค์ง๋ฅผ ๋ง๋ ๋ค.
๋ชจ๋ ํ๋ก์ ํธ์๋ ๋ฉ์ธ ํด๋์ค๊ฐ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ SpringBootDeveloperApplication์ ๋ฉ์ธ ํด๋์ค๋ก ์ก๊ณ ์์ ๊ฐ์ด ์ค์ ํด์ค๋ค.
์ด๋ ํฅํ Spring Boot๋ฅผ ์คํ์์ผ์ฃผ๋ ์ญํ ์ ํ๋ค!
๊ทธ ๋ค์ TestController๋ฅผ ํตํด Mapping์ Get ์์ฒญ์ ๋ฐ์ ์ ์ด๋ป๊ฒ ์คํํ ์ง Controller๋ฅผ ๋ง๋ค์ด์ค๋ค. ์ฌ๊ธฐ์๋ /test๋ก ๊ฐ๋ Hello๋ฅผ ์ถ๋ ฅํ๊ฒ ํ๋ค.
์ด๋ @RestController๋ @Component๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฏ๋ก ๋น์ผ๋ก ๋ฑ๋ก์ด ๋๊ณ Spring์ด ๊ด๋ฆฌํ ์ ์๊ฒํ๋ค. ๋ํ ๋ผ์ฐํฐ์ ์ญํ ๋ก์ HTTP์ ์ด ์๋ฐ์ฝ๋๊ฐ ์ฐ๊ฒฐ๋๊ฒ ๋ง๋ค์ด์ฃผ๋ ์ญํ ์ ํ๋ค.
๊ทธ๋ ๊ฒ ์๋ฒ๋ฅผ ์คํ์ํค๋ฉด return ํ๋ Hello๊ฐ ๋ณด์ธ๋ค. ์ด๋ ๊ฒ ๋๋ฉด ๊ธฐ๋ณธ Spring Boot setting์ ๋๋ฌ๋ค๊ณ ๋ณผ ์ ์๋ค.