
**“RESTful API ํด ๊ตฌ์ฑ ๊ถ๊ณ ์”**์ ์์ ์ด๋ณด์๋ ์ดํดํ ์ ์๊ฒ ๋จ๊ณ๋ณ๋ก ์์ฃผ ์์ธํ ํ์ด์ ์ค๋ช
๋๋ฆด๊ฒ์.
์ฝ๊ฒ ๋งํ๋ฉด,
“RESTful API๋ฅผ ๋ง๋ค๊ณ ์ด์ํ ๋, ์ด๋ค ๋๊ตฌ(ํด)๋ฅผ ์จ์ผ ํ๊ณ ์ ์ฐ๋์ง๋ฅผ ์๋ ค์ฃผ๋ ๊ฐ์ด๋๋ผ์ธ”
์ด์์.
๐ฑ RESTful API ํด ๊ตฌ์ฑ ๊ถ๊ณ ์ (์ด๋ณด์์ฉ ์์ธํ ๋ฒ์ )
1๏ธโฃ RESTful API๋?
๐น REST๋?
REST(Representational State Transfer) ๋
์น์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ท์น์ด์์.
์๋ฅผ ๋ค์ด,
- “์ฌ์ฉ์ ๋ชฉ๋ก์ ์ฃผ์ธ์” → GET /users
- “์ ์ฌ์ฉ์๋ฅผ ์ถ๊ฐํ ๊ฒ์” → POST /users
- “์ด ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ์์ ํ ๊ฒ์” → PUT /users/1
- “์ด ์ฌ์ฉ์๋ฅผ ์ญ์ ํ ๊ฒ์” → DELETE /users/1
์ด๋ ๊ฒ URL(์ฃผ์)๊ณผ HTTP ๋ฉ์๋(GET, POST, PUT, DELETE)๋ง์ผ๋ก ์ด๋ค ๋์์ ํ๋์ง ํํํ ์ ์๋ ๊ตฌ์กฐ๋ฅผ ๋งํฉ๋๋ค.
๊ทธ๋์ RESTful API๋:
“REST ๊ท์น์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ์น ์๋น์ค”์์.
2๏ธโฃ API ๊ฐ๋ฐ์ ์ด๋ค ๊ณผ์ ์ผ๊น?
API๋ฅผ ๋ง๋ค๊ณ ์ค์ ์๋น์ค์ ์ฌ๋ฆฌ๊ธฐ๊น์ง๋ ๋ณดํต 5๋จ๊ณ๋ก ๋๋ ์ ๐
| โ | ์ค๊ณ(Design) | API ์ฃผ์, ๋ฐ์ดํฐ ๊ตฌ์กฐ, ์๋ต ํ์ ์ค๊ณ | /users/{id}, ์๋ต JSON ๊ตฌ์กฐ |
| โก | ๊ฐ๋ฐ(Development) | ์ค์ ๋ก ์ฝ๋๋ก API ๋ง๋ค๊ธฐ | Spring Boot, Express ๋ฑ |
| โข | ํ ์คํธ(Test) | ์ ๋์ํ๋์ง ํ์ธ | Postman, JMeter ๋ฑ |
| โฃ | ๋ฐฐํฌ(Deploy) | ์๋ฒ์ ์ฌ๋ฆฌ๊ธฐ | Docker, GitHub Actions |
| โค | ์ด์(Operation) | ๋ก๊ทธ ํ์ธ, ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง | Grafana, ELK Stack |
3๏ธโฃ ๊ฐ ๋จ๊ณ๋ณ๋ก ์ด๋ค ํด์ ์จ์ผ ํ๋๊ฐ?
์ด์ ๋ถํฐ ๋จ๊ณ๋ณ๋ก ์ถ์ฒ ํด๊ณผ ์ด์ ๋ฅผ ์ค๋ช ๋๋ฆด๊ฒ์ ๐
๐งฉ โ ์ค๊ณ ๋จ๊ณ (Design Phase)
๐ฏ ๋ชฉ์
- ์ด๋ค API๋ฅผ ๋ง๋ค์ง ๋ฏธ๋ฆฌ ์ค๊ณํ๊ณ , ํ์๋ค๊ณผ ๊ณต์ ํ๋ ๋จ๊ณ์์.
- “์ฃผ์๊ฐ ๋ญ๊ณ , ์ด๋ค ๋ฐ์ดํฐ๊ฐ ๋ค์ด์ค๊ณ ๋๊ฐ๋์ง”๋ฅผ ๋ฏธ๋ฆฌ ์ ํฉ๋๋ค.
๐งฐ ์ถ์ฒ ํด
| Swagger Editor | API ์ค๊ณ | ์น์์ REST API ๋ช ์ธ(OpenAPI)๋ฅผ ์๊ฐ์ ์ผ๋ก ์ค๊ณ ๊ฐ๋ฅ |
| Stoplight | ํ์ ํ ์ค๊ณ | Swagger๋ณด๋ค ๋ ์๊ฐ์ ์ด๊ณ ํ ํ์ ์ ์ข์ |
| Draw.io / Lucidchart | ์ค๊ณ ๋ค์ด์ด๊ทธ๋จ | API ๊ตฌ์กฐ๋ฅผ ๊ทธ๋ฆผ์ผ๋ก ์ ๋ฆฌํ ๋ ์ฌ์ฉ |
โ RESTful ๊ธฐ์ค์ผ๋ก ๋ณด๋ฉด ์ด๋ ๊ฒ ๋ฉ๋๋ค ๐
| Create (์์ฑ) | POST | @PostMapping | POST /api/users |
| Read (์กฐํ) | GET | @GetMapping | GET /api/users/{id} |
| Update (์์ ) | PUT | @PutMapping | PUT /api/users/{id} |
| Delete (์ญ์ ) | DELETE | @DeleteMapping | DELETE /api/users/{id} |
๐ก ์ ๋ฆฌํ์๋ฉด
- โ๏ธ @PostMapping → ๋ฐ์ดํฐ ๋ฑ๋ก (save)
- โ๏ธ @GetMapping → ๋ฐ์ดํฐ ์กฐํ (findById, findAll)
- โ๏ธ @PutMapping → ๋ฐ์ดํฐ ์์ (update)
- โ๏ธ @DeleteMapping → ๋ฐ์ดํฐ ์ญ์ (delete)
'Project ESG+AI > Tech Basics' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| 14์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.10.28 |
|---|---|
| 13์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.10.27 |
| 11์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.10.23 |
| 10์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.10.22 |
| 9์ผ์ฐจ. IT ๊ฐ๋ ์ ๋ฆฌ (0) | 2025.10.21 |