
PHP ์จ๋ผ์ธ ๊ฐ์
>PHP - ๊ณ ๊ธ
๐ PHP ๊ณ ๊ธ - 4์ฃผ์ฐจ: RESTful API ๊ฐ๋ฐ ๊ธฐ์ด - 01 RESTful API ๊ฐ๋ ๊ณผ ์์น
![]() |
ํ์ | 10.0 | ๋ผ์ด์ผ์ค | free |
---|---|---|---|---|
์ฌ์ฉ์ํ์ | 10.0 | ์ด์์ฒด์ | ||
๋ค์ด๋ก๋ | 1 | ํ์ผํฌ๊ธฐ | 0 | |
์ ์์ฌ | LUZENSOFT | ๋ฑ๋ก์ผ | 2025-09-14 14:41:51 | |
์กฐํ์ | 3 |
#RESTful API์ #๊ฐ๋
#REST (Representational State Transfer)๋ #์น ์๋น์ค๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ #์ํคํ ์ฒ ์คํ์ผ์ ๋๋ค. #RESTful API๋ ์ด๋ฌํ REST ์ํคํ ์ฒ ์คํ์ผ์ #์์น์ ์ค์ํ์ฌ ์ค๊ณ๋ #API๋ฅผ ๋งํฉ๋๋ค. ๊ฐ๋จํ ๋งํด, ์น์ ์๋ #์์ (Resource)์ #HTTP ๋ฉ์๋๋ฅผ ํตํด ๋ค๋ฃจ๋ ๋ฐฉ์์ ๋๋ค. ์ฌ๊ธฐ์ ์์์ #์ฌ์ง, #๋์์, #ํ ์คํธ ๋ฑ ํด๋ผ์ด์ธํธ๊ฐ ์ ๊ทผํ ์ ์๋ ๋ชจ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
#RESTful API์ ํต์ฌ์ ๊ฐ ์์์ ๊ณ ์ ํ #URI (Uniform Resource Identifier)๋ก ์๋ณํ๊ณ , #HTTP ๋ฉ์๋ (GET, POST, PUT, DELETE ๋ฑ)๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ์์์ ๋ํ #CRUD (Create, Read, Update, Delete) #์์
์ ์ํํ๋ ๊ฒ์
๋๋ค. ์๋ฅผ ๋ค์ด, ๊ฒ์๋ฌผ์ด๋ผ๋ ์์์ด ์๋ค๋ฉด /posts
์ ๊ฐ์ URI๋ก ๊ฒ์๋ฌผ์ ์ ๊ทผํ๊ณ , GET /posts
๋ ๋ชจ๋ ๊ฒ์๋ฌผ์ ์กฐํํ๊ณ , POST /posts
๋ ์ ๊ฒ์๋ฌผ์ ์์ฑํ๋ ๋ฐฉ์์
๋๋ค.
#REST์ #6๊ฐ์ง #์ํคํ ์ฒ ์์น
#REST๋ ๋ค์๊ณผ ๊ฐ์ 6๊ฐ์ง ํต์ฌ #์ํคํ ์ฒ ์์น์ ๋ฐ๋ฆ ๋๋ค. ์ด ์์น๋ค์ #RESTful API์ #์ค๊ณ ์ฒ ํ์ ์ดํดํ๋ ๋ฐ ์ค์ํฉ๋๋ค.
#ํด๋ผ์ด์ธํธ-์๋ฒ (Client-Server) #ํด๋ผ์ด์ธํธ์ #์๋ฒ์ #์ญํ ์ ๋ช ํํ ๋ถ๋ฆฌํ์ฌ #๋ ๋ฆฝ์ ์ผ๋ก ์งํํ ์ ์๋๋ก ํฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ #์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ๋ฐ์ดํฐ ํํ์ ๋ด๋นํ๊ณ , ์๋ฒ๋ #๋ฐ์ดํฐ ์ ์ฅ๊ณผ ๊ด๋ฆฌ๋ฅผ ๋ด๋นํฉ๋๋ค.
#๋ฌด์ํ์ฑ (Stateless) ๊ฐ #์์ฒญ์ ๊ทธ ์์ฒด๋ก ๋ ๋ฆฝ์ ์ด์ด์ผ ํฉ๋๋ค. ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ #์ด์ ์์ฒญ์ ๋ํ ์ด๋ค ์ ๋ณด๋ ์ ์งํ์ง ์์ต๋๋ค. ๋ชจ๋ ํ์ํ ์ ๋ณด๋ #์์ฒญ ์์ฒด์ ํฌํจ๋์ด์ผ ํฉ๋๋ค. ์ด๋ #์๋ฒ ํ์ฅ์ฑ ํฅ์์ ๊ธฐ์ฌํฉ๋๋ค.
#์บ์ ๊ฐ๋ฅ (Cacheable) ํด๋ผ์ด์ธํธ๋ #์๋ต์ ์บ์ํ ์ ์์ด์ผ ํฉ๋๋ค. ์๋ฒ๋ #์๋ต์ ์บ์ ๊ฐ๋ฅ ์ฌ๋ถ๋ฅผ ๋ช ์ํ์ฌ #๋คํธ์ํฌ ํจ์จ์ฑ์ ๋์ด๊ณ #์๋ฒ ๋ถํ๋ฅผ ์ค์ผ ์ ์์ต๋๋ค.
#๊ณ์ธตํ๋ ์์คํ (Layered System) ํด๋ผ์ด์ธํธ๋ #์ค๊ฐ ์๋ฒ๊ฐ ์กด์ฌํ๋์ง ๋ชจ๋ฅด๊ณ #์๋ ์๋ฒ์ ์ง์ ํต์ ํ๋ ๊ฒ์ฒ๋ผ ๋์ํฉ๋๋ค. ์ด๋ #๋ณด์, #๋ก๋ ๋ฐธ๋ฐ์ฑ, #์บ์ฑ ๋ฑ์ ์ํ #์ค๊ฐ ๊ณ์ธต์ ํ์ฉํ์ฌ #์์คํ ์ ํ์ฅ์ฑ๊ณผ ์ ์ฐ์ฑ์ ์ฆ๋์ํต๋๋ค.
#์ฝ๋ ์จ ๋๋งจ๋ (Code on Demand) (์ ํ ์ฌํญ) ์๋ฒ๋ #์คํ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ด #ํด๋ผ์ด์ธํธ์ ๊ธฐ๋ฅ์ ํ์ฅํ ์ ์์ต๋๋ค. (์: #์๋ฐ์คํฌ๋ฆฝํธ). ์ด ์์น์ #์ ํ ์ฌํญ์ ๋๋ค.
#์ธํฐํ์ด์ค ์ผ๊ด์ฑ (Uniform Interface) #RESTful API์ ๊ฐ์ฅ ์ค์ํ ์์น ์ค ํ๋์ ๋๋ค. #์์์ ์๋ณ, #๋ฉ์์ง๋ฅผ ํตํ ์์ ์กฐ์, #์๊ธฐ ์์ ์ ๋ฉ์์ง, #ํ์ดํผ๋ฏธ๋์ด (HATEOAS)์ 4๊ฐ์ง ํ์ ์์น์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ด ์์น์ #ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ์งํํ ์ ์๋๋ก ๋์ต๋๋ค.
#์ธํฐํ์ด์ค ์ผ๊ด์ฑ์ #ํ์ ์์น
#์ธํฐํ์ด์ค ์ผ๊ด์ฑ ์์น์ #RESTful API์ #์ดํด๋๋ฅผ ๋์ด๊ณ #์ํธ์์ฉ์ ๋จ์ํํ๋ ํต์ฌ์ ๋๋ค.
#์์์ ์๋ณ (Identification of Resources) ๋ชจ๋ ์์์ #๊ณ ์ ํ URI๋ฅผ ๊ฐ์ง๋ฉฐ, ์ด URI๋ฅผ ํตํด ์์์ #์ ๊ทผํ ์ ์์ด์ผ ํฉ๋๋ค.
#๋ฉ์์ง๋ฅผ ํตํ ์์ ์กฐ์ (Manipulation of Resources Through Representations) ํด๋ผ์ด์ธํธ๋ #์์์ ํํ (Representation)์ ๋ฐ์ #์์ ํ๊ฑฐ๋ ์ญ์ ํ ์ ์์ต๋๋ค. ์๋ฒ๋ก๋ถํฐ ๋ฐ์ ๋ฐ์ดํฐ๋ ํด๋น ์์์ ๋ณ๊ฒฝํ๊ธฐ ์ํ #์ ๋ณด๋ฅผ ํฌํจํด์ผ ํฉ๋๋ค.
#์๊ธฐ ์์ ์ ๋ฉ์์ง (Self-descriptive Messages) ๊ฐ ๋ฉ์์ง๋ #์์ ์ ์ค๋ช ํด์ผ ํฉ๋๋ค. ์ฆ, ๋ฉ์์ง๋ฅผ ๋ฐ๋ ์ธก์ #๋ฉ์์ง์ ๋ด์ฉ์ ํด์ํ๊ธฐ ์ํด #์ถ๊ฐ์ ์ธ ์ ๋ณด๊ฐ ํ์ํ์ง ์์์ผ ํฉ๋๋ค. #HTTP ํค๋์ #๋ฉ์์ง ๋ฐ๋๊ฐ ์ด๋ฌํ ์ญํ ์ ์ํํฉ๋๋ค.
#ํ์ดํผ๋ฏธ๋์ด ์ปจํธ๋กค์ค ์ ์ฆ ์์ง ์ค๋ธ ์ ํ๋ฆฌ์ผ์ด์ ์คํ ์ดํธ (#HATEOAS - Hypermedia as the Engine of Application State) #API ์๋ต์๋ #๊ด๋ จ๋ ๋ค๋ฅธ ์์์ผ๋ก์ #๋งํฌ๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ํด๋ผ์ด์ธํธ๋ #API์ ๋ฌธ์๋ฅผ ๋ฏธ๋ฆฌ ์์ง ๋ชปํด๋ #๋์ ์ผ๋ก ์ํธ์์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๊ฒ์๋ฌผ ์กฐํ ์ ํด๋น ๊ฒ์๋ฌผ์ ์์ ํ๊ฑฐ๋ ์ญ์ ํ ์ ์๋ ๋งํฌ๋ฅผ ํจ๊ป ์ ๊ณตํ๋ ๋ฐฉ์์ ๋๋ค.
PHP ๊ณ ๊ธ RESTful API ๊ฐ๋ฐ ๊ธฐ์ด ๊ฐ๋ ์์น ํด๋ผ์ด์ธํธ ์๋ฒ ๋ฌด์ํ์ฑ ์บ์ ๊ณ์ธตํ ์ฝ๋ ์จ ๋๋งจ๋ ์ธํฐํ์ด์ค ์ผ๊ด์ฑ ์์ ์๋ณ ๋ฉ์์ง ์์ ์กฐ์ ์๊ธฐ ์์ ์ ๋ฉ์์ง HATEOAS
๋ฌด๋ฃ์ฒดํ, ๋๊น์์ด ๋น ๋ฅธVPN VPN, ๊ตญ๋ด ๋ค๋IP, ๋ชจ๋ฐ์ผ๊ฐ๋ฅ, ๋ณธ์ฌ ํ์ง๊ด๋ฆฌ ์ ๋ขฐํ ์ ์๋ ๋ณด์์ฑ ๋์ VPN ์๋น์ค
https://xn--299ao67b9qbmsf04c.net/