REST: Representational State Transfer
ABSTRACT OF THE DISSERTATION
- ์๋ ์์ด๋ ์น์ ํฐ ์ฑ๊ณต์ ์ด๋ค๊ณ , ์ด์ ๋ชจ๋ ์น ์ํคํ ์ฒ๋ฅผ ๊ฐ์ด๋ํ๊ธฐ ์ํ ๋ชจ๋ธ์ด ํ์ํ๋ค.
- ์ด ์ฐ๊ตฌ๋ ๋คํธ์ํฌ ๊ธฐ๋ฐ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ค๊ณ๋ฅผ ์ดํดํ๊ณ ํ๊ฐํจ์ผ๋ก์จ ์ํคํ ์ฒ์ ๊ธฐ๋ฅ์ , ์ฑ๋ฅ์ , ์ฌํ์ ์๊ตฌ๋ฅผ ๋ถ์ํ๊ธฐ ์ํด ์์๋๋ค.
- ์ด ๋ ผ๋ฌธ์์๋ Representational State Transfer (REST) ์ํคํ ์ฒ ์คํ์ผ์ ์๊ฐํ๋ฉฐ, REST๊ฐ ๋ชจ๋ ์น ์ํคํ ์ฒ์ ๊ฐ๋ฐ๊ณผ ์ค๊ณ๋ฅผ ์ด๋ป๊ฒ ๊ฐ์ด๋ํ ์ ์๋์ง ์ค๋ช ํ ๊ฒ์ด๋ค.
- REST๋ ์ปดํฌ๋ํธ ์ํธ์์ฉ์ ํ์ฅ์ฑ, ์ธํฐํ์ด์ค์ ๋ฒ์ฉ์ฑ, ์ปดํฌ๋ํธ์ ๋ ๋ฆฝ๋ ๋ฐฐํฌ, ์ํธ์์ฉ ๋ ์ดํด์๋ฅผ ์ค์ด๋ ์ค๊ณ ์ปดํฌ๋ํธ, ๋ณด์, ๋ ๊ฑฐ์ ์์คํ ์บก์ํ๋ฅผ ๊ฐ์กฐํ๋ค.
- ๋ง์ง๋ง์ผ๋ก Hypertext Transfer Protocol(HTTP)๊ณผ Uniform Resource Identifier(URI)์ REST๋ฅผ ์ ์ฉํ๋ฉฐ ๋ฐฐ์ด ๊ตํ์ ๋ํด ์ค๋ช ํ๊ฒ ๋ค.
INTRODUCTION
- ์ํคํ ์ฒ๋ 90๋ ๋ ์ํํธ์จ์ด ๊ณตํ ์ฐ๊ตฌ์ ์ค์ฌ์ด ๋์๋ค. ์ข์ ์ํคํ ์ฒ๋ ์ง๊ณต ์ํ์์ ๋ง๋ค์ด์ง์ง ์๋๋ค. ์ํคํ ์ฒ ๋ ๋ฒจ์ ๋ชจ๋ ์ค๊ณ๋ ๊ธฐ๋ฅ์ , ์ฌํ์ ์๊ตฌ ๋งฅ๋ฝ์ ๋ง์ถฐ ๊ฒฐ์ ๋์ด์ผ ํ๋ค.
- ์ง๋ ์๋ฐฑ๋ ๊ฐ์ ํ๋ก์ ํธ ์คํจ ๊ฒฝํ์ผ๋ก๋ถํฐ "ํํ๋ ๊ธฐ๋ฅ์ ๋ฐ๋ฅธ๋ค"๋ผ๋ ์์น์ด ๋ง๋ค์ด์ก์ง๋ง, ์ํํธ์จ์ด ์ค๋ฌด์๋ค์ ์ข ์ข ์ด ์์น์ ๋ฌด์ํ๋ค.
- ์ฒ์ ์ธ ์ฑํฐ์์๋ ์ดํคํ ์ฒ๋ฅผ ์ดํดํ๊ธฐ ์ํ ํ๋ ์์ํฌ๋ฅผ ์ ์ํ๊ณ , ์ฑํฐ 4์์๋ ์น ์ค๊ณ์ ์๊ตฌ์ฌํญ์ ๋ํด ๋ ผ์ํ๋ค. ์ฑํฐ 5์์๋ ํ์ดํผ ๋ฏธ๋์ด ์์คํ ์ ์ํ REST ์ํคํ ์ฒ ์คํ์ผ์ ๋ํด ์์ธํ ์๊ฐํ ๊ฒ์ด๋ค.
CHAPTER 1. Software Architecture
- ์ฐ๊ตฌ ๋ถ์ผ๋ก์์ ์ํํธ์จ์ด ์ํคํ ์ฒ์ ๋ํ ๊ด์ฌ์๋ ๋ถ๊ตฌํ๊ณ , ์ฐ๊ตฌ์๋ค ์ฌ์ด์๋ ์ํคํ ์ฒ ์ ์์ ์ด๋ค ๊ฒ์ ํฌํจํด์ผ ํ๋์ง์ ๋ํ ์๊ฒฌ ์ผ์น๊ฐ ๊ฑฐ์ ์๋ค.
- ์ด ์ฑํฐ์์๋ ์ํํธ์จ์ด ์ํคํ ์ฒ์ ๋ํ ์ผ๊ด๋ ์ฉ์ด๋ฅผ ์ ์ํ๋ค.
1.1. Run-time Abstraction
- ์ํํธ์จ์ด ์ํคํ ์ฒ๋ ์์คํ ์ด ์ด์๋๋ ์ผ๋ถ ๋จ๊ณ์ ๋ฐํ์ ์์๋ค์ ์ถ์ํํ ๊ฒ์ด๋ค. ์์คํ ์ ๊ฐ๊ฐ์ ์ํคํ ์ฒ์ ๋ฐ๋ผ ์ฌ๋ฌ ๋ถ๋ถ์์ ์ฌ๋ฌ ๊ณ์ธต์ผ๋ก ์ถ์ํ๋ ์ ์๋ค.
- ์ํํธ์จ์ด ์ํคํ ์ฒ์ ์ฌ์ฅ์ ์ถ์ํ ์์น์ด๋ค. ๋ณต์กํ ์์คํ ์ ๋ ๋ง์ ๊ณ์ธต์ผ๋ก ์ถ์ํ๋ ๊ฒ์ด๋ค.
- ์์คํ ์ ๊ตฌ๋, ์ด๊ธฐํ, ์ฒ๋ฆฌ, ์ฌ์ด๊ธฐํ, ์ ์ง์ ๊ฐ์ ์ฌ๋ฌ ์ด์ ๋จ๊ณ๋ฅผ ๊ฑฐ์น๋ฉฐ, ๊ฐ ์ด์ ๋จ๊ณ๋ ์์ ์ ์ํคํ ์ฒ๋ฅผ ๊ฐ์ง๋ค.
1.2. Elements
- ์ํํธ์จ์ด ์ํคํ
์ฒ๋ ์ํคํ
์ฒ ์์(์ปดํฌ๋ํธ, ์ปค๋ฅํฐ, ๋ฐ์ดํฐ)์ ๊ตฌ์ฑ๊ณผ ๊ด๊ณ์ ์ ์ฝ์ผ๋ก ์ ์๋๋ค.
- ์ปดํฌ๋ํธ(Component): ๋ช ๋ น๊ณผ ์ธํฐํ์ด์ค๋ฅผ ํตํ ๋ฐ์ดํฐ ๋ณํ์ ์ ๊ณตํ๋ ๋ด๋ถ ์ํ์ ์ถ์ ๋จ์.
- ์ปค๋ฅํฐ(Connector): ์ปดํฌ๋ํธ ๊ฐ์ ํต์ , ์กฐ์ ๋๋ ํ๋ ฅ์ ๋งค๊ฐํ๋ ์ถ์ ๋งค์ปค๋์ฆ.
- ๋ฐ์ดํฐ(Datum): ์ปดํฌ๋ํธ๊ฐ ์ปค๋ฅํฐ๋ฅผ ํตํด ์์ ํ๋ ์ ๋ณด.
1.3. Configurations
- ๊ตฌ์ฑ์ ์์คํ ๋ฐํ์ ๋์ ์ด๋ค์ง๋ ์ํคํ ์ฒ ์์ ์ฌ์ด์ ๊ด๊ณ ๊ตฌ์กฐ๋ค.
1.4. Properties
- ์ํํธ์จ์ด ์ํคํ ์ฒ์ ์์ฑ ์งํฉ์ ์ปดํฌ๋ํธ, ์ปค๋ฅํฐ, ๋ฐ์ดํฐ์์ ํ์๋๋ ๋ชจ๋ ํน์ฑ์ ํฌํจํ๋ค.
- ์์ฑ์ ์ํคํ ์ฒ์ ์ ์ฝ ์งํฉ์ ์ํด ์ ๋๋๋ค.
1.5. Styles
- ์ํคํ ์ฒ ์คํ์ผ์ ์์๋ค์ ์ญํ ๊ณผ ๊ธฐ๋ฅ์ ์ ํํ๋ ์ ์ฝ ์งํฉ์ผ๋ก ์ด๋ค์ง๋ค.
- ์๋ก ๋ค๋ฅธ ์์คํ ์ ์ํคํ ์ฒ๋ฅผ ์ง์ ๋น๊ตํ๋ ๊ฒ์ ์ด๋ ค์ด ์ผ์ธ๋ฐ, ์คํ์ผ์ ์ํคํ ์ฒ์ ์ผ๋ฐ์ ์ธ ์ฑ๊ฒฉ์ ์ ์ํ๊ณ ๋ถ๋ฅํ๋ ๋งค์ปค๋์ฆ์ด๋ค.
์ฐธ๊ณ ์๋ฃ
- ๊น๋๋ฒ, โREST API ์ ๋๋ก ์๊ณ ์ฌ์ฉํ๊ธฐโ, TOAST Meetup, 2016.
- ์ด์์ค, โ๊ทธ๋ฐ REST API๋ก ๊ด์ฐฎ์๊ฐ,โ in 10th DEVIEW, Nov. 2017.
- R. T. Fielding, โArchitectural Styles and the Design of Network-based Software Architecturesโ, Ph.D. dissertation, Dept. Inf. and Comput. Sci., Univ. California, Irvine, USA, 2000.
์ด ๋ฌธ์๋ฅผ ์ธ์ฉํ ๋ฌธ์
- ์ปดํจํฐ ๋คํธ์ํฌ
- ใHypermedia Systemsใ
-
์ด์ Roy Fielding์ REST ์ด์ผ๊ธฐ๋ฅผ ํด๋ณด์:
-