์คํ๋ง ๊ธฐ๋ฐ REST API ํ์ต ๋ฐ ๊ฐ๋ฐ
๋ค์ํ ์คํ๋ง ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ Self-Describtive Message์ HATEOAS(Hypermedia as the engine of application state)๋ฅผ ๋ง์กฑํ๋ REST API๋ฅผ ๊ฐ๋ฐํฉ๋๋ค.
์ด์์ค๋๊ป์ 2017๋ ๋ค์ด๋ฒ๊ฐ ์ฃผ๊ดํ Deview๋ผ๋ ๊ฐ๋ฐ์ ์ปจํผ๋ฐ์ค์์ โ๊ทธ๋ฐ REST API๋ก ๊ด์ฐฎ์๊ฐโ ๋ผ๋ ๋ฐํ๋ฅผ ํ์ต๋๋ค. ๋ฐํ์ ํต์ฌ์ ํ์ฌ REST API๋ก ๋ถ๋ฆฌ์ฐ๋ ๋๋ถ๋ถ์ API๊ฐ ์ค์ ๋ก๋ ๋ก์ด ํ๋ฉ์ด ์ ์ํ REST๋ฅผ ๋ฐ๋ฅด๊ณ ์์ง ์์ผ๋ฉฐ, ๊ทธ ์ค์์๋ ํนํ Self-Describtive Message์ HATEOAS๊ฐ ์ง์ผ์ง๊ณ ์์ง ์์์ ์ง์ ํ๊ณ ๊ทธ์ ๋ํ ๋์์ ์ ์ํ์ต๋๋ค.
ํ๋ก์ ํธ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- Java11
- Maven
- Spring Boot
- Spring Data JPA
- Spring HATEOAS
- Spring REST Docs
- Spring Security OAuth2
๋ํ ๊ฐ๋ฐ์ ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ(TDD)๋ก ์งํํฉ๋๋ค.
- Self-Describtive Message์ HATEOAS๋ฅผ ๋ง์กฑํ๋ REST API๋ฅผ ์ดํดํฉ๋๋ค.
- ๋ค์ํ ์คํ๋ง ๊ธฐ์ ์ ํ์ฉํ์ฌ REST API๋ฅผ ๊ฐ๋ฐํ ์ ์์ต๋๋ค.
- ์คํ๋ง HATEOAS์ ์คํ๋ง REST Docs ํ๋ก์ ํธ๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค.
- ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ(TDD)์ ์ต์ํด ์ง๋๋ค.
1. REST API
ํด๋น repo๋ ์คํ๋ง ๊ธฐ๋ฐ REST API ๊ฐ๋ฐ - ๋ฐฑ๊ธฐ์ ํด๋น ๊ฐ์๋ฅผ ๋ฃ๊ณ ์ ๋ฆฌํ REPO ์ ๋๋ค.