์ด ๊ฐ์๋ Spring Boot๋ฅผ ์ด์ฉํด์ RESTful Web Services ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ ๊ณผ์ ์ ๋ํด ํ์ตํ๋ ๊ฐ์์ผ๋ก์จ, REST API ์ค๊ณ์ ํ์ํ ๊ธฐ๋ณธ ์ง์์ ๋ํด ํ์ตํ ์ ์์ต๋๋ค.
Spring Boot
REST API
RESTful services
JPA
OAS 3.0 (Swagger Specification)
์คํ๋ง ๋ถํธ RESTful API ์ ๋ฌธ์ ๋ฐ์ด๋ธ!
๋ณธ ๊ฐ์๋ Spring Boot์ Spring Cloud๋ฅผ ์ด์ฉํ Microservice๋ฅผ ๊ฐ๋ฐํ๋ ๊ณผ์ ์ ์์ด์
RESTful ์๋น์ค๋ฅผ ์ค๊ณํ๊ณ , Spring Cloud API๋ฅผ ์ด์ฉํ ๊ตฌํ ๋ฐ ์ด์์ ๊ดํด ํ์ตํ ์ ์๋๋ก ๊ตฌ์ฑํ ๊ฐ์์
๋๋ค.
"Microservices are a software development technique โa variant of the service-oriented architecture (SOA) structural styleโ that arranges an application as a collection of loosely coupled services. In a microservices architecture, services are fine-grained and the protocols are lightweight." - wikipedia
2011๋ ๋ฒ ๋์ค์์ ์ํํธ์จ์ด ์ํคํ ์ฒ ์ํฌ์์ด ๊ฐ์ต๋ ์ดํ ๋ง์ดํฌ๋ก์๋น์ค๋ผ๋ ์ฉ์ด๋ฅผ ์ฌ์ฉํ๊ธฐ ์์ํ์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ์ ํต์ ์ธ ๋ชจ๋๋ฆฌ์ค ๊ฐ๋ฐ ๋ฐฉ์ ๋์ ๋ง์ดํฌ๋ก์๋น์ค ๊ฐ๋ฐ ๋ฐฉ์์ ๋์ ํจ์ผ๋ก์จ, ๊ฐ๋ฐ๋ฟ๋ง ์๋๋ผ ์ ์ง/๋ณด์์ ์์ด์๋ ๋น์ฉ ์ ๊ฐ ๋ฐ ํจ์จ์ฑ ์ฆ๊ฐ๊ฐ ์ด๋ฃจ์ด์ก์ผ๋ฉฐ ๊ณ ๊ฐ์ ์๊ตฌ์ฌํญ ๋ํ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์๊ฒ ๋์์ต๋๋ค. ์ด๋ฌํ ๋ง์ดํฌ๋ก ์๋น์ค์ ์ธ๊ธฐ์ ๋๋ถ์ด์ RESTful์ด๋ผ๋ ๊ฐ๋ฐ ๋ฐฉ์๋ ๋ง์ด ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.
Microservice Architecture๋ ๊ธฐ์กด ํ๋์ ํฐ ๋จ์๋ก ๊ฐ๋ฐ/์ด์๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ญ, ์๋ฐฑ, ๋ง๊ฒ๋ ์์ฒ ๊ฐ์ ์์ ์๋น์ค ๋จ์๋ก ์ชผ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐ/์ด์ํ๋ ๋ฐฉ์์ ๋งํฉ๋๋ค. ์ด๋ฌํ Microservice๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํด์๋ ๊ฐ ์๋น์ค๋ผ๋ฆฌ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐ๋ ์ ์์ด์ผ ํ๋ฉฐ, ๊ฐ ์๋น์ค์ ์ต์ ํ๋ ๊ฐ๋ฐ ์ธ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ํํ ์๋ ์๋ Polyglot Programming(ํด๋ฆฌ๊ธ๋ ํ๋ก๊ทธ๋๋ฐ)์ ์๊ฑด์ ๊ฐ์ถ์ด์ผ ํฉ๋๋ค.
์ด๋ ๊ฒ ์ด๊ธฐ์ข (็ฐๆฉ็จฎ)์ผ๋ก ๊ฐ๋ฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ ๋ฐ์ดํฐ ํต์ ์ ์ํด์ ํ์คํ๋ HTTP ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ RESTful ์๋น์ค๋ฅผ ๋๋ฆฌ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
Spring Boot๋ ๋ ๋ฆฝ ์ด์ ๊ฐ๋ฅํ Spring ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ๊ฐ๋ฐํ ์ ์๋๋ก ์ง์ํด์ฃผ๋ ๊ฐ๋ฐ ๋๊ตฌ์ด์ Spring Project์ ๋๋ค. Spring Boot๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ๋ก ์คํ ๊ฐ๋ฅํ ๋ ๋ฆฝํ Spring ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ์์ฑํ ์ ์์ผ๋ฉฐ, Spring framework์ ๊ธฐํ Third-party ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์ค์ ์์ ์ ์ต์ํ ํ ์ ์์ผ๋ฉฐ, ๋น์ฆ๋์ค ๋ก์ง์ ๋ ๋ง์ ์๊ฐ์ ํฌ์ํ ์ ์์ต๋๋ค. ๋ํ Spring Boot์ Starter ์ปดํฌ๋ํธ๋ค์ ์ด์ฉํ๋ฉด, ์์ฉํ์ ํ์ํ ํต๊ณ, ์ํ ์ฒดํฌ, ์ธ๋ถ ์ค์ ๋ฑ์ ๊ดํ ์์ ๋ ์ฝ๊ฒ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ์ ์ต์ข
๋ชฉํ๋ Spring Boot์ Spring Cloud๋ฅผ ์ด์ฉํด์
๋ง์ดํฌ๋ก์๋น์ค ์ํคํ
์ฒ๋ก ์ค๊ณ๋ ์ ํ๋ฆฌ์ผ์ด์
์
์ค๊ณํ๊ณ , ๊ฐ๋ฐํ๋ ๊ฒ์
๋๋ค.
๐ก ๋ณธ ๊ณผ์ ์ ํตํด Spring Boot์ Spring Cloud๋ฅผ ์ด์ฉํ์ฌ Microservice Architecure๋ก ์น ์๋น์ค๋ฅผ ์ค๊ณํ๊ณ , ๊ตฌํ, ์ด์ ๊ดํ ์ ๋ฐ์ ์ธ ๊ณผ์ ์ ํ์ตํ์ค ์ ์์ต๋๋ค. (๋ก๋๋งต ๋ณด๊ธฐ)
REST API๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํด Spring Boot๋ก ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ๋จ๊ณ๋ถํฐ, REST API๋ฅผ ์ค๊ณํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌํํ๋ ๊ณผ์ ์ ๋ํด ํ์ตํฉ๋๋ค.
Spring Boot์ Spring Cloud๋ฅผ ์ด์ฉํ์ฌ Microservice Architecture๋ฅผ ์ค๊ณ, ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํฉ๋๋ค.
๐ข ์๊ฐ ์ ํ์ธํด์ฃผ์ธ์
ํ์ต ๋์์
๋๊ตฌ์ผ๊น์?
Spring Boot๋ฅผ ์ด์ฉํด์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ คํ๋ ๋ถ๋ค
REST API ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ ค๋ ๋ถ๋ค
๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ๊ฐ๋ฐํ๋ ค๋ ๋ถ๋ค
์ ์ ์ง์,
ํ์ํ ๊น์?
Java
Web Application
Spring framework์ ๋ํ ๊ธฐ๋ณธ ์ง์
27,628
๋ช
์๊ฐ์
1,408
๊ฐ
์๊ฐํ
1,322
๊ฐ
๋ต๋ณ
4.8
์
๊ฐ์ ํ์
7
๊ฐ
๊ฐ์
์ ๋ IT ์์ง๋์ด์ ๋๋ค. ์ธ์ ๊ฐ ์ง์ ๋์ "ํ์ฌ์?", "๊ฐ๋ฐ์?", "๊ฐ์ฌ?" ์ด๋ค ๋จ์ด๋ฅผ ์ ํํด์ผ ํ ์ง ๊ณ ๋ฏผ์ด ๋์๋ ๋๊ฐ ์์์ต๋๋ค. ๊ทธ๋ฌ๋ค๊ฐ, IT ์์ง๋์ด๋ผ๋ ํํ์ด ์ ๊ฐ ์ ์ด์ธ๋ฆฌ๋ ์ง์ ๋ช ์ด๋ผ๋ ์๊ฐ์ด ๋ค์ด ์ง๊ธ๊น์ง๋ ์ง์ ๋์๋ "IT ์์ง๋์ด"๋ผ๊ณ ์ ๊ณ ์์ต๋๋ค.
์ง์ ์ด๋ผ๋ ๊ฒ์ ์์ ์ ์ผ์ ๋ํ๋ด๋ ๊ฒ์ด๊ณ , ์ผ์ด๋ผ๋ ๊ฒ์ ์ฌ๋ฏธ์๊ณ , ๋์์ด ๋๋ ์ผ์ด๋ฉด ์ข๊ฒ ๋ค๋ ์๊ฐ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋๊ตฌ๋ ๋ค ์ํ๋๋๋ก ์ผ์ ํ๋ฉฐ ์ด์๋ ์์ง๋ง, ์ ๋ ์ ๊ฐ ํ๋ ์๋ ์ด ์ผ์ ์ข์ํ๋ ์๊ณ , ์ํ๊ณ ์ถ์ดํ๋ ์ฌ๋์ ๋๋ค. ๊ฐ๋ฐ์๋ก์จ, ๊ฐ์ฌ๋ก์จ, ์ปจ์คํดํธ๋ก์จ์ ์ญํ ์ ํด ์ค๋ฉด์, ๋งค๋ฒ ์๋กญ๊ฒ ์ถ์๋๊ณ ๋ณํํ๋ IT ์ ๊ธฐ์ ์ ๋ฐ๋ผ๊ฐ๊ธฐ์ ๊ธ๊ธํ์ง๋ง, ๊ทธ๋๋, ๋จ๋ค๋ณด๋ค ์กฐ๊ธ์ด๋ผ๋ ๋จผ์ ์ ํ๊ณ , ์ ํํ๊ณ , ์ฌ์ฉํ๊ณ ์ถ์ ์ฌ๋ ์ค ํ๋ช ์ ๋๋ค.
์ต๊ทผ ๊ด์ฌ์ ๊ฐ์ง๊ณ ์๋ ๋ถ์ผ๋ ์จ๋ผ์ธ ๊ต์ก ์ปจ์คํ ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ด์ฌ์๋ ๊ธฐ์ ์ Cloud Native Architecture, Blockchain, Machine Learning, Kafka, Kuberbetes ๋ฑ์ ๋๋ค. ์ด๋ฌํ ๊ธฐ์ ์ ์ค์ ๋ก ๊ฐ์๋ ํ๊ณ ์๊ณ ์ ๋ฌด์ ์ ์ฉํด์ ์ฌ์ฉ๋ ํ๊ณ ์์ต๋๋ค. ํ์ง๋ง, ์๋ ๋ฐฉ๋ํ ์ฃผ์ ์ด๋ค ๋ณด๋, ์์ง๊น์ง๋ ๊ณ์ ๊ณต๋ถํ๊ณ ์์ต๋๋ค.
๋จธ๋ฆฌ์์ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ ์ง์ ํ ์ง์์ด ์๋๋ผ๊ณ ํฉ๋๋ค. ์ ๋ ์ ๊ฐ ๊ฐ์ง ์ง์๊ณผ ๊ฒฝํ์ ๋ค์ํ ๋ฐฉ๋ฒ์ ํตํด ๊ณต์ ํ๋ ค ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ , ์๋ก์ด ๋ถ์ผ, ์๋ก์ด ๊ธฐ์ ์ ๊ณ์ ๋์ ํ๊ณ ์๋ IT ์์ง๋์ด๊ฐ ๋ ๊ฒ์ ๋๋ค.
์ ์ฒด
52๊ฐ โ (6์๊ฐ 57๋ถ)