๊ทธ๋์ Rest API๊ฐ ๋์ฒด ๋ญ๋ฐ (์ญ์ฌ์ด์ผ๊ธฐ)
by JiwonDev๐ค ์ฐ์..๊ทธ API๋ Restful ํ์ง ์์๋ฐ?
๐คฌ ๊ท์น ๋ค ์ง์ผฐ๊ตฌ๋ง. Restful API๊ฐ ๋์ฒด ๋ญ๋ฐ? REpresentation State Transfer? ์ด๋์ ๋ง๋ ํ์ค์ธ๋ฐ?
๐ค ๊ทธ๊ฑธ ๋ฌป๋ ๊ฒ ์์ฒด๊ฐ Rest ํ์ง ์๋ค.
๐คฌ $#*%*#&%
๐ฉ ์ธํฐ๋ท์ ์ญ์ฌ
๐ญ ์ธํฐ๋ท์ ์ธ์ ๋์จ๊ฑด๊ฐ์?
- ์ธ๊ณ 2์ฐจ ๋์ ์ดํ 1960๋ , ๋ฏธ๊ตญ ๊ตญ๋ฐฉ๋ถ๋ ๊ธฐ์กด ์ค์์๋ง ์ง์ค๋ ํต์ ์ฒด๊ณ๋ฅผ ๊ฐ์ ํ๊ณ ์ ํ๋ค.
- ๋ฏธ๊ตญ ๊ตญ๋ฐฉ๋ถ๋ ์ค์์ด ์๋๋ผ๋ ํต์ ์ด ๊ฐ๋ฅํ ์ ๊ตญ์ ์ธ ๋คํธ์ํฌ ์ธํ๋ผ, ์ํ๋ท์ ๊ตฌ์ฑํ๊ธฐ ์์ํ๋ค.
- 1973๋ TCP/IP ๋์ , ๋ชจ๋ ์ปดํจํฐ๋ฅผ ํ ํต์ ๋ง์ ์ฐ๊ฒฐ(International Network)ํ๋ค๋ ์๋ฏธ๋ก Internet ์ด๋ผ ๋ถ๋ฅด๊ธฐ ์์.
- ์ด ๋ ๋น์ ์ธํฐ๋ท์ ๊ตฐ๋, ๋ํ๊ธฐ์ , ๊ธฐ๊ด์ฒ๋ผ ํน์ํ ๊ณณ์์๋ง ์ฌ์ฉํ ์ ์๋ ๋คํธ์ํฌ ํต์ ๋ง์ด์๋ค.
OSI 7 Layer, TCP/IP 4๊ณ์ธต์ ์ธ์ ๋์ค๊ฒ ๋๊ฑฐ์ฃ ?
์์ฝ)
OSI 7๊ณผ TCP/IP๋ ํฌ๊ฒ๋ณด๋ฉด ๋น์ทํ์ง๋ง, ๋ง๋ค์ด์ง ๋ชฉ์ ๊ณผ ๋ง๋ ๊ณณ์ด ๋ค๋ฆ
๋๋ค.
- OSI๋ ํ๋์จ์ด ์ ์กฐ์ฌ์ ๋คํธ์ํฌ ํ์ค์ ์ํด ๋ง๋ค์ด์ง. (ํ๋์จ์ด~์ํํธ์จ์ด)
- TCP/IP๋ ์ปดํจํฐ๊ฐ ํต์ ์ ์ํด ๋ง๋ค์ด์ง. (ํ๋์จ์ด ๊ด์ฌ X)
1. ์ต์ด์ ์ธํฐ๋ท์ 1960๋
๋ฏธ๊ตญ ๊ตญ๋ฐฉ๋ถ์ ํต์ ์์คํ
, ์ํ๋ท(ARPAnet)์ด ์์ด์์ต๋๋ค.
2. ์๋ ๋คํธ์ํฌ ํ์ค์ด ์์๋์๋, ์ฅ์น๋ฅผ ๋ง๋ ๊ณณ์ด ๋ค๋ฅด๋ค๋ฉด ํต์ ์ด ๋ถ๊ฐ๋ฅํ์ต๋๋ค.
3. ์ด๋ ๋งค์ฐ ๋ถํธํ๊ธฐ์, 1970๋
์ ํ์คํ๋ฅผ ์์ํ์ฌ 1984๋
ISO์์ ๋คํธ์ํฌ๋ฅผ ์ํ ํ์ค์ธ OSI 7 Layer๋ฅผ ๋ฐํํฉ๋๋ค.
4. ์ต์ด์ TCP/IP๋ผ๋ ๊ฐ๋
์ 1974๋
ํ ๋
ผ๋ฌธ์ ํตํด ๋ฑ์ฅํฉ๋๋ค.
5. 1982๋
์ ๊ธฐ์กด ์ํ๋ท์ ์ฌ์ฉํ๋ ํ๋กํ ์ฝ(NCP)์ TCP/IP 4๊ณ์ธต ๋ชจ๋ธ์ ๋ง๋ค์ด ๋์ฒดํฉ๋๋ค.
6. ์ํ๋ท์ 1990๋
์ ์ข
๋ฃ๋์์ง๋ง, ์ฌ๊ธฐ์์ ๊ฐ๋ฐ๋ TCP/IP 4๊ณ์ธต ๋ชจ๋ธ์ ๊ทธ๋๋ก ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.
OSI๋ ๊ตญ์ ํ์คํ๊ธฐ๊ตฌ์์ ๋ง๋ ๋งํผ, ๋ ์ผ๋ฐ์ ์ด๊ณ ๋ชจ๋ ๋คํธ์ํฌ ํต์ ์ ์ ์ฉ ๊ฐ๋ฅํ ๊ท์ฝ์
๋๋ค. ์ด ๋ชจ๋ธ์ ๋ง์ถฐ ๋คํธ์ํฌ ํต์ ์ ๊ตฌ์ฑํด ๋ณ ์์
์์ด ๋ชจ๋ ํต์ ๊ฐ๋ฅํ๊ฒ ํ์! ๋ผ๊ณ ์ธ์น๋ ๊ฐ์ด๋๋ผ์ธ์
๋๋ค. (๋๋ฌธ์ ๋คํธ์ํฌ ์ฅ๋น ๋ฑ์ ๋ง์ด ์ฐ์ด๋๊ฑธ ๋ณผ ์ ์์ต๋๋ค. (L7 ์ค์์น ๋ฑ))
TCP/IP๋ ํ์ฌ์ ์ธํฐ๋ท ๊ตฌ์ฑ์ ์ํด ๋์๋ ์ค์ฉ์ ์ธ ์ฑ๊ฒฉ์ ๋ชจ๋ธ์
๋๋ค. ๋ณต์กํ ํ๋กํ ์ฝ์ ์์ฑํ ์์ OSI ๋ชจ๋ธ์ ๋ฐ๋ฅผ ๊ฒฝ์ฐ ๊ฐ ๊ณ์ธต๋ค์ด ๋๋ฌด๋๋ ์ธ์ธํ์ฌ ์์
์ด ๋ฒ๊ฑฐ๋กญ์ต๋๋ค. (๋น์ฅ ์ฐ๋ฆฌ๊ฐ ๋งค์ผ ์ฐ๋ HTTP๋งํด๋ OSI ๋ชจ๋ธ์ 3๊ฐ ๊ณ์ธต์ ๋๋๋ญ๋๋ค.) ์ด๋ ๊ฒ ์ปค๋ค๋ ํ๋กํ ์ฝ ๊ตฌ์ฑ ์์ ๋ค์ํ ์์ญ์ ์์ฐ๋ฅด๋ฉฐ ์ ๊ธฐ์ ์ธ ๋์์ ํ ์ ์๋๋ก ๊ตฌ์ฑ๋ ๊ฒ์ด TCP/IP ๋ชจ๋ธ์
๋๋ค.
์ด๋ฐ ์ฑ๊ฒฉ๋ค ๋๋ฌธ์, ๋ณดํต ์๋น์ค ํ๋ก๊ทธ๋๋จธ๋ค ํ๋ฉด tcp/ip ๋ชจ๋ธ์ ํจ์ฌ ๋ง์ด ์ ํ ํ
๊ณ , ๋คํธ์ํฌ ์์
์ ํ ๊ฒฝ์ฐ osi ๋ชจ๋ธ์ ์์ฃผ ์ ํฉ๋๋ค.
https://www.guru99.com/difference-tcp-ip-vs-osi-model.html
๐ญ ์น์๋ฒ์ WWW๋ ๋ฌด์์ธ๊ฐ์?
- 1980๋ , ์ค์์ค ์ ์์ฐ๊ตฌ์(CERN)์์ ํ์ค ์ ์๋ฅผ ์ฐพ๊ธฐ์ํด ์ ์ธ๊ณ 127๊ฐ๊ตญ, 12000๋ช ์ ๊ณผํ์๋ค์ด ๋ชจ์ด๊ฒ ๋๋ค.
- ๋น์ ๋น์ ๊ท์ง ํ๋ก๊ทธ๋๋จธ์ธ ํ ๋ฒ๋์ค๋ฆฌ๋ ์๋ฅ๋ ์ ๋ณด๋ฅผ ์ฝ๊ฒ ๊ณต์ ํ ์์๋ ํ๋ก๊ทธ๋จ์ ๋ง๋ค๊ณ ์ ํ์๋ค.
- ๊ฑฐ์ 10๋ ์ด ์ง๋ 1989๋ , ์ค์์ค ์ ์์ฐ๊ตฌ์์๋ ๋ง์นจ๋ด ์ธํฐ๋ท ๋คํธ์ํฌ ์ธํ๋ผ๊ฐ ์ค์น๋๊ฒ ๋๋ค.
- 1990๋ , ํ๋ฒ๋์ค๋ฆฌ๋ HTML ํ์์ ๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ World Wide Web ์ด๋ผ๋ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๊ฒ ๋๋ค.
- 1990๋ 12์, ์ธํฐ๋ท์ ์ด์ฉํด ์น ์๋ฒ๋ฅผ ๋ง๋ค๊ณ WWW์์ ๋คํธ์ํฌ ์ ์ ๊ฐ๋ฅํ ์ฒซ ์ฌ์ดํธ(info.cern.ch)๋ฅผ ์คํํ๋ค.
๐ญ HTTP๋ ๋์ฒด ๋ฌด์์ธ๊ฐ.
- ์ธํฐ๋ท์ ์ฌ์ฉํ๋ [ ์น์๋ฒ + WWW ] ์กฐํฉ์ ์ฐ๊ตฌ์์์ ํญ๋ฐ์ ์ธ ์ธ๊ธฐ๋ฅผ ์ป๊ฒ๋๋ค.
- 1991๋ , ์น์๋ฒ์ WWW ํต์ ์ [ HTTP v0.9 ]๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ฌธ์ํํ๊ณ , ์ด ํ๋กํ ์ฝ์ ํ์คํ ํ๋ค.
- ์ดํ ๋ค์ํ ์ถ๊ฐ๊ธฐ๋ฅ๊ณผ ์ ์ฐ์ฑ์ ์ถ๊ฐํ๋ฉฐ 1996๋ [ HTTP v1.0 ], 1997๋ [ HTTP v1.1 ] ์ ๋ฐํํ๊ฒ ๋๋ค.
- [ HTTP v1.1 ] ์ 15๋ ๊ฐ ์์ ์ฑ์ ์ ์งํ๋ฉฐ ์ฌ์ฉํ๊ฒ ๋๋ค. ํ์ฌ ๋ฐฐ์ฐ๋ ๋๋ถ๋ถ์ ๊ฐ๋ ์ ์ด HTTP v1.1๋ฅผ ์๋ฏธํ๋ค.
- ์ค๋งํธํฐ์ ๋ฑ์ฅ์ผ๋ก ๋คํธ์ํฌ ์ฌ์ฉ๋์ด ํฌ๊ฒ ๋์์ง์ 2014๋ [ HTTP v2.0 ], 2020๋ [ HTTP v3.0 ]์ด ๋ฑ์ฅํ๊ฒ ๋๋ค.
๐ญ ์ธํฐ๋ท์ ๋์ค ๋ณด๊ธ
- 1990๋ ์น์๋ฒ์ WWW๋ผ๋ ์ ๋ฐํ ๊ฐ๋ ์ด ๋ฑ์ฅํ ํ, ๋ ๋์๋ฅผ ๋งก์ ์ธํฐ๋ท ์๋น์ค ๊ธฐ์ (ISP)์์ ๋ณด๊ธ์ ์๋ํ๋ค.
- ํ์ง๋ง ๊ฐ์ ์ง์ ๋คํธ์ํฌ ์ธํ๋ผ(์ธํฐ๋ท)์ ๊ตฌ์ถํ๊ธฐ์๋ ๋๋ฌด๋ ๋น์ฉ์ด ๋ง์ด ๋ค์๋ค.
- ๊ทธ๋์ ๊ธฐ์กด์ ์ง์ง๋ง๋ค ์๋ ์ ํ์ ์ ์ถ๊ฐ์ ์ธ ๋ชจ๋์ฅ์น(Modem)๋ฅผ ๋ฌ์ ์ธํฐ๋ท์ ์ ์ํ ์ ์๋๋ก ๊ตฌ์ฑํ๋ค.
๊ทธ๋์ ์ด ๋น์์๋ ์ธํฐ๋ท์ ์ฌ์ฉํ๋ฉด ์ ํ๊ฐ ๋๊ฒจ์ ๊ฐ์ด ์ฌ์ฉํ ์ ์์๋ค. ๋ฌผ๋ก ์ธํฐ๋ท ์๊ธ๋ ์ ๋ง ๋น์์๋ค.
- ์ดํ 1994๋ , WWW๋ณด๋ค ์ด์ธํ ๋ท์ค์ผ์ดํ๊ฐ ๋์๊ณ 1995๋ ๊ทธ ์ ๋ช ํ MS์ ์ธํฐ๋ท ์ต์คํ๋ก์ด๊ฐ ์ถ์๋๋ค.
- ์ด๋ ๊ฒ ์์๋ ์ธํฐ๋ท์ด ์ด๋ป๊ฒ ์ ์ธ๊ณ์ ์ผ๋ก ์ฐ๊ฒฐ๋์๋์ง ๊ถ๊ธํ๋ค๋ฉด, ์๋ ๊ธ์ ์ฐธ๊ณ ํ๋๋ก ํ์.
๐ฉ SOAP ์ REST API
SOAP์ REST ๋ ๋ค ์๋ฒ-ํด๋ผ์ด์ธํธ API ์ํคํ ์ฒ๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค.
๋คํธ์ํฌ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋, ์ด๋ค ๊ท์น์ผ๋ก ์ฃผ๊ณ ๋ฐ์ ๊ฒ์ธ๊ฐ?
๐ญ SOAP ์ํคํ ์ฒ์ ํ์๋ฐฐ๊ฒฝ
1996๋ , ๊ธฐ์กด์๋ ์ฌ๋์ด ์ฝ๋ ๋ฌธ์๋ง ์ฃผ๊ณ ๋ฐ์์ผ๋ ์ด์ ์๋ฒ-ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ผ์ด ๋ง์์ง๊ฒ ๋ฉ๋๋ค.
๋คํธ์ํฌ ๋ง์ ์๋กญ๊ฒ ๋ง๋ค๋ฉด ๋ฒ๊ฑฐ๋ก์ด๋ฐ.. ๊ธฐ์กด HTTP๋ HTML์ ์ด์ฉํด์ Object-Model ๊ฐ์๊ฑฐ ๋ง๋ค๋ฉด ์๋ ๊น?
โก 2000๋
, Microsoft์์ XML-RPC ๋ฌธ๋ฒ์ ๋ฐํํ๊ฒ ๋ฉ๋๋ค. ์ดํ SOAP(Simple Object Access Protocal)๋ก ๊ฐ๋ช
ํฉ๋๋ค.
XML ์ eXtensible Markup Language ๋ผ๊ณ ํด์, ๊ธฐ์กด HTML(Hyper-Text Markup Language)์ ํ์ฅํ ๋ฌธ๋ฒ์
๋๋ค.
๐ญ REST์ ํ์ ๋ฐฐ๊ฒฝ
๋น์ ๋ํ์์์ด๋ Roy T Fielding, ๋ณธ์ธ์ด ์ค๊ณํ ์๋ก์ด ์ํคํ
์ฒ(๋ฌธ๋ฒ๊ณผ ๊ท์น)์ REST๋ผ๋ ์ด๋ฆ์ ๋ถ์ด๊ฒ ๋ฉ๋๋ค.
์ฐธ๊ณ ๋ก ๋น์ Roy T Fielding์ ์ฐ๊ตฌ์ค์์ HTTP ํ์ค์ ์ ๋ฆฌํ๋ ์์
์ ํ๊ณ ์์์ต๋๋ค.
- 1998๋ ๋ํ์์์ Microsoft Research์ ๋ณธ์ธ์ด ๋ง๋ REST ์ํคํ ์ฒ๋ฅผ ๋ฐํํฉ๋๋ค.
- 2000๋ ๋ํ์์์ RESTful API์ ๋ํด ๋ฐ์ฌ ๋ ผ๋ฌธ์ผ๋ก ๋ฐํํฉ๋๋ค.
- ๊ธฐ์กด HTTP Method, Status Code๋ฑ์ ์ ๊ทน์ ์ผ๋ก ์ด์ฉํ๊ณ , ์์(Resource)์ ๊ณ ์ ํ URI์ ํ ๋นํด ์ฌ์ฉํฉ๋๋ค.
์ด๊ธฐ์ Rest๋ ํฐ ๊ด์ฌ์ ๋ฐ์ง ๋ชปํ์ง๋ง, SOAP๊ฐ ์๋ ๊ตฌ๋ ธ๊ธฐ์ ์ฝ๋๊ฐ ๊น๋ํ Rest ๋ฐฉ์์ด ๋จ๊ฒ ๋ฉ๋๋ค.
์ดํ ์๋ง์กด AWS, Salesforce.com ๊ฐ์ API ์๋ฒ๋ฅผ ์ ๊ณตํ๋ ๋๊ธฐ์ ๋ค์ด REST๋ฅผ ์ ํํ์ฌ, ์ธ๊ธฐ๋ ๊ธ ์์นํฉ๋๋ค.
๐ญ ๊ทธ๋ผ REST API๋ ๋ํ์์์ด ์ด ๋ ผ๋ฌธ์ด ํ์ค์ธ๊ฐ์?
- 2008๋ ์ EMC, IBM, Microsoft๊ฐ ํจ๊ป CMS๋ฅผ ํ์คํํ๋ฉด์ REST API์ ๋ํ ๊ฒ์ ๋ฌธ์ํํ๊ธฐ ์์ํฉ๋๋ค.
๐ค (Roy T. Fielding) : ์ ๊ธฐ์ ๋ง๋ ๊ฑด ๋ด๊ฐ ์ ์ํ REST ์ํคํ ์ฒ๊ฐ ์๋๋๋ค. ์ง ๋ง์๋๋ก ์ด๊ฑฐ์์
- 2016๋ ๋ถํฐ ๋งค๋ Microsoft๊ฐ REST API์ ๋ํ ํ์ค ๊ฐ์ด๋๋ผ์ธ์ ์ ๊ณตํ๊ธฐ ์์ํฉ๋๋ค.
๐ค (Roy T. Fielding) : ์ ๊ฑด REST API ์๋๋ผ๋๊น? Rest API๋ (Hypertext) Message-Driven์ด์ด์ผํด.
๐ญ ๊ทธ๋ผ ๋์ฒด REST API๊ฐ ๋ญ๋ฐ
REST : ๋ถ์ฐ ํ์ดํผ๋ฏธ๋์ด(ex ์น)์ ์ํ ์ํคํ ์ฒ ์คํ์ผ. ๊ท์น๊ณผ ์ ์ฝ์กฐ๊ฑด
REST API : REST ๋ฐ๋ฅด๋ API / HTTP๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ ์ฌ์ฉํ๊ธฐ ์ํ ๊ท์น.
- ๋ช ํํ Client - Server ๊ตฌ์กฐ
- ๊ธฐ๋ณธ์ ์ผ๋ก Stateless ํ ํต์
- ์์์ ์์น๋ฅผ ๊ธฐ๋กํ๋ URI (Uniform Interface)์ HTTP Method์ ์ฌ์ฉ
Roy T. Fielding๋ URI๊ฐ Hypertext-Driven ์ด์ด์ผ ํ๋ค๊ณ ๋งํ๋ค. ๋๋ถ๋ถ์ REST๋ ์๋ ๊ท์น์ ์ ์งํค์ง ์๋๋ค.
- REST๋ Self-descriptive Messages ์ฌ์ผ ํ๋ค. (๋ฉ์์ง๋ง ๋ณด๊ณ ๋ด์ฉ์ ๋ฐ๋ก ์ ์ ์์ด์ผ ํ๋ค.)
- REST๋ HATEOAS (Hypermedia as the engine of application state) ํด์ผํ๋ค.
์ฝ๊ฒ ๋งํด ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ์ํ๊ฐ ๋ฉ์์ง์ ํฌํจ๋์ด์ผ ํ๋ค. ์๋ฒ์์ ๋ณด๋ด์ค์ผํ๋ค.
๐ญ ์ด๋ ๊ฒ๊น์ง ๊ฐ์กฐํ๋ ์ด์
Roy T. Fielding๊ฐ ์ด๋ฌํ ๊ธฐ๋ฅ์ ๊ฐ์กฐํ๋ ์ด์ ๋, REST๋ฅผ ์ฒ์ ๋ง๋ค๊ฒ ๋ ๊ณ๊ธฐ๋ฅผ ๋ณด๋ฉด ์ฝ๊ฒ ์ดํดํ ์ ์๋ค.
์๋ฒ์ ๊ธฐ๋ฅ์ด ๋ณ๊ฒฝ๋์ด๋, ํด๋ผ์ด์ธํธ๋ฅผ ์ ๋ฐ์ดํธ ํ ํ์๊ฐ ์๋ ๊ฒ์ด RESTํ ์ค๊ณ๋ผ๊ณ ์ ์ํ๊ธฐ ๋๋ฌธ.
HTTP๋ฅผ ์์ ํ๋ฉด ๊ธฐ์กด ์น์ด ํธํ์ด ์๋ ๊ฑฐ๊ฐ์๋ฐ.. ๊ทธ๊ฑธ ์ ์งํ๋ฉด์ ํ๋ ๋ฐฉ๋ฒ์ ์์๊น?
โก ๊ทธ๋์ ํ์ํ ๊ฒ์ด REST API ์ค๊ณ๋ฐฉ๋ฒ ("How do I improve HTTP without breaking the Web")
์น์ ์ํ ์ ์ด(๋งํฌ)๋ ๋ฐ๋ ์ ์๋ค. ์ด๋ ํด๋ผ์ด์ธํธ์ ์๋๊ฒ ์๋๋ผ ์๋ฒ๊ฐ ์ ๊ณต(HATEOAS)ํด์ผ ํธํ์ฑ์ ์ ์งํ๋ฉด์ ๋ณ๊ฒฝํ ์ ์๋๋ฐ, MS ๊ฐ์ ๊ณณ์์ ์ ์ํ REST ํ์ค์ ๊ทธ๋ ์ง ๋ชปํ๋ค.
๐ฉ ๊ทธ๋ผ REST๋ ๋ง๋ฅ์ธ๊ฐ์
๐ญ ์๋์.
REST ์ค๊ณ๋ฐฉ๋ฒ์ ๊ธฐ์กด์ ์น(HTTP)์ ์ข์ ์ํฅ์ ๋ง์ด ๋ผ์ณค์ต๋๋ค.
ํ์ง๋ง REST๋ ๋ณ๋์ ๊ธฐ๋ฅ์์ด, ๊ธฐ์กด HTTP ๋ฉ์๋๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค. ํํ๋ ฅ์ ํ๊ณ๊ฐ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋จ๊ฑด์ ์ญ์ ํ ๋์๋ Delete site.com/member ์ฒ๋ผ ์ฌ์ฉํ ์ ์์ง๋ง, ์ฌ๋ฌ ๊ฑด์ ์ญ์ ํ ๋ ์ ๋งคํฉ๋๋ค.
๋ํ ์์์ด๋ ์ค์๊ฐ ์ฑํ ์ฒ๋ผ ์ปค๋ฅ์ ์ํ ๊ฐ์ ๊ณ์ ๊ฐ์ง๊ณ ์์ด์ผํ ๋๋ HTTP๋ฅผ ์ฌ์ฉํ๊ธฐ ์ด๋ ต์ต๋๋ค.
๐ญ 2022๋ ์ ์น์ ์ด๋ ํ๊ฐ
MS์ I.E๊ฐ ๊นฝํ์ ์ณ๋๊ธด ํ์ง๋ง, ๊ตฌ๊ธ์ Chrome์ด ๋์จ ์ดํ ํ์ค์ด ํ๋ฆฝ๋๊ณ ์๋์ ๊ท์น๋ค์ด ์ ์ง์ผ์ง๊ณ ์์ต๋๋ค.
- ์น ํ์ด์ง๊ฐ ๋ณ๊ฒฝ๋์์ด๋, ๋ธ๋ผ์ฐ์ ๋ฅผ ์ ๋ฐ์ดํธ ํ ํ์๊ฐ ์๋ค. (๋ฐ๋๋ก ๋ธ๋ผ์ฐ์ -> ์น๋ ๋ง์ฐฌ๊ฐ์ง)
- HTTP, HTML์ ์๋ก์ด ๋ฒ์ ์ด ๋์ค๊ณ ๋ณ๊ฒฝ๋์ด๋, ๊ธฐ์กด์ ์น์ ์ ๋์ํด์ผํ๋ค.
๋น์ฐํ๋ค๊ณ ์๊ฐํ๊ณ ์ฌ์ฉํ์ง๋ง, ์ด๋ฅผ ์ ์งํ๋ ๊ฑด ์๋นํ ํ๋ ๊ณผ์ ์ ๊ฑฐ์ณ์์ต๋๋ค.
- HTML5 ์ด์์ ๋ง๋ค์ด๋ด๋๋ฐ 6๋ ์ด ๊ฑธ๋ ธ๋ค.
- HTTP/1.1 ์ ์์ฑํ๋๋ฐ 7๋ , HTTP/2.0์ ๋ง๋๋๋ฐ ์ด 15๋ ์ด ๊ฑธ๋ ธ๋ค.
- ํ์ค์ ์๋ ์คํ (Referrer ์ธ๋ฐ referer ๋ก ์คํ๋)์ ํ์ ํธํ์ฑ๋๋ฌธ์ ์์ง๊น์ง ์๊ณ ์น๊ณ ์๋ค.
- ๋ง์ ์น ๋ธ๋ผ์ฐ์ ์์ ๋ง์ฐ์ ์ฅ๋์ผ๋ก ๊ตฌํํ 416 ์ฝ๋๋ฅผ, ์ดํ ํ์ฅ์ฑ ๋๋ฌธ์ 416์ ์๊ตฌ ๊ฒฐ๋ฒ์ผ๋ก ๋ง๋ค์๋ค.
๊ตฌ๊ธ ์คํ ์ด์๋ณด๋ฉด, ์ฑ ์ ๋ฐ์ดํธ ๋๋ฌธ์ ์ง์ฆ๋๋ค๋ ๋ฆฌ๋ทฐ๋ฅผ ์์ฃผ ๋ณด์ จ์๊ฒ๋๋ค.
Chrome, Safari, Firefox ๋ฑ์ ์ฌ์ฉํ๋ฉด์ ๋ธ๋ผ์ฐ์ ๋๋ฌธ์ ์น์ ์ฌ์ฉ ๋ชปํ๋ค๋ ์ด์ผ๊ธฐ๋ฅผ ๋ค์ด๋ณธ์ ์๋์ง ์๊ฐํด๋ด
์๋ค.
๋ฌผ๋ก K-๊ณต๊ณต๊ธฐ๊ด, K-์ํ์ ์ธํฐ๋ท ์ต์คํ๋ก์ด๊ฐ ์๋๋ฉด ์ฌ์ฉ๋ชปํ๊ธด ํฉ๋๋ค..์ด.. ๊ทธ๋๋ ์ต๊ทผ์๋ ๋ง์ด ๋์์ก์์์?
๐ญ ๊ทธ๋์ ์ด์ฉ๋ผ๊ตฌ์. REST๋ฅผ ์๋ฒฝํ๊ฒ ๋ง๋ค์ด์ผํด์?
๊ผญ REST๋ฅผ ์๋ฒฝํ๊ฒ ๋ฐ๋ฅผ ํ์๋ ์๋ค๊ณ Roy T. Fielding ๋ณธ์ธ๋ ๋งํฉ๋๋ค. ๋ฐ๋ฅธ๋ค๊ณ ๋ฌด์กฐ๊ฑด ์ข์์ง๋๊ฒ๋ ์๋๋๊น์.
์๋ฐํ ๋งํ๋ฉด REST API๊ฐ ์๋์ง๋ง, ๋ค๋ค ์ ๊ฒฝ์ฐ์ง ์๊ณ REST API๋ผ๊ณ ๋ถ๋ฆ
๋๋ค. ใ
ใ
๋ฌผ๋ก Roy ๋ณธ์ธ์ ์ซ์ดํ๊ฒ ์ฃ
์ฌ๋ด์ผ๋ก MS์ ์คํ์์ค์ REST API๋ฅผ ๋ค๋ฅธ์ด๋ฆ์ผ๋ก ๊ฐ๋ช
ํ์๋ PR์ด ์ฌ๋ผ์์ง๋ง, ๊ทธ๋ด ์ด์ ๊ฐ ์๋ค๊ณ ๋ฌด์ํ๋ต๋๋ค.
๐ ๋ ํผ๋ฐ์ค
๋ชจ์ง๋ผ - HTTP์ ์งํ๊ณผ์
Naver D2 - ๊ทธ๋ฐ REST API๋ก ๊ด์ฐฎ์๊ฐ
์ธํ๋ฐ- SpringBoot๋ฅผ ํ์ฉํ RESTful ์น ์๋น์ค ๊ฐ๋ฐ
'๐๊ธฐ๋ณธ ์ง์ > ์น ๊ธฐ๋ณธ์ง์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋คํธ์ํฌ OSI 7๊ณ์ธต, TCP/IP 4๊ณ์ธต (0) | 2021.09.08 |
---|---|
HTTP #9 ์ธ์ -์ฟ ํค, JWTํ ํฐ (0) | 2021.09.06 |
HTTP #8 ํค๋ (์์ฒญํค๋, ์๋ตํค๋, ์ฟ ํค, ์บ์, ํ๋ก์) (0) | 2021.09.06 |
HTTP #7 ์ํ์ฝ๋ (200,300,400,500) (1) | 2021.09.06 |
HTTP #6 ๊ธฐ๋ณธ์ ์ธ API ์ค๊ณ (0) | 2021.09.06 |
๋ธ๋ก๊ทธ์ ์ ๋ณด
JiwonDev
JiwonDev