
REST API ๋จผ์ REST๋ 'Representational State Transfer'์ ์ฝ์๋ก, ์๋ ์์ด๋ ์น(WWW)๊ณผ ๊ฐ์ ๋ถ์ฐ ํ์ดํผ๋ฏธ๋์ด ์์คํ ์ํคํ ์ฒ์ ํ ํ์ ์ ๋๋ค. ์ฃผ๊ณ ๋ฐ๋ ์์(Resource)์ ์ด๋ฆ์ ๊ท์ ํ๊ณ URI์ ๋ช ์ํด HTTP๋ฉ์๋(GET, POST, PUT, DELETE)๋ฅผ ํตํด ํด๋น ์์์ ์ํ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ฒ์ ์๋ฏธ ํฉ๋๋ค. REST API๋ REST์ํคํ ์ฒ๋ฅผ ๋ฐ๋ฅด๋ ์์คํ /์ ํ๋ฆฌ์ผ์ด์ ์ธํฐํ์ด์ค๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค. REST ์ํคํ ์ฒ๋ฅผ ๊ตฌํํ๋ ์น ์๋น์ค๋ฅผ 'RESTfulํ๋ค'๋ผ๊ณ ํํํฉ๋๋ค. REST์ ํน์ง ์ ๋ํผ ์ธํฐํ์ด์ค ์ ๋ํผ ์ธํฐํ์ด์ค๋ ์ผ๊ด๋ ์ธํฐํ์ด์ค๋ฅผ ์๋ฏธ ํฉ๋๋ค. ์ฆ, REST ์๋ฒ๋ HTTP ํ์ค ์ ์ก ๊ท์ฝ์ ๋ฐ๋ฅด๊ธฐ ๋๋ฌธ์ ์ด๋ค ํ๋ก๊ทธ๋๋ฐ ์ธ..

์ ์ด ์ญ์ (Inversion of Control) ์ผ๋ฐ์ ์ธ ์๋ฐ ๊ฐ๋ฐ์ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ค๋ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฐ์๊ฐ ์ง์ ์ ์ธ(new)ํ๊ณ , ์ ์ดํ๋ ๊ตฌ์กฐ ์ ๋๋ค. ํ์ง๋ง! ์ ์ด ์ญ์ ์ ํน์ง์ผ๋ก ํ๋ ์คํ๋ง์ ๊ฐ์ฒด์ ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ๋ฅผ ์ธ๋ถ(Spring Container, IoC Container)์ ์์ ํฉ๋๋ค. ์ด์ฒ๋ผ ๊ฐ์ฒด์ ๊ด๋ฆฌ๋ฅผ ์ปจํ ์ด๋์ ๋งก๊ฒจ ์ ์ด๊ถ์ด ๋์ด๊ฐ ๊ฒ์ ์ ์ด ์ญ์ ์ด๋ผ๊ณ ํฉ๋๋ค. IoC ์ปจํ ์ด๋ ์ญํ ๊ฐ์ฒด์ ์๋ช ์ฃผ๊ธฐ์ ์์กด์ฑ ๊ด๋ฆฌ ๊ฐ์ฒด์ ์์ฑ, ์ด๊ธฐํ ๋ฐ ์๋ฉธ ๋ด๋น ์์ค ๊ตฌํ ์๊ฐ์ ๋จ์ถ์ํค๊ณ , ์์กด ๊ด๊ณ ๋ฎ์ถค ์์กด์ฑ ์ฃผ์ (DI) ์ ์ด ์ญ์ ์ ๋ฐฉ๋ฒ ์ค ํ๋๋ก ์ฌ์ฉํ ๊ฐ์ฒด๋ฅผ ์ง์ ์์ฑํ์ง ์๊ณ , ์ธ๋ถ ์ปจํ ์ด๋๊ฐ ์์ฑํ ๊ฐ์ฒด๋ฅผ ์ฃผ์ ๋ฐ์ ์ฌ์ฉํ๋ ๋ฐฉ์ ์์ฑ์๋ฅผ ํตํ ์์กด์ฑ ์ฃผ์ ํ๋ ๊ฐ์ฒด ..
๊ฐ์ฒด์งํฅ ๋ณต์ต ๐ก ๋ฉด์ ์ ์์ฃผ ๋ฑ์ฅํ๋ ๋คํ์ฑ, ์ถ์ ํด๋์ค, ์ธํฐํ์ด์ค ๊ฐ์ฒด์งํฅ 4๋ ํน์ฑ ์บก์ํ, ์์, ์ถ์ํ, ๋คํ์ฑ ์์์ ์ ํ๋๊ฐ? ์ฌ์ฌ์ฉ์ฑ(๊ทธ๋๋ก ๋ฌผ๋ ค๋ฐ๋ ๋ณ๊ฒฝ์ด ํ์ํ ๊ฒฝ์ฐ) ์ด ๋ ์ผ์ด๋๋๊ฒ ๋คํ์ฑ ๐ ๋ถ๋ชจ, ์์ ํด๋์ค ๋ชจ๋ ๊ตฌํ๋ถ๊ฐ ์์. ์บก์ํ ๋ด๋ถ ์ธ์คํด์ค๋ฅผ ์ธ๋ถ์์ ์ ๊ทผํ๋ ๊ฒ์ผ๋ก๋ถํฐ ๋ณดํธํ๊ธฐ ์ํจ. ์) ์ด์ ์๋ ์ฐจ ์๋๋ฅผ ๋์ผ ๋ ์์ง์ ์ง์ ์ ๊ทผํ์ฌ ์๋๋ฅผ ์ ์ดํ๋ฉด ์ ๋จ. ์ต๊ณ ์๋๊ฐ 200km/h์ธ๋ฐ 250km/h๋ก ์กฐ์ ํ๋ฉด ํฐ์ผ๋จ.. โด๏ธ ๋คํ์ฑ ์์ ํด๋์ค ํ์ ์ ์ฐธ์กฐ ๋ณ์๋ก ํ์ ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ ์ ์๋ค. ํ์ ํด๋์ค is kind of ์์ ํด๋์ค ๐ก ์คํ๋ง ๋ถํธ์ ์์กด์ฑ ์ฃผ์ (AOP)๊ณผ ๋น์ท(๊ฐ์ฒด๋ฅผ ๋๊ฐ ๋ง๋ค์๋์ ๋ฐ๋ผ ๋ค๋ฆ.. ex.์ ์ด ์ญ์ (IoC)..