๐Ÿ“˜OpenAPI ์ŠคํŽ™ ์Šค๋‹ˆํŽซ ์ƒ์„ฑ ๊ฐ€์ด๋“œ

๊ฒฝ๋กœยท๋ฉ”์„œ๋“œยท์‘๋‹ต ์ž…๋ ฅ โ†’ OpenAPI 3 YAML ์ƒ์„ฑ

๊ด€๋ จ๋œ ๋„๊ตฌ

์—”๋“œํฌ์ธํŠธ ํ•˜๋‚˜๋ฅผ OpenAPI 3 ๋ฌธ์„œ๋กœ ์˜ฎ๊ธฐ๊ธฐ

๊ฒฝ๋กœ์™€ ๋ฉ”์„œ๋“œ, ํŒŒ๋ผ๋ฏธํ„ฐ, ์‘๋‹ต ์ฝ”๋“œ๋ฅผ ๋„ฃ์œผ๋ฉด ๊ทธ๋Œ€๋กœ ํŒŒ์ผ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œ OpenAPI 3 ๋ฌธ์„œ๋ฅผ YAML ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ฒฝ๋กœ์— ์“ด ์ค‘๊ด„ํ˜ธ ๋ณ€์ˆ˜๊ฐ€ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์„ ์–ธ๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ์„ ์–ธ๋งŒ ์žˆ๊ณ  ๊ฒฝ๋กœ์— ์—†์œผ๋ฉด ์ƒ์„ฑ์„ ๋ฉˆ์ถ”๊ณ  ์–ด๋А ์ด๋ฆ„์ด ์–ด๊ธ‹๋‚ฌ๋Š”์ง€ ์•Œ๋ ค ์ค๋‹ˆ๋‹ค. ์ƒํƒœ ์ฝ”๋“œ์™€ ๊ฒฝ๋กœ๋Š” ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ YAML ์ด ์ˆซ์ž๋‚˜ ๋‹ค๋ฅธ ํƒ€์ž…์œผ๋กœ ์ฝ์ง€ ์•Š๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค.

3.0 ๊ณผ 3.1 ์€ ๊ฐ™์€ ๋œป์„ ๋‹ค๋ฅด๊ฒŒ ์ ์Šต๋‹ˆ๋‹ค. 3.1 ์€ JSON Schema 2020-12 ์™€ ์ •ํ•ฉ๋˜์–ด null ํ—ˆ์šฉ์„ type ๋ฐฐ์—ด๋กœ ์“ฐ๊ณ , 3.0 ์€ nullable ํ‚ค๋ฅผ ์”๋‹ˆ๋‹ค. ๋ฒ„์ „์„ ๋ฐ”๊ฟ” ๋ณด๋ฉด ๊ทธ ์ฐจ์ด๊ฐ€ ๊ฒฐ๊ณผ๋ฌผ์— ๋ฐ”๋กœ ๋“œ๋Ÿฌ๋‚ฉ๋‹ˆ๋‹ค. ๊ทœ๊ฒฉ ๋ณธ๋ฌธ์€ OpenAPI Initiative ๊ฐ€ ๊ณต๊ฐœํ•œ OpenAPI Specification ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค(2026๋…„ 10์›” ๊ธฐ์ค€).

๋ฌธ์„œ์˜ ๋ผˆ๋Œ€๋งŒ ๋งŒ๋“œ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์Šคํ‚ค๋งˆ ์†์„ฑ ์ „์ฒด, ๋ณด์•ˆ ์ •์˜, ์ปดํฌ๋„ŒํŠธ ์žฌ์‚ฌ์šฉ ์ฐธ์กฐ๋Š” ๋งŒ๋“ค์ง€ ์•Š๊ณ , ์ด๋ฏธ ์žˆ๋Š” ๋ฌธ์„œ๋ฅผ ์ฝ์–ด ๊ฒ€์ฆํ•˜๋Š” ๊ธฐ๋Šฅ๋„ ์—†์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๋ฒ„์ „์„ ์“ธ์ง€๋Š” ํ•จ๊ป˜ ์“ฐ๋Š” ๋„๊ตฌ๊ฐ€ ์ง€์›ํ•˜๋Š” ๋ฒ”์œ„์— ๋‹ฌ๋ ค ์žˆ์œผ๋‹ˆ ์ƒ์„ฑํ•œ YAML ์ด ์‹ค์ œ ๊ตฌํ˜„๊ณผ ๋งž๋Š”์ง€ ์ง์ ‘ ํ™•์ธํ•˜์„ธ์š”.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

์ƒ์„ฑํ•œ YAML ์„ ๊ทธ๋Œ€๋กœ ์“ธ ์ˆ˜ ์žˆ๋‚˜์š”?

openapi, info, paths ๋ฅผ ๊ฐ–์ถ˜ ์ตœ์†Œ ๋ฌธ์„œ ํ˜•ํƒœ๋กœ ๋‚˜์˜ค๋ฏ€๋กœ ๊ทธ๋Œ€๋กœ ํŒŒ์ผ์— ์ €์žฅํ•ด ๋„๊ตฌ์— ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์Šคํ‚ค๋งˆ ์†์„ฑ๊ณผ ๋ณด์•ˆ ์ •์˜๋Š” ๋น„์–ด ์žˆ์–ด ์‹ค์ œ ์„œ๋น„์Šค ๋ฌธ์„œ๋กœ ์“ฐ๋ ค๋ฉด ์ง์ ‘ ์ฑ„์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

3.0 ๊ณผ 3.1 ์ค‘ ๋ฌด์—‡์„ ๊ณ ๋ฅด๋ฉด ๋˜๋‚˜์š”?

ํ•จ๊ป˜ ์“ฐ๋Š” ๋„๊ตฌ๊ฐ€ ์ง€์›ํ•˜๋Š” ๋ฒ„์ „์„ ๋”ฐ๋ฅด๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค. 3.1 ์€ JSON Schema 2020-12 ์™€ ์ •ํ•ฉ๋˜๊ณ  3.0 ์€ ๋ณ€ํ˜•๋œ ์Šคํ‚ค๋งˆ๋ฅผ ์“ฐ๋ฏ€๋กœ, null ํ—ˆ์šฉ ํ‘œ๊ธฐ๋ถ€ํ„ฐ ๊ฒฐ๊ณผ๋ฌผ์ด ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

๊ฒฝ๋กœ ๋ณ€์ˆ˜ ์ด๋ฆ„์ด ๋น ์ง€๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”?

์ค‘๊ด„ํ˜ธ ์•ˆ์ด ๋น„์–ด ์žˆ๋Š” ๊ฒฝ์šฐ์™€ ๊ฒฝ๋กœ ๋ณ€์ˆ˜๊ฐ€ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์„ ์–ธ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ชจ๋‘ ์˜ค๋ฅ˜๋กœ ์•Œ๋ฆฌ๊ณ  ์ƒ์„ฑ์„ ๋ฉˆ์ถฅ๋‹ˆ๋‹ค. ์–ด๋А ์ด๋ฆ„์ด ๋น ์กŒ๋Š”์ง€ ํ•จ๊ป˜ ๋ณด์—ฌ ์ค๋‹ˆ๋‹ค.