๊ณ ๊ฐ ํฐ์ด ๊ถํ ๋ชจ๋ธ: ํ๋, ํ๋, ํ๋๊ทธ
ํ๋, ํ๋, ํ๋๊ทธ์ ๋ํ ๋ช ํํ ์คํค๋ง๋ก ๊ถํ ๋ชจ๋ธ์ ์ค๊ณํด ์ํฌํธ์ ๊ด๋ฆฌ์๊ฐ ์์ง๋์ด๋ง ์์ด ์์ ํ๊ฒ ๊ณ ๊ฐ ์ ๊ทผ์ ์กฐ์ ํ ์ ์๋๋ก ํ์ธ์.

ํ์ ๊ถํ ๋ชจ๋ธ์ด ํ์ํ ์ด์
์ฌ๋ฌ ํฐ์ด๋ฅผ ํ๋งคํ๋ฉด ๊ฒฐ๊ตญ ๊ฐ์ ์ํฌํธ ํฐ์ผ์ ๋ฐ๊ฒ ๋ฉ๋๋ค: โ๊ณ ๊ฐ X๊ฐ Pro๋ฅผ ๊ฒฐ์ ํ๋๋ฐ ๊ธฐ๋ฅ Y์ ์ ๊ทผํ ์ ์์ต๋๋ค.โ ๋ช ํํ ์์คํ ์ด ์์ผ๋ฉด ์ํฌํธ๋ ์ง์ ๊ณ ์น ์ ์์ต๋๋ค. ๋จ์ํ ์ ๊ทผ ๋ณ๊ฒฝ์ด ์์ง๋์ด๋ง ์์ ์ผ๋ก ๋ฐ๋๋๋ค.
๋ ํฐ ๋ฌธ์ ๋ ์ผ๊ด์ฑ ๊ฒฐ์ฌ์ ๋๋ค. ์ ๊ทผ ๊ท์น์ด ์ ํ ์ ๋ฐ์ ํฉ์ด์ง๋๋ค: ๊ด๋ฆฌ์ ํ๋ฉด์ ์ฒดํฌ๋ฐ์ค, API์ ํ๋์ฝ๋ฉ ๊ฒ์ฌ, ์คํ๋ ๋์ํธ์ ๋ฉ๋ชจ, ์ง๋ ๋ถ๊ธฐ์ ์ ์ฉํ ์ผํ์ฑ DB ์ ๋ฐ์ดํธ ๋ฑ. ๊ณ ๊ฐ์ ๊ณณ๊ณณ์์ ๋ค๋ฅธ ๋์์ ๋ณด๊ณ , ์ด๋ค ๊ท์น์ด ์ง์ง์ธ์ง ์๋ฌด๋ ํ์ ํ์ง ๋ชปํฉ๋๋ค.
๊ถํ ๋ชจ๋ธ์ ํ๋๊ณผ ์น์ธ๋ ์์ธ์ ๊ธฐ๋ฐํด ๋๊ฐ ๋ฌด์์ ํ ์ ์๋์ง์ ๋ํ ๋จ์ผ ์ถ์ฒ์ ์ง์ค์ ์ ๊ณตํฉ๋๋ค. ํฐ์ด๋ฅผ ์์ธก ๊ฐ๋ฅํ๊ฒ ์ ์งํด(๊ทธ๋์ ๊ฐ๊ฒฉ์ด ์ ๋ขฐ๋ฐ์ ์ ์๊ฒ) ํ์ค์ ์ธ ์ํฉ๋ ํ์ฉํฉ๋๋ค: ์์ ์ ๊ทธ๋ ์ด๋, ์ฟผํฐ ์ํฅ, ํน์ ๊ณ์ ์ ๋ํ ํ์ผ๋ฟ ๊ธฐ๋ฅ ๋ฑ.
โ์์ง๋์ด๋ง ์์ด ์กฐ์ โ์ ๊ตฌ์ฒด์ ์ด์ด์ผ ํฉ๋๋ค. ์ค์ ๋ก๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์ํฌํธ๋ ๋ฐฐํฌ๋ฅผ ์์ฒญํ์ง ์๊ณ ๊ด๋ฆฌ ๋๊ตฌ์์ ๋ฐ์ดํฐ๋ฅผ ํธ์งํด ์ ๊ทผ์ ๋ณ๊ฒฝํฉ๋๋ค.
- ์ ํ์ ๋ชจ๋ ๋ถ๋ถ(๋ฐฑ์๋, ์น์ฑ, ๋ชจ๋ฐ์ผ)์ ๋์ผํ ๊ถํ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ต๋๋ค.
- ์์ธ๋ ์๊ฐ ์ ํ์ด ์๊ณ ๋๋๋ฆด ์ ์์ผ๋ฉฐ ์๊ตฌ์ ์ธ ํดํน์ด ์๋๋๋ค.
- ๋ณ๊ฒฝ ์ฌํญ์ ๋๊ฐ, ์ธ์ , ์ ํ๋์ง ๊ธฐ๋ก๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๋น์ฆ๋์ค ํฐ์ด์ ๊ณ ๊ฐ์ด ๋ฐ์ ์์ฆ์ ํ์ฑ ์ฌ์ฉ์ ์ ํ๋์ ๊ฑธ๋ ธ๋ค๋ฉด ์ํฌํธ๋ 14์ผ ๋์ ์ข์์ 10์ ์ถ๊ฐ๋ก ๋ถ์ฌํ ์ ์์ด์ผ ํ๋ฉฐ, ์์คํ ์ ๊ธฐ๊ฐ์ด ๋๋๋ฉด ์๋์ผ๋ก ๋๋๋ ค์ผ ํฉ๋๋ค. ์์ง๋์ด๋ง์ด ๊ด์ฌํ๋ ๊ฒฝ์ฐ๋ ์์ ํ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๋๋ก ํ์ ๋์ด์ผ ํฉ๋๋ค.
๊ธฐ๋ณธ ๊ตฌ์ฑ ์์: ๊ณ ๊ฐ, ํ๋, ๊ถํ
์ข์ ๊ถํ ๋ชจ๋ธ์ ๋ช ๊ฐ์ง ๋ช ํํ ๊ฐ์ฒด์ ๋ช ํํ ์์ ๊ถ์ผ๋ก ์์ํฉ๋๋ค. ์ด ๊ธฐ๋ณธ์ด ๋ชจํธํ๋ฉด ์ํฌํธ๋ ๋งค์ฃผ ์์ง๋์ด๋ง์ โํ ๊ฐ์ง ์์ธ๋งโ ์์ฒญํ๊ฒ ๋ฉ๋๋ค.
๊ฐ๋จํ ๋น๋ฉ ๋ธ๋ก์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- Customer (account/tenant): ์ ํ์ ์ฌ์ฉํ๋ ํ์ฌ๋ ๊ฐ์ธ.
- Subscription: ์์ ์ ๊ด๊ณ(์ฒดํ, ํ์ฑ, ์ทจ์)๋ก ๋ณดํต ๊ฒฐ์ ์์คํ ๊ณผ ์ฐ๊ฒฐ๋ฉ๋๋ค.
- Plan: ๊ธฐ๋ณธ ์ ๊ทผ์ ์ ์ํ๋ ๋ช ๋ช ๋ ํฐ์ด(Free, Pro, Enterprise).
- Entitlement: ํ๋๊ณผ ์ค๋ฒ๋ผ์ด๋์์ ๋์ถ๋ ์ค์ ํ์ฉ ํ๋.
๊ถํ ํ๊ฐ๋ ์ฒญ๊ตฌ์ ๋ค๋ฆ ๋๋ค. ์ฒญ๊ตฌ๋ โ๋ฌด์์ ์ธ์ ์ฒญ๊ตฌํ ์งโ์ ๋ตํ๊ณ , ๊ถํ์ โ์ด ๊ณ ๊ฐ์ด ์ง๊ธ ๋ฌด์์ ํ ์ ์๋๊ฐโ์ ๋ตํฉ๋๋ค. ๊ณ ๊ฐ์ด ๋ฏธ๋ฉ์ด์ง๋ง ์ ์ ๊ธฐ๊ฐ์ ์์ ์ ์๊ณ , ์๋ฉ์ด์ง๋ง ์ปดํ๋ผ์ด์ธ์ค ๋๋ฌธ์ ์ผ์ ์ฐจ๋จ๋ ์ ์์ต๋๋ค. ์ด ๊ฒฐ์ ๋ค์ ๋ถ๋ฆฌํด ์ฌ๋ฌด๊ฐ ์ก์ฅ์ ๊ณ ์น๋๋ผ๋ ์ ํ ์ ๊ทผ์ด ์ค์๋ก ๋ฐ๋์ง ์๋๋ก ํ์ธ์.
์ฌ๋ฌ ํ์ด ์ด ์ค์ ์ ์์กดํฉ๋๋ค:
- ์ ํํ์ ํ๋์ ์๋ฏธ๋ฅผ ์ ์ํฉ๋๋ค.
- ์ํฌํธ๋ ์ ๊ทผ์ ์์ ํ๊ฒ ๋ถ์ฌํ๊ฑฐ๋ ์ ๊ฑฐํ ์ ์๋ ๋๊ตฌ๊ฐ ํ์ํฉ๋๋ค.
- ์ธ์ผ์ฆ ์ด์์ ๋๊ณผ ๊ฐฑ์ ์ ๋ํด ์ผ๊ด๋ ๊ท์น์ด ํ์ํฉ๋๋ค.
- ์ฌ๋ฌด๋ ํ๋งค๋ ๊ฒ๊ณผ ์ ๊ณต๋ ์ ๊ทผ ๊ฐ์ ์ ๋ขฐํ ์ ์๋ ๋งคํ์ด ํ์ํฉ๋๋ค.
์ด๊ธฐ ๊ฒฝ๊ณ๋ฅผ ์ ํ์ธ์. ํ๋ ๋ด์ฉ๊ณผ ๊ณ ๊ฐ ์ค๋ฒ๋ผ์ด๋๋ ๊ตฌ์ฑ ๊ฐ๋ฅํ๊ฒ ๋์ด(์ํฌํธ๊ฐ ํ๋ํ ์ ์๋๋ก) ํต์ฌ ๋์์ ์ฝ๋์ ๋์ธ์. โํต์ฌ ๋์โ ์์๋ ๋จ์ ์ฟผํฐ ๊ณ์ฐ ๋ฐฉ์, ๋ง๋ฃ๋ ์ฒดํ ์ฒ๋ฆฌ, ๊ฐ์ฌ๊ฐ ํ์ํ ์ก์ ๋ค์ ๋๋ค.
ํ๋๊ทธ, ํ๋, ์ฟผํฐ: ์ ์ ํ ์ ํ ์ ํํ๊ธฐ
๋๋ถ๋ถ์ ํฐ์ด๋ง ๋ฌธ์ ๋ ๊ถํ์ ์ ๋๋ก ์ด๋ฆ์ ๋ถ์ด๋ฉด ์ฌ์์ง๋๋ค. ์ธ ๊ฐ์ง ์ผ๋ฐ ํ์ ์ด ์๊ณ ๊ฐ๊ฐ ๋ค๋ฅธ ์ง๋ฌธ์ ๋ตํฉ๋๋ค:
- Boolean flags: ์ผ์ ธ ์๋ ๊บผ์ ธ ์๋? ์: export_enabled = true.
- Numeric limits: ํ ๋ฒ์ ์ผ๋ง๊ฐ ํ์ฉ๋๋? ์: max_seats = 10.
- Quotas: ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ผ ์ผ๋ง๋ฅผ ์ฌ์ฉํ ์ ์๋? ์: api_calls_per_month = 100000.
๊ธฐ๋ฅ์ด ๋ถ๋ถ์ ์ผ๋ก ๋์ํ๋ฉด ์ ๋๋ ๊ฒฝ์ฐ ํ๋๊ทธ๊ฐ ์ ํฉํฉ๋๋ค. export๊ฐ ๊บผ์ ธ ์์ผ๋ฉด ๋ฒํผ์ ์จ๊ธฐ๊ณ ์๋ํฌ์ธํธ๋ ์ฐจ๋จํ์ธ์. ํ๋๋ ์ข์, ํ๋ก์ ํธ, ์ ์ฅ๋ ๋ทฐ์ฒ๋ผ ๋ฆฌ์ ๋์ง ์๋ ์ฉ๋์ ์ ํฉํฉ๋๋ค.
์ฟผํฐ๋ ์๊ฐ์ด ์ค์ํ๊ธฐ ๋๋ฌธ์ ์ถ๊ฐ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค. ๋ฆฌ์ ๊ท์น์ด ๊ด๋ฆฌ์ UI์ ๋ช ํํ ๊ธฐ๋ก๋์ด ์์ผ๋ฉด ์ํฌํธ ํฐ์ผ์ด ๊ธ๊ฐํฉ๋๋ค.
๋ฒ์(scope)๋ ํผ๋์ ๋ง๋ ๋ ๋ค๋ฅธ ๊ฒฐ์ ์ ๋๋ค. โSAML SSO enabledโ ๊ฐ์ ํ๋๊ทธ๋ ๋ณดํต ๊ณ์ ์์ค์ ๋๋ค. โMax projectsโ๋ ์ํฌ์คํ์ด์ค ์์ค์ผ ์ ์๊ณ , โCan run reportsโ๋ ์ญํ ๊ธฐ๋ฐ ์ ๋์จ์ ํ๋งคํ๋ฉด ์ฌ์ฉ์ ์์ค์ผ ์ ์์ต๋๋ค.
์ฟผํฐ์ ๊ฒฝ์ฐ ํ๋์ ๋ฆฌ์ ๊ท์น์ ์ ํํ๊ณ ์งํค์ธ์:
- Never (ํ์ ํฌ๋ ๋ง)
- Monthly (๋ฌ๋ ฅ์)
- Rolling window (์ต๊ทผ 30์ผ)
- Per billing period (์ฒญ๊ตฌ ์ฃผ๊ธฐ์ ์ผ์น)
๋ฆฌ์ ๊ท์น์ด ํ๋์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค๋ฉด ๊ทธ ๊ท์น ์์ฒด๋ฅผ ๊ถํ์ ์ผ๋ถ๋ก ์ทจ๊ธํ์ธ์. ์๋ฌต์ ์ง์์ผ๋ก ๋์ง ๋ง์ธ์.
๊ถํ์ ์ํ ์ค์ฉ์ DB ์คํค๋ง
์ํฌํธ ์นํ์ ๊ถํ ๋ชจ๋ธ์ ๋ณดํต ๋จ์ํ ํํ๊ฐ ๊ฐ์ฅ ์ ์๋ํฉ๋๋ค: ๋ช ๊ฐ์ ํ ์ด๋ธ, ๋ช ํํ ํค, ๊ฐ์ฌ ๊ฐ๋ฅํ ์๊ฐ ๊ธฐ๋ฐ ๋ ์ฝ๋. ๋ชฉํ๋ ๊ด๋ฆฌ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ํธ์งํด ์ ๊ทผ์ ๋ฐ๊ฟ ์ ์๊ฒ ํ๊ณ ์ฝ๋ ๋ฐฐํฌ๊ฐ ํ์ํ์ง ์๊ฒ ํ๋ ๊ฒ์ ๋๋ค.
๋ค ๊ฐ์ง ํต์ฌ ํ
์ด๋ธ๋ก ์์ํ์ธ์: plans, plan_entitlements, customers, customer_overrides.
- Plans๋ ํฐ์ด(Free, Pro, Enterprise)๋ฅผ ์ค๋ช ํฉ๋๋ค.
- Plan entitlements๋ ๊ฐ ํ๋์ด ํฌํจํ๋ ํญ๋ชฉ์ ์ค๋ช ํฉ๋๋ค.
- Customers๋ ํ๋์ ๊ฐ๋ฆฌํต๋๋ค.
- Overrides๋ ๋ชจ๋ ์ฌ๋์๊ฒ ํ๋์ ๋ฐ๊พธ์ง ์๊ณ ๋จ์ผ ๊ณ ๊ฐ์ ๋ํ ์์ธ๋ฅผ ๋ค๋ฃน๋๋ค.
์ ์๋ํ๋ ๊ฐ๊ฒฐํ ๊ด๊ณํ ๊ตฌ์กฐ ์์:
plans:id,name,description,is_activeplan_entitlements:id,plan_id,key,type,value,unit,reset_policy,effective_from,effective_to,created_bycustomers:id,name,plan_id,status,created_atcustomer_overrides:id,customer_id,key,type,value,unit,reset_policy,effective_from,effective_to,created_by
๊ถํ ํ๋๋ ํ
์ด๋ธ ๊ฐ์ ์ผ๊ด๋์ด์ผ ํฉ๋๋ค. seats, api_calls, sso_enabled ๊ฐ์ ์์ ์ ์ธ key๋ฅผ ์ฌ์ฉํ์ธ์. type์ ํ๊ฐ๋ฅผ ๋จ์ํ๊ฒ ํฉ๋๋ค(์: flag, limit, quota). unit์ ๋ช
์์ ์ผ๋ก ์ ์ฅํ์ธ์(์: users, requests, GB). ์ฟผํฐ์ ๊ฒฝ์ฐ reset_policy๋ฅผ ๋ช
ํํ(monthly, daily, never) ํ์ธ์.
์ค๋ฒ๋ผ์ด๋๋ ๋ ์ง๊ฐ ์๋ ํ์ฉ ๋ชฉ๋ก(allowlist)์ฒ๋ผ ๋์ํด์ผ ํฉ๋๋ค. ๊ณ ๊ฐ์๊ฒ ํ์ฑ ์ค๋ฒ๋ผ์ด๋๋ก sso_enabled=true๊ฐ ์์ผ๋ฉด ํ๋ ๊ฐ๋ณด๋ค ์ฐ์ ํ๋ฉฐ effective_from๊ณผ effective_to ๋ฒ์ ๋ด์์๋ง ์ ์ฉ๋์ด์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด โ14์ผ ๋์ 10์ ์ถ๊ฐโ๊ฐ ํ ์ค์ ๋ณ๊ฒฝ์ผ๋ก ์๋ ๋ง๋ฃ๋๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค.
๊ถํ ํ๊ฐ(Entitlement evaluation) ๋ฐฉ์
๊ถํ ํ๊ฐ๋ โ์ด ๊ณ ๊ฐ์ด ์ง๊ธ ์ด๊ฑธ ํ ์ ์๋?โ๋ผ๋ ์ง๋ฌธ์ ๋ตํ๋ ์์ ์ฝ๋ ์กฐ๊ฐ(๋๋ ์๋น์ค)์ ๋๋ค. ์ด ๋ถ๋ถ์ด ์์ธก ๊ฐ๋ฅํ๋ฉด ๋๋จธ์ง ์ด์์ด ํจ์ฌ ์ฌ์์ง๋๋ค.
๋ช ํํ ์ฐ์ ์์๋ฅผ ์ฌ์ฉํ๊ณ ๋ฒ์ด๋์ง ๋ง์ธ์: ๊ณ ๊ฐ ์ค๋ฒ๋ผ์ด๋ \u003e ํ๋ ๊ฐ \u003e ์์คํ ๊ธฐ๋ณธ๊ฐ. ์ด๋ ๊ฒ ํ๋ฉด ์ํฌํธ๊ฐ ํ๋์ ๊ฑด๋๋ฆฌ์ง ์๊ณ ์์ ์์ธ๋ฅผ ๋ถ์ฌํ ์ ์๊ณ , ์๋ฌด๊ฒ๋ ์ค์ ๋์ง ์์์ ๋ ์์ง๋์ด๋ง์ ์์ ํ ๊ธฐ๋ณธ๊ฐ์ ๊ฐ์ง ์ ์์ต๋๋ค.
์ค์ฉ์ ์ธ ํ๊ฐ ํ๋ฆ:
- ์ธ์ฆ๋ ์ธ์ ์์ ๊ณ ๊ฐ/๊ณ์ ์ ์๋ณํ์ธ์(์์ฒญ ๋ณธ๋ฌธ์์ ๊ฐ์ ธ์ค์ง ๋ง์ธ์).
- ๊ณ ๊ฐ์ ํ์ฑ ํ๋๊ณผ ํ์ฑ ์ค๋ฒ๋ผ์ด๋๋ฅผ ๋ก๋ํ์ธ์.
- ์ฃผ์ด์ง ํค์ ๋ํด ์ค๋ฒ๋ผ์ด๋๊ฐ ์์ผ๋ฉด ๋ฐํํ๊ณ , ์์ผ๋ฉด ํ๋ ๊ฐ์ ๋ฐํํ๊ณ , ๊ทธ๋๋ ์์ผ๋ฉด ์์คํ ๊ธฐ๋ณธ๊ฐ์ ๋ฐํํ์ธ์.
- ํค๊ฐ ์ด๋์๋ ์์ผ๋ฉด ์ ๊ทผ ๊ฒ์ฌ์์๋ ๋ซํ ์คํจ(fail closed)๋ก ์ฒ๋ฆฌํ๊ณ (โํ์ฉ๋์ง ์์โ), ํ์์ฉ UI์๋ ํฉ๋ฆฌ์ ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ฉํ์ธ์.
- ํค๊ฐ ๋ฑ๋ก๋์ด ์์ง ์์ผ๋ฉด ๊ตฌ์ฑ ์ค๋ฅ๋ก ์ฒ๋ฆฌํ๊ณ ๋ซํ ์คํจ๋ก ์ฒ๋ฆฌํ ๋ค ํ์ ์กฐ์น๋ฅผ ์ํด ๋ก๊น ํ์ธ์.
๊ถํ์ ์์ฃผ ํ์ธ๋๋ฏ๋ก ์บ์ฑ์ด ์ค์ํฉ๋๋ค. ๊ณ ๊ฐ๋ณ๋ก ํด์๋ ๊ถํ์ ์งง์ TTL๊ณผ ๋ช ์์ ๋ฒ์ ๋ฒํธ๋ก ์บ์ํ์ธ์. ๋ค์์ด ๋ณ๊ฒฝ๋ ๋ ๋ฌดํจํํ์ธ์: ํ๋ ํ ๋น, ํ๋ ์ ์, ๊ณ ๊ฐ ์ค๋ฒ๋ผ์ด๋, ๊ณ ๊ฐ ์ํ(์ฒดํ, ์ ์, ์ฐจ๋จ). ๊ฐ๋จํ ํจํด์ โcustomer_id + entitlements_version์ผ๋ก ์บ์โํ๋ ๊ฒ์ ๋๋ค. ์ํฌํธ ํธ์ง์ด ๋ฒ์ ์ ์ฌ๋ฆฌ๋ฉด ๋ณ๊ฒฝ์ด ๋น ๋ฅด๊ฒ ๋ฐ์๋ฉ๋๋ค.
๋ฉํฐํ ๋์ ์์ ์ฑ์ ํ์์ ๋๋ค. ๋ชจ๋ ์ฟผ๋ฆฌ๋ ํ์ฌ ๊ณ ๊ฐ/๊ณ์ id๋ก ํํฐ๋ง๋์ด์ผ ํ๊ณ , ๋ชจ๋ ์บ์ ํญ๋ชฉ์ ํด๋น id๋ก ํค๋์ด์ผ ํฉ๋๋ค. ์ด๋ฉ์ผ, ๋๋ฉ์ธ, ํ๋ ์ด๋ฆ๋ง์ผ๋ก ๊ถํ์ ์กฐํํ์ง ๋ง์ธ์.
๋จ๊ณ๋ณ: ์ํฌํธ๊ฐ ์ ๊ทผ์ ์กฐ์ ํ๊ธฐ ์ฌ์ด ์ํฌํ๋ก
์ํฌํธ ์นํ์ ์ํฌํ๋ก๋ ๋ชจ๋ธ์ ์ ์ฐํ๊ฒ ์ ์งํ๋ ๋ชจ๋ ์์ธ๊ฐ ์์ง๋์ด๋ง ๋ฌธ์ ๋ก ๋ฐ๋์ง ์๋๋ก ํฉ๋๋ค. ๋ชฉํ๋ ๋ณ๊ฒฝ์ ์์ ํ๊ฒ ์ํํ๊ณ ํ์ ์ ๋จ๊ธฐ๋ฉฐ ๊ณ ๊ฐ ๊ฒฝํ์ ํ์ธํ๋ ๊ฒ์ ๋๋ค.
์์ ํ ์ํฌํธ ํ๋ฆ
๋จผ์ ์ฌ๋ฐ๋ฅธ ๊ณ ๊ฐ ๋ ์ฝ๋๋ฅผ ์ฐพ๊ณ ๊ทธ๋ค์ด ๋ฌด์์ ์์ฒญํ๋์ง, ์ ์์ฒญํ๋์ง ํ์ธํ์ธ์. โ์ผ์ฃผ์ผ ๋์ ์ข์ 2๊ฐ ๋ ํ์โ๋ โ์ฐ๋ฆฌ๊ฐ ์์ ํฐ์ด๋ก ๊ณ์ฝ์ ๋ณ๊ฒฝํ๋คโ์ ๋ค๋ฆ ๋๋ค. ์ข์ ๊ด๋ฆฌ์ UI๋ ํ์ฌ ํ๋, ๊ณ ๊ฐ ์ํ, ํ์ฑ ์ค๋ฒ๋ผ์ด๋๋ฅผ ํ ํ๋ฉด์์ ์ฝ๊ฒ ๋ณผ ์ ์๊ฒ ํด์ผ ํฉ๋๋ค.
๋ฌด์ธ๊ฐ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ ์ ํ์ฌ ์ฌ์ฉ๋์ ๊ด๋ จ ํ๋๋ ์ฟผํฐ์ ๋น๊ตํด ํ์ธํ์ธ์. ๋ง์ ์์ฒญ์ ๊ณ์ ์ด ์ค์ ๋ก ํ๋์ ๋๋ฌํ์ง ์์๊ฑฐ๋(์: ์ฌ์ฉ ์ถ์ ์ด ์ ๋ฐ์ดํธ๋์ง ์์) ๋ฌธ์ ์ ์์ธ์ด ๋ค๋ฅธ ๊ณณ์์ ํ์ธํ๋ฉด ์ฌ๋ผ์ง๋๋ค.
์กฐ์ ์ด ํ์ํ ๋๋ ํ๋์ ํธ์งํ๊ธฐ๋ณด๋ค ๋ช ์์ ์ค๋ฒ๋ผ์ด๋๋ฅผ ์ ํธํ์ธ์. ์ค๋ฒ๋ผ์ด๋๋ ์ข๊ฒ(ํ ๊ฐ์ง ํ๋๊ทธ ๋๋ ํ๋), ์์ ์์ ์ด์ ๋ฅผ ํฌํจํ๊ณ ๋ง๋ฃ์ผ์ ๊ธฐ๋ณธ์ผ๋ก ํ์ธ์. ์์ ์์ธ๋ ํํ๊ณ ์๊ธฐ ์ฝ๊ธฐ ๋๋ฌธ์ ๋ง๋ฃ์ผ์ ํ์๋ก ๋์ธ์.
๊ด๋ฆฌ ๋๊ตฌ ๋ด์ ๊ฐ๋จํ ์ฒดํฌ๋ฆฌ์คํธ๋ ๋ณดํต ์ถฉ๋ถํฉ๋๋ค:
- ๊ณ ๊ฐ ์ ์, ํ์ฌ ํ๋, ์์ฒญ ์ฌ์ ํ์ธ.
- ๊ด๋ จ ์ํ์ ๋๋น ํ์ฌ ์ฌ์ฉ๋ ๊ฒํ .
- ๋ฒ์๊ฐ ์ข์ ์ค๋ฒ๋ผ์ด๋๋ฅผ ์ ์ฉํ๊ณ ๋ง๋ฃ์ผ ์ค์ .
- ๋ฉ๋ชจ์ ํฐ์ผ/์ฌ๋ก ์ฐธ์กฐ ์ถ๊ฐ.
- ์์ ๊ณ์ ์ด๋ ์ํ์จ๋ค์ด์ ์ผ๋ก ์ ํ UI์์ ๊ฒฐ๊ณผ ํ์ธ.
ํญ์ ๊ณ ๊ฐ์ด ๊ฒฝํํ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ์ ๊ฒ์ฆํ์ธ์. ์ํ์จ๋ค์ด์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉด ํ์ฑํ ์ฌ๋ถ๋ฅผ ๋ช ํํ ํ์ํ๊ณ ๋ก๊น ํ์ธ์.
์ ๊ทธ๋ ์ด๋, ๋ค์ด๊ทธ๋ ์ด๋, ์ฒดํ, ์ ์ ๊ธฐ๊ฐ
๋๋ถ๋ถ์ ๊ถํ ๋ฌธ์ ๋ ๋ณ๊ฒฝ ์์ ๋ฐ์ํฉ๋๋ค: ๊ณ ๊ฐ์ด ์ฌ์ดํด ์ค๊ฐ์ ์ ๊ทธ๋ ์ด๋ํ๊ฑฐ๋ ์นด๋ ๊ฒฐ์ ๊ฐ ์คํจํ๊ฑฐ๋ ์ฒดํ์ด ์ฃผ๋ง์ ๋๋๋ ๊ฒฝ์ฐ ๋ฑ. ๊ท์น์ด ๋ชจํธํ๋ฉด ์ํฌํธ๋ ์ถ์ธกํ๊ฒ ๋๊ณ ์์ง๋์ด๋ง์ด ํธ์ถ๋ฉ๋๋ค.
์ ๊ทธ๋ ์ด๋๋ ๋จ์ํ๊ฒ ์ ์งํ์ธ์: ์ ๊ทผ์ ๋ณดํต ์ฆ์ ๋ณ๊ฒฝ๋๊ณ ๊ธ์ ์ธ๋ถ์ฌํญ์ ์ฒญ๊ตฌ์ ๋จ๊น๋๋ค. ๊ถํ ๋ชจ๋ธ์ โํ๋ ๋ณ๊ฒฝโ ๊ฐ์ ์ฒญ๊ตฌ ์ด๋ฒคํธ๋ฅผ ๋ฃ๊ณ ์ ํ๋ ๊ถํ์ ์ฆ์ ์ ์ฉํด์ผ ํฉ๋๋ค. ์ฒญ๊ตฌ๊ฐ ์ ์ฐ(proration)์ ์ฒ๋ฆฌํ๋ค๋ฉด ์ข์ง๋ง, ๊ถํ์ ์ ์ฐ ์ํ์ ์ง์ด๋ฃ์ง ๋ง์ธ์.
๋ค์ด๊ทธ๋ ์ด๋๋ ๋๋ผ์์ด ์๊ธฐ๊ธฐ ์ฌ์ด ๋ถ๋ถ์ ๋๋ค. ๋ช ํํ ๋ค์ด๊ทธ๋ ์ด๋ ๋์์ ์ ํํ๊ณ ์ํฌํธ์๊ฒ ๋ณด์ด๊ฒ ํ์ธ์:
- ์ ์ ๊ธฐ๊ฐ(Grace): ์ ๋ฃ ๊ธฐ๊ฐ ์ข ๋ฃ๊น์ง ์์ ์ ๊ทผ ์ ์ง.
- ์ฝ๊ธฐ ์ ์ฉ(Read-only): ๋ฐ์ดํฐ ์กฐํ/๋ด๋ณด๋ด๊ธฐ ํ์ฉํ๋ ์ ์ฐ๊ธฐ ์ฐจ๋จ.
- ์ฆ์ ์ฐจ๋จ(Hard stop): ๊ธฐ๋ฅ์ ์ฆ์ ์ฐจ๋จ(์ํํ ๊ธฐ๋ฅ์ ๊ถ์ฅ).
- ํ๋ ์ด๊ณผ ํ๋: ์ฌ์ฉ์ ํ์ฉํ์ง๋ง ์์ฑ์ ์ฐจ๋จ.
- ๋ฐ์ดํฐ ๋ณด์กด: ๋ฐ์ดํฐ๋ ๋ณด๊ดํ๋ ์ ๊ทผ์ ๋นํ์ฑํ.
์ฒดํ์ ๊ณ ๊ฐ์ ๋ถ๋ฆฌํ ์ํฅ์ ์ค์ด๋ ค๋ฉด ๋จ์ํ ํ๋์ผ๋ก ์ทจ๊ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฒดํ ํ๋์ ๋ช ํํ ํ๋๊ทธ์ ํ๋, ์๋ ๋ง๋ฃ ๊ท์น์ ๋๊ณ ์ฒดํ ์ข ๋ฃ ์ ๊ธฐ๋ณธ ํ๋(๋ณดํต โFreeโ)์ผ๋ก ์ด๋์ํค๋ฉฐ ์ ์ํ ๋ค์ด๊ทธ๋ ์ด๋ ๋์์ ์ ์ฉํ์ธ์.
์ฒญ๊ตฌ ์คํจ์ ๋ํ ์ ์ ๊ธฐ๊ฐ๋ ์ ์ฉํฉ๋๋ค. ์งง์ โ์ฐ์ฒดโ ์ฐฝ(์: 3~7์ผ)์ ๊ฒฐ์ ๋ฅผ ์์ ํ ์๊ฐ์ ์ฃผ์ด ์์ ์ค ์ ๊ทผ์ ์์ง ์๊ฒ ํฉ๋๋ค. ์ ์ ๊ธฐ๊ฐ์ ์๊ฐ ๊ธฐ๋ฐ ์ค๋ฒ๋ผ์ด๋๋ก ์ฒ๋ฆฌํ์ธ์, ์ปค์คํ ํ๋ ์ด๋ฆ์ผ๋ก ์ฒ๋ฆฌํ์ง ๋ง์ธ์.
์ค์ฉ์ ์ธ ํ: ๊ถํ์ ๋ง์ผํ
ํฐ์ด ์ด๋ฆ(์: โProโ, โEnterpriseโ)์ ์ง์ ๋ฌถ์ง ๋ง์ธ์. ๋ด๋ถ์ ์ผ๋ก ์์ ์ ์ธ ํ๋ ID(์: plan_basic_v2)๋ฅผ ์ฌ์ฉํด ํฐ์ด ์ด๋ฆ์ ๋ฐ๊ฟ๋ ๊ท์น์ด ๊นจ์ง์ง ์๊ฒ ํ์ธ์.
๊ฐ์ฌ์ ์์ ํต์
์ํฌํธ๊ฐ ์์ง๋์ด๋ง ์์ด ์ ๊ทผ์ ๋ฐ๊ฟ ์ ์๋ค๋ฉด ๋ณ๊ฒฝ ํ์ ์ด ํ์ํฉ๋๋ค. ์ข์ ๊ถํ ๋ชจ๋ธ์ ๋ชจ๋ ๋ณ๊ฒฝ์ ๊ธฐ๋ก๋ ๊ฒฐ์ ์ผ๋ก ์ทจ๊ธํฉ๋๋ค.
๋ชจ๋ ์ค๋ฒ๋ผ์ด๋์ ๋ํด ํ์์(actor), ๋น์ฆ๋์ค ์ด์ , ํ์์คํฌํ๋ฅผ ์บก์ฒํ์ธ์. ์กฐ์ง์ด ํ์ํ๋ฉด ๋ฏผ๊ฐํ ๋ณ๊ฒฝ์ ์น์ธ ๋จ๊ณ๋ฅผ ์ถ๊ฐํ์ธ์.
๋ณ๊ฒฝ ์ ๊ธฐ๋กํ ํญ๋ชฉ
๊ธฐ๋ก์ ์ค๋ฌด์์ ์ค์ ๋ก ์ฌ์ฉ๋๋๋ก ๋จ์ํ๊ฒ ์ ์งํ์ธ์:
created_by์created_atapproved_by์approved_at(์ ํ ์ฌํญ)reason(์งง์ ํ ์คํธ, ์: โpaid add-onโ ๋๋ โincident creditโ)previous_value์new_valueexpires_at
์์ ํต์ ๋ ์ค์๋ฅผ ํ๋ก๋์ ์ ๋๋ฌํ๊ธฐ ์ ์ ๋ง์ต๋๋ค. ๊ด๋ฆฌ์ UI์ DB์ ๊ฐ๋๋ ์ผ์ ๋์ธ์: ์ต๋๊ฐ ์ ํ, ์์ ๊ฐ ์ฐจ๋จ, ํฐ ๋ณ๊ฒฝ ์ ๋ง๋ฃ์ผ ์๊ตฌ(์: API ํธ์ถ์ 10๋ฐฐ๋ก ์ฌ๋ฆด ๋) ๋ฑ.
๋กค๋ฐฑ ๋ฐ ๊ฐ์ฌ ์ค๋น
์ํฌํธ๋ ์ค์๋ฅผ ํฉ๋๋ค. ๊ณ ๊ฐ ์์ค ์ค๋ฒ๋ผ์ด๋๋ฅผ ์ง์ฐ๊ณ ํ ๋น๋ ํ๋์ผ๋ก ๊ณ์ ์ ๋๋๋ฆฌ๋ ๋จ์ผ โํ๋ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋๋๋ฆฌ๊ธฐโ ๋์์ ์ ๊ณตํ์ธ์.
๊ฐ์ฌ๋ฅผ ์ํด ๊ณ ๊ฐ๊ณผ ๋ ์ง ๋ฒ์๋ณ๋ก ๊ธฐ๋ก์ ๋ด๋ณด๋ด๊ธฐ ์ฝ๊ฒ ํ์ธ์. ์ด์ ์ ์น์ธ์๋ฅผ ํฌํจํ ๊ธฐ๋ณธ CSV ๋ด๋ณด๋ด๊ธฐ๊ฐ ๋๋ถ๋ถ์ ์ง๋ฌธ์ ๋ตํฉ๋๋ค.
์: Pro ๊ณ ๊ฐ์ด ์ผ์ฃผ์ผ ํ์ฌ๋ก 30์์ ์ถ๊ฐ๋ก ํ์๋ก ํ๋ฉด ์ํฌํธ๋ seats_override=60๊ณผ expires_at์ ๋ค์ ๊ธ์์ผ๋ก ์ค์ ํ๊ณ ์ด์ ์ โeventโ๋ฅผ ์ ๊ณ ๊ด๋ฆฌ์ ์น์ธ์ ๋ฐ์ต๋๋ค. ๋ง๋ฃ ํ ์์คํ
์ ์๋์ผ๋ก 30์ผ๋ก ๋์๊ฐ๋ฉฐ ์ฒญ๊ตฌ ๋ถ์ ์ ํ์ํ ์ ์ฒด ๊ธฐ๋ก์ด ๋จ์ต๋๋ค.
๊ถํ์ ์ด๋ ต๊ฒ ๋ง๋๋ ํํ ์ค์๋ค
๊ถํ ๋ชจ๋ธ์ ๋ง์น๋ ๊ฐ์ฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ ์๋์น ์๊ฒ ์ฑ์ฅ์ ํ์ฉํ๋ ๊ฒ์ ๋๋ค. ์ด๊ธฐ์ ๋ช ๊ฐ์ง ํธ๋ฒ์ ์๊ฐ์๊ฐ์ ์ํฌํธ ํฐ์ผ๊ณผ โ์ ์ด ๊ณ ๊ฐ์ด ์ ๊ธฐ๋ฅ์ ์ธ ์ ์์ง?โ๋ผ๋ ์๋ฐฉ์ ์ผ๋ก ์ด์ด์ง๋๋ค.
ํ ๊ฐ์ง ํํ ๋ฌธ์ ๋ ๊ธฐ๋ฅ ๊ฒ์ฌ๋ฅผ ์ฌ๋ฌ ๊ณณ์ ํฉํธ๋ฆฌ๋ ๊ฒ์ ๋๋ค. ์ฑ์ ๋ค๋ฅธ ๋ถ๋ถ์ด ์๋ก ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ ๊ทผ์ ๊ฒฐ์ ํ๋ฉด ๋ชจ์์ด ์๊น๋๋ค. ๊ถํ ํ๊ฐ๋ ํ๋์ ํจ์๋ ์๋น์ค๋ก ์ค์ํํ๊ณ ๋ชจ๋ UI์ API๊ฐ ์ด๋ฅผ ์ฌ์ฉํ๊ฒ ํ์ธ์.
๋ ๋ค๋ฅธ ํจ์ ์ ์ฒญ๊ตฌ ์ํ๋ฅผ ์ ๊ทผ๊ณผ ์์ด ๋ฒ๋ฆฌ๋ ๊ฒ์ ๋๋ค. โ์ ๋ฃโ๋ โํ์ฉ๋จโ๊ณผ ๊ฐ์ง ์์ต๋๋ค. ์ฒญ๊ตฌ์๋ ์ฌ์๋, ํ๋ถ, ์ฒดํ, ๋์ค์ ์ ์ฐ๋๋ ์ก์ฅ ๋ฑ์ด ์์ต๋๋ค. ์ฒญ๊ตฌ ์ด๋ฒคํธ๋ฅผ ๋ช ํํ ๊ท์น(์ ์ ๊ธฐ๊ฐ ํฌํจ)์ผ๋ก ๊ถํ์ผ๋ก ๋ฒ์ญํด ์ฃ์ง ์ผ์ด์ค๊ฐ ์ฌ์ฉ์๋ฅผ ์ ๊ทธ๊ฑฐ๋ ์๊ตฌ์ ์ผ๋ก ์ ๊ทผ์ ํ์ฉํ์ง ์๋๋ก ํ์ธ์.
๋จ์ผ ํฐ์ด ๋ฌธ์์ด(์: โbasicโ, โproโ)๋ง์ ์ง์ค์ ์์ฒ์ผ๋ก ์ผ์ง ๋ง์ธ์. ํฐ์ด๋ ์๊ฐ์ด ์ง๋๋ฉฐ ๋ณ๊ฒฝ๋๊ณ ์์ธ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ช ์์ ํ๋๊ทธ์ ํ๋๋ฅผ ์ ์ฅํด ์ํฌํธ๊ฐ ํ ๊ธฐ๋ฅ๋ง ๋ถ์ฌํด๋ ํด๋น ํฐ์ด์ ๋ชจ๋ ๊ฒ์ ์ค์๋ก ๋ถ์ฌํ์ง ์๊ฒ ํ์ธ์.
์ค๋ฒ๋ผ์ด๋๋ ํ์ํ์ง๋ง ๊ฐ๋๋ ์ผ ์๋ ๋ฌด์ ํ ์ค๋ฒ๋ผ์ด๋๋ ๋ณด์ด์ง ์๋ ๋ถ์ฑ๊ฐ ๋ฉ๋๋ค. ์์ ์, ์ด์ , ํฐ์ผ ์ฐธ์กฐ๋ฅผ ์๊ตฌํ์ธ์. ๋ง๋ฃ์ผ ๋๋ ๊ฒํ ์ผ์ ๊ถ์ฅํ์ธ์. ์ค๋ฒ๋ผ์ด๋๋ ์ข๊ฒ(ํ ํค์ฉ) ์ ์งํ๊ณ ๊ฐ์ฌ๋ฅผ ์ฝ๊ฒ ํ์ธ์.
์ฟผํฐ๋ ๋ฆฌ์ ๊ท์น์ด ๋ชจํธํ ๋๋ ์๋ชป๋ฉ๋๋ค. โ์๋ณโ์ด ๋ฌ๋ ฅ์์ธ์ง ๋กค๋ง 30์ผ์ธ์ง, ์ ๊ทธ๋ ์ด๋ ์ ์ด๋ป๊ฒ ๋๋์ง, ์ฌ์ฉํ์ง ์์ ์ฟผํฐ๊ฐ ์ด์๋๋์ง ๋ฑ์ ์ ์ํ์ธ์. ์ด๋ฌํ ๊ท์น์ UI๊ฐ ์๋๋ผ ๋ฐฑ์๋ ๋ก์ง์ผ๋ก ์ํํด ์น๊ณผ ๋ชจ๋ฐ์ผ ๊ฐ ์ผ๊ด์ฑ์ ์ ์งํ์ธ์.
๋ฐฐํฌ ์ ๋น ๋ฅธ ์ฒดํฌ๋ฆฌ์คํธ
๊ถํ ๋ชจ๋ธ์ ๋กค์์ํ๊ธฐ ์ ์ ๋งค์ผ ์ฌ์ฉํ ํ๋ค(์ํฌํธ, CS, ์จ์ฝ ๋ด๋น์)๊ณผ ๋ง์ง๋ง ์ ๊ฒ์ ํ์ธ์.
๊ฐ ๊ธฐ๋ฅ์ด ํ๋์ ์์ ์ ์ธ ๊ถํ ํค์ ๋งคํ๋๊ณ ๋ช
ํํ ์์ ์๊ฐ ์๋์ง ํ์ธํ์ธ์. reports_enabled์ reporting_enabled ๊ฐ์ ์ค๋ณต ํค๋ฅผ ํผํ์ธ์. ์ถ์ํ๋ ํค๋ง๋ค ํ๋์ ๋ํ ๋ช
์์ ๊ธฐ๋ณธ๊ฐ์ด ์๋์ง ํ์ธํ์ธ์. ํค๊ฐ ์์ผ๋ฉด ์์ ํ๊ฒ ์คํจ(๋ณดํต ์ ๊ทผ ๊ฑฐ๋ถ)ํ๊ณ ๋ด๋ถ์ ์ผ๋ก ๊ฒฝ๊ณ ํด ์์ ๋๋๋ก ํ์ธ์.
์ด์ ์ธก๋ฉด์์ ์ํฌํ๋ก๊ฐ ์ค์ ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ์ง ํ์ธํ์ธ์:
- ์ํฌํธ๋ SQL ์์ด๋ ์ ํจ ๊ถํ(ํ๋ ๊ธฐ๋ณธ๊ฐ + ์ค๋ฒ๋ผ์ด๋)์ ๋ณผ ์ ์์ด์ผ ํฉ๋๋ค.
- ์ค๋ฒ๋ผ์ด๋๋ ๋๊ฐ ์ธ์ ๋ฌด์์ ๋ณ๊ฒฝํ๋์ง, ์ ํ๋์ง, ์ธ์ ๋ง๋ฃ๋๋์ง ๊ธฐ๋ก๋ฉ๋๋ค.
- ์ฟผํฐ๋ ๊ฐ์์ ์ธ ๋ฆฌ์ ๊ท์น๊ณผ ํ์ฌ ์ฌ์ฉ๋์ ๋ณด์ฌ์ฃผ๋ ๋ช ํํ ๋ฐฉ๋ฒ์ด ์์ด์ผ ํฉ๋๋ค.
ํ์ค ํ ์คํธ: ์ํฌํธ๊ฐ ๋จ์ผ ๊ณ ๊ฐ์๊ฒ 14์ผ์ง๋ฆฌ ์ ๋์จ์ ๋ถ์ฌํ ๋ค ์ ๊ฑฐํ๋๋ก ํด๋ณด์ธ์. 2๋ถ ์ด๋ด์ ์์ ์๊ฒ ํ ์ ์๋ค๋ฉด ๊ฑฐ์ ์๋ฃ๋ ๊ฒ์ ๋๋ค.
์์ ์๋๋ฆฌ์ค: ์์ ์์ธ๊ฐ ์๋ ํฐ์ด
์ธ ๊ฐ์ง ํฐ์ด๋ฅผ ์ ๊ณตํ๊ณ ๊ฐ ํฐ์ด๊ฐ ๋ฐฑ์๋์์ ์ํ๋๋ ๋ช ๊ฐ์ง ๋ช ํํ ๊ถํ์ ์ค์ ํ๋ค๊ณ ์์ํด๋ณด์ธ์.
- Free: 1๊ฐ ํ๋ก์ ํธ, 3๋ช ์ฌ์ฉ์, ์ 200ํ ๋ด๋ณด๋ด๊ธฐ, ๊ธฐ๋ณธ API ์๋ ์ ํ, 7์ผ ๊ฐ์ฌ ๋ก๊ทธ.
- Team: 10๊ฐ ํ๋ก์ ํธ, 25๋ช ์ฌ์ฉ์, ์ 2,000ํ ๋ด๋ณด๋ด๊ธฐ, ๋ ๋์ API ์๋ ์ ํ, 30์ผ ๊ฐ์ฌ ๋ก๊ทธ.
- Business: ๋ฌด์ ํ ํ๋ก์ ํธ, 200๋ช ์ฌ์ฉ์, ์ 10,000ํ ๋ด๋ณด๋ด๊ธฐ, ์ต๊ณ API ์๋ ์ ํ, 180์ผ ๊ฐ์ฌ ๋ก๊ทธ, SSO ํ์ฑํ.
์ด์ Team ๊ณ ๊ฐ์ด โ์ด๋ฒ ๋ฌ์ 8,000๊ฑด์ ๋ด๋ณด๋ด๊ธฐ๋ฅผ ํด์ผ ํ๋๋ฐ 30์ผ ๋์ ๋์์ค ์ ์๋์?โ๋ผ๊ณ ์์ฒญํ๋ค๊ณ ํฉ์๋ค. ์ด๋ด ๋ ์์ ์ค๋ฒ๋ผ์ด๋๊ฐ ํ๋ ์ด๋๋ณด๋ค ๋ซ์ต๋๋ค.
์ํฌํธ๋ ๊ณ ๊ฐ ๋ ์ฝ๋๋ฅผ ์ด๊ณ export_monthly_limit = 8000๊ณผ ๊ฐ์ ์ค๋ฒ๋ผ์ด๋๋ฅผ ์ถ๊ฐํ๊ณ expires_at์ ์ค๋๋ก๋ถํฐ 30์ผ ํ๋ก ์ค์ ํฉ๋๋ค. ๋ฉ๋ชจ์ โAlex(์์
) ์น์ธ, ๋ถ๊ธฐ ๋ณด๊ณ ์ฉ 30์ผ ์์ธโ๋ผ๊ณ ์ ์ต๋๋ค.
๊ณ ๊ฐ ์ ์ฅ์์๋ ๋ ๊ฐ์ง๊ฐ ์ผ์ด๋์ผ ํฉ๋๋ค:
- UI๊ฐ ์ ํ๋๋ฅผ ๋ฐ์ํฉ๋๋ค(์ฌ์ฉ๋ ๋ฏธํฐ์ โ๋จ์ ๋ด๋ณด๋ด๊ธฐโ ๋ผ๋ฒจ์ด ์ ๋ฐ์ดํธ๋จ).
- ์ 8,000๊ฑด์ ๋๋ฌํ ๋๊น์ง ๋ด๋ณด๋ด๊ธฐ๊ฐ ๊ณ์ ์๋ํฉ๋๋ค.
์ด๊ณผํ๋ฉด ๋ช ํํ ๋ฉ์์ง๊ฐ ๋ณด์ ๋๋ค: โ๋ด๋ณด๋ด๊ธฐ ํ๋ ๋๋ฌ(8,000/์). ์ง์์ ๋ฌธ์ํ๊ฑฐ๋ ์ ๊ทธ๋ ์ด๋ํ์ธ์.โ
๋ง๋ฃ์ผ ํ์๋ ์ค๋ฒ๋ผ์ด๋๊ฐ ์๋์ผ๋ก ์ค์ง๋๊ณ ๊ณ ๊ฐ์ ์๋ฌด๋ ์๋์ผ๋ก ๋์ง ์์๋ Team ํ๋ ํ๋๋ก ๋๋์๊ฐ๋๋ค.
๋ค์ ๋จ๊ณ: ์ํฌํธ๋ฅผ ๋ฆ์ถ์ง ์๊ณ ๊ตฌํํ๊ณ ๋ฐ๋ณตํ์ธ์
๋จผ์ โ๊ธฐ๋ฅโ์ ์์ ๊ถํ ์นดํ๋ก๊ทธ๋ก ์ ํํ์ธ์. ๊ฐ ํญ๋ชฉ์ ๋ช ํํ ํค, ํ์ (ํ๋๊ทธ vs ํ๋ vs ์ฟผํฐ), ํ๋๋ณ ๊ธฐ๋ณธ๊ฐ์ ๋ถ์ฌํ์ธ์. ์ด ์นดํ๋ก๊ทธ๋ ์ ํ, ์ํฌํธ, ์์ง๋์ด๋ง ๊ฐ์ ๊ณตํต ์ธ์ด๊ฐ ๋๋ฏ๋ก ์ด๋ฆ์ ๊ตฌ์ฒด์ ์ด๊ณ ์์ ์ ์ผ๋ก ์ ์งํ์ธ์.
์ด๋์์ ๊ฐ์ ํ ์ง ๊ฒฐ์ ํ์ธ์. ์์ ํ ๊ท์น์: ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ด๋ ๋น์ฉ์ด ๋ฐ์ํ๋ ๋ชจ๋ ํญ๋ชฉ์ API์์ ๊ฐ์ ํ๊ณ , ํ๋๋ฅผ ์ด๊ณผํ ๋ ์ฅ๊ธฐ ์์ ์ ์ค์งํ๋ ค๋ฉด ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์ ์ฌ์ฉํ๋ฉฐ, UI๋ ์ฌ์ฉ์ ์๋ด(๋นํ์ฑํ๋ ๋ฒํผ, ๋์ ๋ฉ์์ง)๋ก ์ฒ๋ฆฌํ๋ ์ ์ผํ ๊ด๋ฌธ์ผ๋ก๋ ์ผ์ง ์๋ ๊ฒ์ ๋๋ค.
์ฒซ ๋ฒ์ ์ ์๊ฒ ์ ์งํ์ธ์. ๊ฐ์ฅ ๋ง์ ์ง๋ฌธ์ ์์ฑํ๋ ๊ถํ์ ์ง์คํ๊ณ , ์ํ์ด ํฐ ๋์์ ์ฒดํฌ๋ฅผ ์ถ๊ฐํ๊ณ , ๊ณ ๊ฐ, ํ๋, ์ค๋ฒ๋ผ์ด๋, ์ด๋ ฅ์ ํ ๊ณณ์ ๋ณด์ฌ์ฃผ๋ ๊ด๋ฆฌ์ ๋ทฐ๋ฅผ ์ถ์ํ์ธ์.
ํธ๋์ฝ๋ฉ ์์ด ๊ด๋ฆฌ์ ํจ๋๊ณผ ๊ธฐ๋ณธ ๋ก์ง์ ๋น ๋ฅด๊ฒ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด AppMaster (appmaster.io)๊ฐ ์ด๋ฌํ ์์ ์ ์ค์ฉ์ ์ ๋๋ค: ํ๋๊ณผ ์ค๋ฒ๋ผ์ด๋๋ฅผ ๋ฐ์ดํฐ๋ก ๋ชจ๋ธ๋งํ๊ณ , ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ก ๊ฒ์ฌ๋ฅผ ๊ตฌํํ๋ฉฐ, ๋ฐฑ์๋์ ์ฑ ์ ๋ฐ์์ ์ผ๊ด๋ ์ํฌํธ UI๋ฅผ ๋ฐฐ์กํ ์ ์์ต๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
๊ถํ ๋ชจ๋ธ์ ํ๋๊ณผ ์น์ธ๋ ์์ธ๋ฅผ ๋ฐํ์ผ๋ก โ์ง๊ธ ์ด ๊ณ ๊ฐ์ด ๋ฌด์์ ํ ์ ์๋๊ฐโ๋ฅผ ์ผ๊ด๋๊ฒ ๊ฒฐ์ ํ๋ ๋จ์ผ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ชจ๋ ์ ํ ๋ถ๋ถ์ด ๋์ผํ ๊ท์น์ ์ฝ๋๋ก ํด์ โUI์์๋ ์๋ํ๋๋ฐ API์์ ์คํจํ๋คโ ๊ฐ์ ์ํฉ์ ๋ฐฉ์งํฉ๋๋ค.
๋ช ํํ ๊ถํ ์์คํ ์ด ์์ผ๋ฉด ์ํฌํธ๊ฐ ์์ ์ ๊ทผ ๋ณ๊ฒฝ๋ ์์ง๋์ด๋ง ์์ฒญ์ผ๋ก ์ ํํ๊ฒ ๋๊ณ , ๊ณ ๊ฐ์ ํ๋ฉด๊ณผ ์๋ํฌ์ธํธ๋ง๋ค ์ผ๊ด๋์ง ์์ ๋์์ ๋ณด๊ฒ ๋ฉ๋๋ค. ์๊ฐ์ด ์ง๋๋ฉด ๊ท์น์ด ์ฝ๋, ๊ด๋ฆฌ ์ฒดํฌ๋ฐ์ค, ์คํ๋ ๋์ํธ, ์ผํ์ฑ DB ์ ๋ฐ์ดํธ ๋ฑ ์ฌ๊ธฐ์ ๊ธฐ์ ํฉ์ด์ ธ์ ์ฅ์ ๋ ์ฒญ๊ตฌ ๋ถ์์ด ๋ฐ์ํ๊ธฐ ์ฝ์ต๋๋ค.
์ฒญ๊ตฌ๋ โ๋ฌด์์ ์ธ์ ์ฒญ๊ตฌํ ๊ฒ์ธ๊ฐโ์ ๋ตํ๊ณ , ๊ถํ์ โ์ง๊ธ ๋ฌด์์ด ํ์ฉ๋๋๊ฐโ์ ๋ตํฉ๋๋ค. ๋์ ๋ถ๋ฆฌํ๋ฉด ์ฌ๋ฌดํ์ด ์ก์ฅ์ด๋ ์ฌ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ ์ ํ ์ ๊ทผ์ ์ค์๋ก ๋ฐ๊พธ์ง ์๋๋ก ํ ์ ์์ต๋๋ค.
๊ธฐ๋ฅ์ ์์ ํ ์ผ๊ฑฐ๋ ๊บผ์ผ ํ๋ค๋ฉด ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ธ์(์: SSO ํ์ฑํ). ๋ฆฌ์ ๋์ง ์๋ ์ฉ๋(์: ์ต๋ ์ข์์, ํ๋ก์ ํธ ์)์ ํ๋๋ก ์ฒ๋ฆฌํ์ธ์. ์๋ณ ๋ด์ญ์ฒ๋ผ ์๊ฐ์ ๋ฐ๋ผ ์ฌ์ฉ๋์ ์ธก์ ํด์ผ ํ๋ค๋ฉด ์ฟผํฐ๋ฅผ ์ฌ์ฉํ๊ณ ๋ฆฌ์ ๊ท์น์ ๋ช ํํ ํ์ธ์.
ํ๋งค ๋ฐฉ์๊ณผ ์ ์ฉ ๋ฐฉ์์ ๋ง๋ ๋ฒ์๋ฅผ ์ ํํ์ธ์: SSO ๊ฐ์ ํญ๋ชฉ์ ๊ณ์ (์ด์นด์ดํธ) ์์ค, ํ๋ก์ ํธ ๊ฐ์ ๊ณต์ ์์์ ์ํฌ์คํ์ด์ค ์์ค, ํน์ ์ฌ์ฉ์์๊ฒ ํ๋งค๋๋ ๊ถํ์ ์ฌ์ฉ์ ์์ค์ผ๋ก ๋๋ ์์ ๋๋ค. ๊ถํ์ ์ฒดํฌํ ๋ ํญ์ ๋์ผํ ๋ฒ์๋ฅผ ์ฌ์ฉํด์ผ ํผ๋์ด ์์ต๋๋ค.
์ผ๋ฐ์ ์ธ ์ฐ์ ์์๋ ๊ณ ๊ฐ ์ค๋ฒ๋ผ์ด๋(override) โ ํ๋ ๊ฐ โ ์์คํ ๊ธฐ๋ณธ๊ฐ์ ๋๋ค. ํค๊ฐ ์ด๋์๋ ์์ผ๋ฉด ๊ฐ์ ๊ฒ์ฌ์์๋ ์ ๊ทผ์ ๊ฑฐ๋ถํ๊ณ , ๊ตฌ์ฑ ์ค๋ฅ๋ก ๋ก๊น ํ์ธ์. ์ด๋ ๊ฒ ํ๋ฉด ์์ธ๋ฅผ ์์ ํ๊ฒ ๋ถ์ฌํ๋ฉด์๋ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋ณต๊ตฌํ ์ ์์ต๋๋ค.
ํ๋ ๊ธฐ๋ณธ๊ฐ์ ํ ํ ์ด๋ธ์, ๊ณ ๊ฐ๋ณ ์์ธ๋ ๋์ผํ ํค์ ํ์ ์ ์ฌ์ฉํ๋ ๋ณ๋ ํ ์ด๋ธ์ ์ ์ฅํ์ธ์. ์ค๋ฒ๋ผ์ด๋๋ ์์/์ข ๋ฃ ๋ ์ง๋ฅผ ํฌํจํด ์๊ฐ ๋ฒ์๋ฅผ ๋๋ฉด ์ํฌํธ๊ฐ ์์ ์ ๊ทผ์ ๋ง๋ฃ ์์ด ๋ถ์ฌํ ์ ์์ต๋๋ค.
๊ณ ๊ฐ๋ณ๋ก ํด์๋ ๊ถํ(resolved entitlements)์ ์งง์ TTL๊ณผ ๋ฒ์ ๋ฒํธ๋ก ์บ์ํ์ธ์. ์ํฌํธ๊ฐ ํ๋ ํ ๋น์ด๋ ์ค๋ฒ๋ผ์ด๋๋ฅผ ๋ณ๊ฒฝํ๋ฉด ๋ฒ์ ์ ์ฌ๋ ค ์บ์๋ฅผ ๋น ๋ฅด๊ฒ ๋ฌดํจํํ๋ฉด ์ง์ฐ ์์ด ๋ณ๊ฒฝ์ด ๋ฐ์๋ฉ๋๋ค.
๋ณดํต ์ข์ ์ค๋ฒ๋ผ์ด๋์ ๋ง๋ฃ์ผ๊ณผ ๋ช ํํ ์ฌ์ ๋ฅผ ๋ฃ์ด ์์ฑํ์ธ์. ํ๋์ ์ง์ ํธ์งํ๋ฉด ํด๋น ํฐ์ด์ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ์ํฅ์ด ๊ฐ๋ฏ๋ก, ์ผํ์ฑ ์์ฒญ์ ์ค๋ฒ๋ผ์ด๋๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค. ์ ์ฉ ๊ฒฐ๊ณผ๋ ๊ณ ๊ฐ์ด ๋ณด๋ ๋ฐฉ์์ผ๋ก ๊ฒ์ฆํ์ธ์.
๋ณ๊ฒฝ์ ๋๊ฐ ํ๋์ง, ์ธ์ ํ๋์ง, ์ ํ๋์ง, ์ด์ ๊ฐ๊ณผ ์๊ฐ, ๋ง๋ฃ์ผ ๋ฑ์ ๊ธฐ๋กํ์ธ์. ์ค์์ ๋๋นํด โํ๋ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋๋๋ฆฌ๊ธฐโ ๋ฒํผ์ ์ ๊ณตํ๋ฉด ์๋ ์ ๋ฆฌ๊ฐ ํ์ ์์ด์ ๋น ๋ฅด๊ฒ ๋ณต๊ตฌํ ์ ์์ต๋๋ค.


