๋ค์ํ ์คํ๋ง ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ Self-Descriptive Message์ HATEOAS(Hypermedia as the engine of application state)๋ฅผ ๋ง์กฑํ๋ REST API๋ฅผ ๊ฐ๋ฐํ๋ ๊ฐ์์ ๋๋ค.
Self-Describtive Message์ HATEOAS๋ฅผ ๋ง์กฑํ๋ REST API๋ฅผ ์ดํด
๋ค์ํ ์คํ๋ง ๊ธฐ์ ์ ํ์ฉํ์ฌ REST API ๊ฐ๋ฐ
์คํ๋ง HATEOAS์ ์คํ๋ง REST Docs ํ๋ก์ ํธ ํ์ฉ
ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ(TDD)
์คํ๋ง์ผ๋ก REST๋ฅผ ๋ฐ๋ฅด๋ API๋ฅผ ๋ง๋ค์ด๋ณด์!
๋ฐฑ๊ธฐ์ ์ ์คํ๋ง ๊ธฐ๋ฐ REST API ๊ฐ๋ฐ
์ด ๊ฐ์์์๋ ๋ค์ํ ์คํ๋ง ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ Self-Descriptive Message์ HATEOAS(Hypermedia as the engine of application state)๋ฅผ ๋ง์กฑํ๋ REST API๋ฅผ ๊ฐ๋ฐํฉ๋๋ค.
2017๋ ๋ค์ด๋ฒ๊ฐ ์ฃผ๊ดํ ๊ฐ๋ฐ์ ์ปจํผ๋ฐ์ค Deview์์ ๊ทธ๋ฐ REST API๋ก ๊ด์ฐฎ์๊ฐ๋ผ๋ ์ด์์ค๋์ ๋ฐํ๊ฐ ์์์ต๋๋ค. ํ์ฌ REST API๋ก ๋ถ๋ฆฌ๋ ๋๋ถ๋ถ์ API๊ฐ ์ค์ ๋ก๋ ๋ก์ด ํ๋ฉ์ด ์ ์ํ REST๋ฅผ ๋ฐ๋ฅด๊ณ ์์ง ์์ผ๋ฉฐ, ๊ทธ ์ค์์๋ ํนํ Self-Descriptive Message์ HATEOAS๊ฐ ์ง์ผ์ง์ง ์์์ ์ง์ ํ๊ณ , ๊ทธ์ ๋ํ ๋์์ ์ ์๋์์ต๋๋ค.
์ด๋ฒ ๊ฐ์๋ ํด๋น ๋ฐํ์ ์๊ฐ์ ์ป์ด ๋ง๋ค์ด์ก์ต๋๋ค. 2018๋
11์์ KSUG์์ ๋์ผํ ์ด๋ฆ์ผ๋ก ์ธ๋ฏธ๋๋ฅผ ์งํํ ๊ฒฝํ์ด ์์ต๋๋ค. 4์๊ฐ์ด๋ผ๋ ์งง์ง ์์ ๋ฐํ์์ง๋ง, ๋น ๋ฅด๊ฒ ์งํํ๋๋ผ ์ถฉ๋ถํ ์ค๋ช
ํ์ง ๋ชปํ๊ณ ๋์ด๊ฐ๋ ๋ถ๋ถ์ด ์์์ต๋๋ค. ๋ด์ฉ์ ๋ ๋ณด์ถฉํ๊ณ , ๋ ํด๊ฒฐํ๋ ค๋ ๋ฌธ์ ์ ๋ํ ์ฌ๋ฌ ์ ํ์ง๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ์ ์ด ๊ฐ์๋ฅผ ๋ง๋ค๊ฒ ๋์์ต๋๋ค.
๋ํ ์ด ๊ฐ์์์๋ ์ ๊ฐ ์ฃผ๋ก ์ฌ์ฉํ๋ IntelliJ ๋จ์ถํค๋ ํจ๊ป ์ค๋ช
ํ๊ณ ์์ต๋๋ค.
๐ข ์๊ฐ ์ ํ์ธํด์ฃผ์ธ์!
์ด ๊ฐ์์์๋ ๋ค์ํ ์คํ๋ง ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ REST API๋ฅผ ๊ฐ๋ฐํฉ๋๋ค. ๋ํ ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ(TDD)๋ก ์งํํ๊ธฐ ๋๋ฌธ์ ํ์ ํ ์คํธ ๋๋ TDD์ ๊ด์ฌ ์๋ ๊ฐ๋ฐ์์๊ฒ๋ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
ํ
์คํธ ์ฃผ๋ ๊ฐ๋ฐ(TDD)์
๊ด์ฌ์๋ ๋ถ
๋ค์ํ ์คํ๋ง ๊ธฐ์ ์
ํ์ฉ๋ฒ์ ์๊ณ ์ถ์ ๋ถ
REST API๋ฅผ ๊ฐ๋ฐํ๋
๋ฐฉ๋ฒ์ ์๊ณ ์ถ์ ๋ถ
์คํ๋ง ํ๋ ์์ํฌ ํต์ฌ ๊ธฐ์ ์ ์๊ณผ๋ชฉ
์คํ๋ง ๋ถํธ์ ํต์ฌ ๊ธฐ์ ์ ์ดํดํ๊ธฐ ์ํ ๊ฐ์์ ๋๋ค. ์คํ๋ง ๋ถํธ๋ก ์คํ๋ง์ ์ฒ์ ์ ํ ๋ถ๋ค์๊ฒ ๋์๋ฉ๋๋ค.
์คํ๋ง ๋ถํธ ๊ฐ๋ ๊ณผ ํ์ฉ์ ์๊ณผ๋ชฉ
์คํ๋ง ๋ถํธ์ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ์ดํดํ๊ณ ์ฌ์ฉ๋ฒ์ ์ตํ๊ธฐ ์ํ ๊ฐ์์ ๋๋ค. ์คํ๋ง ๋ถํธ๋ฅผ ํ์ตํ๊ณ ์ถ์ ๋ถ๋ค์๊ฒ ๋์๋ฉ๋๋ค.
์คํ๋ง ๋ฐ์ดํฐ JPA์ ํ๊ณผ๋ชฉ
JPA(Java Persistence API)๋ฅผ ๋ณด๋ค ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ์ฌ๋ฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์คํ๋ง ๋ฐ์ดํฐ JPA์ ๋ํด ํ์ตํฉ๋๋ค.
ํ์ต ๋์์
๋๊ตฌ์ผ๊น์?
ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ(TDD)์ ๊ด์ฌ์๋ ๋ถ
๋ค์ํ ์คํ๋ง ๊ธฐ์ ์ ํ์ฉ๋ฒ์ ์๊ณ ์ถ์ ๋ถ
REST API๋ฅผ ๊ฐ๋ฐํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์ถ์ ๋ถ
์ ์ ์ง์,
ํ์ํ ๊น์?
ใ์คํ๋ง ํ๋ ์์ํฌ ํต์ฌ ๊ธฐ์ ใ ๊ฐ์
ใ์คํ๋ง ๋ถํธ ๊ฐ๋ ๊ณผ ํ์ฉใ ๊ฐ์
Java ํ๋ก๊ทธ๋๋ฐ ๊ฒฝํ
91,159
๋ช
์๊ฐ์
4,048
๊ฐ
์๊ฐํ
2,009
๊ฐ
๋ต๋ณ
4.8
์
๊ฐ์ ํ์
20
๊ฐ
๊ฐ์
๋ค์ด๋ฒ์ ์๋ง์กด์ ๊ฑฐ์ณ ํ์ฌ Microsoft์์ ์๋์ด ์ํํธ์จ์ด ์์ง๋์ด๋ก ์ผํ๊ณ ์์ต๋๋ค.
์์ธ์ํ์ธ์ "๊ต์ก์ด๋ ์ฌ์ค์ ๊ฐ๋ฅด์น๋ ๊ฒ์ด ์๋๋ผ, ์๊ฐํ ์ ์๋ ํ์ ๊ธฐ๋ฅด๋ ๊ฒ์ด๋ค."๋ผ๊ณ ๋งํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ ๊ทธ ๋ง์ ๊น์ด ๊ณต๊ฐํ๋ฉฐ ๊ฐ์๋ฅผ ๋ง๋ค๊ณ ์์ต๋๋ค.
์ ํ๋ธ: '๋ฐฑ๊ธฐ์ ' ์ฑ๋์์ ๊ฐ๋ฐ์ ๊ณ ๋ฏผ ์๋ด ๋ฐ ๊ฐ๋ฐ์์๊ฒ ์ ์ฉํ ์ง์ ๊ณต์
๋ฒ์ญ: ์คํ๋ง ๋ฐ ํ์ด๋ฒ๋ค์ดํธ ๊ด๋ จ ์์ ๋ค์ ๋ฒ์ญ
์ ์ : ์ฝ๊ฒ ๋ฐ๋ผํ๋ ์๋ฐ ์น ๊ฐ๋ฐ
์ ์ฒด
43๊ฐ โ (8์๊ฐ 48๋ถ)