ํ๋ฌ๊ทธ์ธ ๊ตฌ์ฑ ํ์ผ์ ๊ฐ๋ฐ์๊ฐ ํ๋ฌ๊ทธ์ธ์ ์ค์ , ์ข ์์ฑ, ๊ธฐ๋ฅ ๋ฐ ๊ธฐํ ๊ด๋ จ ์ ๋ณด๋ฅผ ์ง์ ํ๋ ๋ฐ ์ฌ์ฉํ๋ ํ๋ฌ๊ทธ์ธ ๋ฐ ํ์ฅ ๊ฐ๋ฐ ์ปจํ ์คํธ์์ ์ค์ํ ๊ตฌ์ฑ ์์์ ๋๋ค. ์ด ๊ตฌ์กฐํ๋ ํ์ผ์ ์ฌ๋์ด ์ฝ์ ์ ์๋ ํ์(์ผ๋ฐ์ ์ผ๋ก JSON, XML ๋๋ YAML)์ผ๋ก ์์ฑ๋๊ณ ์ ์ง๋ฉ๋๋ค. ์ด๋ ํต์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋ ๋ฆฝํ ํ๋ฌ๊ทธ์ธ ๊ฐ์ ์ํํ ์ํธ ์์ฉ์ ๊ฐ๋ฅํ๊ฒ ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ฅ์ ์ฌ์ฉ์ ์ ์, ๊ด๋ฆฌ ๋ฐ ํ์ฅํ๋ ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํฉ๋๋ค.
AppMasterno-code ํ๋ซํผ์ ๋งฅ๋ฝ์์ ํ๋ฌ๊ทธ์ธ ๊ตฌ์ฑ ํ์ผ์ ๊ณ ๊ฐ์ ๋ค์ํ ์๊ตฌ ์ฌํญ์ ๋ ์ ๋ง๋๋ก ํ๋ซํผ ๊ธฐ๋ฅ์ ํฅ์ํ๊ณ ์ฌ์ฉ์ ์ ์ํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. ์ด๋ฌํ ํ์ผ์ AppMaster ์์ ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์ ํ๋ฌ๊ทธ์ธ ๋์์ ์ ์ดํ๋ โโํ๋ฌ๊ทธ์ธ ๋ฉํ๋ฐ์ดํฐ, ์ค์ ๋ฐ ์ด๊ธฐํ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ํ๋ ๊ฐ๋ ฅํ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ฌ ์ํํ ํตํฉ๊ณผ ์ต์ ์ ์ฑ๋ฅ์ ๋ณด์ฅํฉ๋๋ค.
์ ์ค๊ณ๋ ํ๋ฌ๊ทธ์ธ ๊ตฌ์ฑ ํ์ผ์ ์ฌ๋ฌ ์ฃผ์ ๊ตฌ์ฑ ์์๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
1. ๋ฉํ๋ฐ์ดํฐ: ์ด๋ฆ, ๋ฒ์ , ์์ฑ์, ๋ผ์ด์ ์ค, ๊ฐ๋ตํ ์ค๋ช ๋ฑ ํ๋ฌ๊ทธ์ธ์ ๋ํ ๊ธฐ๋ณธ ์ ๋ณด๋ก, ์ฌ์ฉ์์ ๊ฐ๋ฐ์์๊ฒ ํ์์ ์ธ ์ปจํ ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. 2. ์ข ์์ฑ: ํ๋ฌ๊ทธ์ธ์ด ์๋ํ๊ธฐ ์ํด ์์กดํ๋ ๊ธฐํ ํ๋ฌ๊ทธ์ธ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ ๋ฆฌ์์ค ๋ชฉ๋ก์ผ๋ก, ํ์ํ ๋ชจ๋ ๊ตฌ์ฑ ์์๊ฐ ์ค์น๋์ด ํ์ํ ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. 3. ๋งค๊ฐ๋ณ์: API ํค, ๊ธฐ๋ณธ๊ฐ ๋๋ ๊ธฐ๋ฅ ํ ๊ธ๊ณผ ๊ฐ์ ํน์ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ํ๋ฌ๊ทธ์ธ ๋์์ ์กฐ์ ํ๊ธฐ ์ํด ์ฌ์ฉ์๊ฐ ์ฌ์ฉ์ ์ ์ํ ์ ์๋ ๊ตฌ์ฑ ์ค์ ์ ๋๋ค. 4. ๊ธฐ๋ฅ: ํ๋ฌ๊ทธ์ธ์ด ์ ๊ณตํ๋ ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ด๋ ํฅ์๋ ๊ธฐ๋ฅ์ ๋ํ ์ค๋ช ์ผ๋ก, ์ฌ์ฉ์๊ฐ ํต์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ฅ์ ํ์ฅํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
AppMaster ์ ํ๋ฆฌ์ผ์ด์ ์ฉ ํ๋ฌ๊ทธ์ธ์ ๊ฐ๋ฐํ ๋ ์ํํ ํตํฉ, ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅ์ฑ ๋ฐ ์ ์์ฑ์ ๋ณด์ฅํ๋ ค๋ฉด ํ๋ฌ๊ทธ์ธ ๊ตฌ์ฑ ํ์ผ์ ๋ํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ค์ํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค. ๊ทธ๋ฌํ ๋ชจ๋ฒ ์ฌ๋ก ์ค ํ๋๋ ์ฐ๋ ค ์ฌํญ์ ๋ถ๋ฆฌํ๋ ๊ฒ์ ๋๋ค. ์ฆ, ์ค์ ์ฝ๋๋ ๋ ผ๋ฆฌ๋ฅผ ํฌํจํ์ง ์๊ณ ํ๋ฌ๊ทธ์ธ ๋งค๊ฐ๋ณ์ ๋ฐ ์์ฑ ์ ์ ์ ์ฉ์ผ๋ก ๊ตฌ์ฑ ํ์ผ์ ์ ์งํ๋ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ๊น๋ํ ๋ถ๋ฆฌ๋ ์ ๋ฐ์ดํธ, ์ ์ง ๊ด๋ฆฌ ๋ฐ ๋๋ฒ๊น ์ ๋จ์ํํ๋ฏ๋ก ๊ฐ๋ฐ์๊ฐ ํ๋ฌ๊ทธ์ธ์ ์ค์ ๊ตฌํ ๋ฐ ๊ธฐ๋ฅ์ ๋ ์ฝ๊ฒ ์ง์คํ ์ ์์ต๋๋ค.
๋ ๋ค๋ฅธ ๋ชจ๋ฒ ์ฌ๋ก๋ ํ๋ฌ๊ทธ์ธ ๊ตฌ์ฑ ํ์ผ์ JSON, XML, YAML ๋ฑ ์ ์๋ ค์ ธ ์๊ณ ํ๋ฆฝ๋ ๋ฐ์ดํฐ ํ์์ ํ์ฉํ๋ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ํ์์ ๊ฐ๋ ฅํ ์ํธ ์ด์ฉ์ฑ์ ์ ๊ณตํ๋ฏ๋ก ๊ฐ๋ฐ์๊ฐ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ฝํ ์ธ ๋ฅผ ๋ณด๋ค ์ฝ๊ฒ โโ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ ์กฐ์ํ ์ ์์ต๋๋ค. ๋ํ ์ํํธ์จ์ด ์ํ๊ณ ์ ๋ฐ์ ๊ฑธ์ณ ๋๋ฆฌ ์ฑํ๋๊ณ ํ์คํ๋์ด ์จ๋ผ์ธ ๋ฆฌ์์ค ๋ฐ ์ปค๋ฎค๋ํฐ์ ๋ฌธ์ ํด๊ฒฐ ๋ฐ ์ง์์ด ๋ ์ฌ์์ก์ต๋๋ค.
ํ๋ฌ๊ทธ์ธ ๊ตฌ์ฑ ํ์ผ์ ๊ตฌ์กฐ์ ๊ตฌ์ฑ์ ์ต์ ํํ๋ ๊ฒ๋ ๊ฐ๋ฐ์ ๊ฒฝํ์ ํฌ๊ฒ ๊ธฐ์ฌํฉ๋๋ค. ๊ด๋ จ ๋งค๊ฐ๋ณ์์ ์ค์ ์ ํจ๊ป ๊ทธ๋ฃนํํ๊ณ , ์ค๋ช ์ ์ด๊ณ ๊ฐ๊ฒฐํ ๋ช ๋ช ๊ท์น์ ์ฌ์ฉํ๊ณ , ๊ด๋ จ ์ค๋ช ์ด๋ ๋ฌธ์๋ฅผ ์ ๊ณตํ๋ฉด ๊ตฌ์ฑ ํ์ผ์ ์ฌ์ฉ ํธ์์ฑ๊ณผ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅ์ฑ์ด ํฌ๊ฒ ํฅ์๋ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์ถ๊ฐ ์ธ์ฆ ๋ฐ ์๋ ์ ํ ๊ธฐ๋ฅ์ ํตํด ํ๋ซํผ์ ๊ธฐ๋ณธ API ๊ธฐ๋ฅ์ ํฅ์์ํค๋๋ก ์ค๊ณ๋ AppMaster ํ๋ฌ๊ทธ์ธ์ฉ ํ๋ฌ๊ทธ์ธ ๊ตฌ์ฑ ํ์ผ์ ๊ณ ๋ คํด ๋ณด์ธ์. ํ์ผ์๋ ๋ค์ ๊ตฌ์ฑ ์์๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค.
{ "name": "Advanced API Security Plugin", "version": "1.0.0", "author": "Plugin Developer", "description": "Enhances AppMaster-generated APIs with advanced authentication and rate limiting features.", "dependencies": ["authentication-library", "rate-limiter"], "parameters": { "authentication": { "type": "apiKey", "location": "header" }, "rateLimit": { "enabled": true, "requestsPerMinute": 100 } }, "features": ["Authentication", "Rate Limiting"] }
์ด ์๋ ์์์ ์ค๋ช ํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ํ์ฉํ์ฌ ๊ตฌ์กฐํ๋๊ณ ๊ตฌ์ฑ๋ ํ๋ฌ๊ทธ์ธ ๊ตฌ์ฑ ํ์ผ์ ๋ณด์ฌ์ค๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ํ์ผ์ ์ฝ๊ฒ ์ฝ๊ณ , ์ดํดํ๊ณ , ์์ ํ ์ ์์ผ๋ฏ๋ก ํ๋ฌ๊ทธ์ธ ์์ฑ์์ AppMaster ํ๋ก์ ํธ์์ ์ด๋ฅผ ๊ตฌํํ๋ ๋ชจ๋ ์ฌ์ฉ์ ๋ชจ๋์๊ฒ ์ํํ๊ณ ํจ์จ์ ์ธ ๊ฐ๋ฐ ํ๋ก์ธ์ค๊ฐ ๋ณด์ฅ๋ฉ๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, ํ๋ฌ๊ทธ์ธ ๊ตฌ์ฑ ํ์ผ์ ํ๋ฌ๊ทธ์ธ ๋ฐ ํ์ฅ ๊ฐ๋ฐ์ ํ์ ์์์ด๋ฉฐ ๋ ํฐ ์ํํธ์จ์ด ์ํ๊ณ ๋ด์์ ํ๋ฌ๊ทธ์ธ ๋์์ ํตํฉํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ฒญ์ฌ์ง ๋ฐ ์ฐธ์กฐ ์ง์ ์ญํ ์ ํฉ๋๋ค. ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด๊ณ ์ ์คํ ์ค๊ณ ๋ฐ ๊ตฌ์ฑ์ ๋ณด์ฅํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ AppMaster ์ ๊ฐ์ ํ๋ซํผ๊ณผ์ ์ํํ ํตํฉ์ ์ด์งํ๋ ํจ์จ์ ์ด๊ณ ์ ์ง ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ ํ๋ฌ๊ทธ์ธ ๊ตฌ์ฑ ํ์ผ์ ์์ฑํ์ฌ ์ฌ์ฉ์๊ฐ ๋ค์ํ ์๊ตฌ ์ฌํญ๊ณผ ์ฌ์ฉ ์ฌ๋ก์ ๋ง๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ฅ์ ์ ์ํ๊ฒ ํ์ฅํ๊ณ ์ฌ์ฉ์ ์ ์ํ ์ ์๋๋ก ํ ์ ์์ต๋๋ค.