โ Abstract
์์ฆ API๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐ ํ์ ์ ์์ด์ ๋งค์ฐ ์ค์ํ ์์ ์ค ํ๋์ ๋๋ค.
์ด๋ ์ข ์ข "OpenAPI"์ "Open API"๋ผ๋ ์ฉ์ด๋ฅผ ๋ฃ๊ฒ ๋๋๋ฐ, ์ด ๋์ ์๋ก ๋ค๋ฅธ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ด ๊ธ์์๋ OpenAPI์ Open API์ ์ฐจ์ด์ ์ ์์๋ณด๊ณ , ๊ฐ๊ฐ์ด ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง ์์๋ณด๊ฒ ์ต๋๋ค.
1๏ธโฃ OpenAPI
OpenAPI๋ RESTful API ๋ช ์ธ๋ฅผ ๊ธฐ์ ํ๊ณ ๋ฌธ์ํํ๋ ๋ฐ ์ฌ์ฉ๋๋ ํ์ค์ ๋๋ค. OpenAPI Specification(OAS)์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ, ์ฒ์์๋ Swagger Specification์ผ๋ก ์๋ ค์ ธ ์์์ต๋๋ค. ์ด ๋ช ์ธ๋ API์ ์๋ํฌ์ธํธ, ์์ฒญ/์๋ต ํ์, ์ธ์ฆ ๋ฐฉ์ ๋ฑ API์ ๋ํ ์ ๋ณด๋ฅผ JSON ๋๋ YAML ํ์์ผ๋ก ๊ธฐ์ ํฉ๋๋ค.
OpenAPI๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๋ค์ด API๋ฅผ ์ฝ๊ฒ ์ดํดํ๊ณ , ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ํธ ์์ฉ์ ์ผ๊ด๋๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ๋ํ, OpenAPI ๋ฌธ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก API ํด๋ผ์ด์ธํธ ๋ฐ ์๋ฒ ์ค์ผ๋ ํค ์ฝ๋๋ฅผ ์์ฑํ๋ ๋๊ตฌ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
OpenAPI์ ์ฃผ์ ์ด์
- ์ผ๊ด์ฑ: API๊ฐ ํ์คํ๋ ํ์์ผ๋ก ๋ฌธ์ํ๋์ด ์์ผ๋ฉด, ๊ฐ๋ฐ์๋ค์ด ๋ ์ฝ๊ฒ API๋ฅผ ์ดํดํ๊ณ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์๋ํ: OpenAPI ๋ฌธ์๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ์๋ฒ ์ค์ผ๋ ํค ์ฝ๋๋ฅผ ์๋์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค. ์ด๋ก ์ธํด ๊ฐ๋ฐ ์๊ฐ์ ์ค์ด๊ณ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
- ํ์ : OpenAPI๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๋ค์ด ๋ช ์ธ์ ๋ฐ๋ผ API๋ฅผ ์ค๊ณํ๊ณ , ๋ค๋ฅธ ํ์๋ค๊ณผ ์ฝ๊ฒ ํ์ ํ ์ ์์ต๋๋ค.
OpenAPI ์์
- ex ) ์ฑ ๊ด๋ฆฌ API๋ฅผ OpenAPI Specification 3.0 YAML ํ์์ผ๋ก์ ์
openapi: 3.0.0
info:
title: Book Management API
description: A simple API for managing a collection of books.
version: 1.0.0
servers:
- url: https://api.example.com/v1
paths:
/books:
get:
summary: Get all books
description: Retrieve a list of all books in the collection.
responses:
'200':
......
2๏ธโฃ Open API
"Open API"๋ ๋ค๋ฅธ ์๋ฏธ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก Open API๋ ๊ณต๊ฐ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ์น API๋ฅผ ์๋ฏธํฉ๋๋ค. ์ด๋ฌํ API๋ ์ผ๋ฐ์ ์ผ๋ก ๊ฐ๋ฐ์๊ฐ ๋ฌด๋ฃ๋ก ์ฌ์ฉํ๊ฑฐ๋, ํน์ ์ฌ์ฉ๋์ ๋ฐ๋ผ ์๊ธ์ ์ง๋ถํ๋๋ก ์ ๊ณต๋ฉ๋๋ค. Open API๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๋ค์ด ๋ค์ํ ์๋น์ค๋ฅผ ์์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํตํฉํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์ฌ๋ฌ ์์ ๋ฏธ๋์ด ํ๋ซํผ, ์ง๋ ์๋น์ค, ๋ ์จ ์ ๋ณด, ๊ฒฐ์ ์์คํ ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ API๋ ๋ชจ๋ Open API์ ๋๋ค. ์ด๋ฌํ Open API๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ค์ ๋น ๋ฅด๊ฒ ๋ค์ํ ๊ธฐ๋ฅ์ ๊ตฌํํ ์ ์์ผ๋ฉฐ, ๋ณต์กํ ๋ฐฑ์๋ ์์คํ ์ ์ฒ์๋ถํฐ ๊ตฌ์ถํ ํ์๊ฐ ์์ต๋๋ค.
Open API์ ์ฃผ์ ์ด์
- ๋น ๋ฅธ ๊ฐ๋ฐ: Open API๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๋ค์ด ๋น ๋ฅด๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ํ ๊ธฐ๋ฅ์ ํตํฉํ ์ ์์ต๋๋ค. ์ด๋ ๊ฐ๋ฐ ์๊ฐ์ ์ค์ด๊ณ ๋น์ฉ์ ์ ์ฝํ ์ ์์ต๋๋ค.
- ์ ์ง ๋ณด์: Open API ์ ๊ณต์๊ฐ API๋ฅผ ์ ์ง ๊ด๋ฆฌํ๋ฏ๋ก, ๊ฐ๋ฐ์๋ค์ API ์ ๋ฐ์ดํธ์ ๋ํ ๊ฑฑ์ ์์ด ์์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ง์คํ ์ ์์ต๋๋ค.
- ๋ฒ์ฉ์ฑ: Open API๋ฅผ ์ฌ์ฉํ๋ฉด, ๊ฐ๋ฐ์๋ค์ด ๋ค์ํ ํ๋ซํผ ๋ฐ ์๋น์ค์ ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
Open API ์์
๐ฒ์ ๋ฆฌ
OpenAPI์ Open API๋ ์๋ก ๋ค๋ฅธ ๊ฐ๋ ์ ๋๋ค.
OpenAPI๋ RESTful API ๋ช ์ธ๋ฅผ ๊ธฐ์ ํ๊ณ ๋ฌธ์ํํ๋ ํ์ค์ด๋ฉฐ, ๊ฐ๋ฐ์๋ค์ด API๋ฅผ ์ฝ๊ฒ ์ดํดํ๊ณ ์ฌ์ฉํ ์ ์๋๋ก ๋์ต๋๋ค.
๋ฐ๋ฉด, Open API๋ ๊ณต๊ฐ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ์น API๋ฅผ ์๋ฏธํ๋ฉฐ, ๊ฐ๋ฐ์๋ค์ด ๋ค์ํ ๊ธฐ๋ฅ์ ์์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํตํฉํ ์ ์๊ฒ ํฉ๋๋ค.
์ด ๋ ์ฉ์ด๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๊ณ ๊ตฌ๋ถํ์ฌ ์ฌ์ฉํ๋ฉด, ๋ ํจ๊ณผ์ ์ธ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐ ํ์ ์ด ๊ฐ๋ฅํด์ง๋๋ค.
'๐ป ๊ฐ๋ฐ๊ณต๋ถ > Computer Science' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Eric's CS] Sanity Test ๋? ๐ง (0) | 2023.04.19 |
---|