๋ด๋ถ ๋๊ตฌ์ฉ ๊ถํ ๋งคํธ๋ฆญ์ค ์ค๊ณ: ์ญํ ๊ณผ ๋ฒ์
๊ถํ ๋งคํธ๋ฆญ์ค ์ค๊ณ๋ ํ๋ฉด๊ณผ API๋ฅผ ๋ง๋ค๊ธฐ ์ ์ ์ญํ , ๋ฒ์, ์์ธ๋ฅผ ์ ๋ฆฌํด ์ฌ์์ ๊ณผ ์ ๊ทผ ์ค์๋ฅผ ์ค์ฌ์ค๋๋ค.

๊ถํ ๋งคํธ๋ฆญ์ค๊ฐ ํด๊ฒฐํ๋ ๋ฌธ์
๋ด๋ถ ๋๊ตฌ๋ ํ์ด ์ผ์์ ์ผ๋ก ๋น์ฆ๋์ค๋ฅผ ์ด์ํ ๋ ์ฌ์ฉํ๋ ์ํํธ์จ์ด์ ๋๋ค. ๊ด๋ฆฌ์ ํจ๋, ์ด์ ๋์๋ณด๋, ๊ณ ๊ฐ ์ง์ ์ฝ์, ์ฌ๋ฌด ๊ฒํ ํ๋ฉด, ์น์ธยท๋ฐ์ดํฐ ์์ ยท๊ณ ๊ฐ ๋์์ ๋๋ ์์ ์ฑ๋ค์ด ์ฌ๊ธฐ์ ํฌํจ๋ฉ๋๋ค.
์ด๋ฐ ๋๊ตฌ๋ค์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ์ ๊ฐ๋ ฅํ ๋์์ ๋ค๋ฃน๋๋ค. ์ง์ ๋ด๋น์๋ ๊ณ ๊ฐ ํ๋กํ์ ๋ด์ผ ํ์ง๋ง ์ ์ฒด ๊ฒฐ์ ์ ๋ณด๋ฅผ ๋ณด์ง ๋ชปํด์ผ ํฉ๋๋ค. ์ฌ๋ฌด ๋ด๋น์๋ ์ธ๊ธ๊ณ์ฐ์๋ฅผ ๋ด๋ณด๋ผ ์๋ ์์ง๋ง ๊ณ์ ์ค์ ์ ๋ฐ๊พธ๋ฉด ์ ๋ฉ๋๋ค. ์ด์ ๋ฆฌ๋๋ ์์ ์ ์ง์ญ์์ ๋ ๊ฐ์ง๋ฅผ ๋ชจ๋ ํ ์ ์์์ง ๋ชจ๋ฆ ๋๋ค.
๋ด๋ถ ๋๊ตฌ๋ ๊ณ์ธต์ ์ผ๋ก ์ฑ์ฅํ๋ฉด์ ๊ถํ์ด ๊ธ๋ฐฉ ๋ณต์กํด์ง๋๋ค. ์ ์ญํ ์ด ์๊ธฐ๊ณ ๊ธฐ์กด ์ญํ ์ด ๋๋๋ฉฐ ์ผํ์ฑ ์์ธ๊ฐ ๋์ด๋ฉ๋๋ค: โMaria์๊ฒ ํ๋ถ ๊ถํ ํ์ฉโ, โ๊ณ์ฝ์ง์ ๋ ธํธ ์ ๊ทผ ์ฐจ๋จโ, โํ ๋ฆฌ๋๋ ์ต๋ $500๊น์ง๋ง ์น์ธโ. ๊ท์น์ด ์ฌ๋ ๋จธ๋ฆฟ์(๋๋ ํฉ์ด์ง ํฐ์ผ)์๋ง ์์ผ๋ฉด ํ๋ฉด๊ณผ API ์๋ํฌ์ธํธ๊ฐ ์ผ์นํ์ง ์๊ฒ ๋๊ณ , ๋ณด์ ๊ตฌ๋ฉ์ด ์๊น๋๋ค.
๊ถํ ๋งคํธ๋ฆญ์ค ์ค๊ณ๋ ๋๊ฐ ์ด๋ค ๋ฐ์ดํฐ์ ์ด๋ค ์กฐ๊ฑด์ผ๋ก ๋ฌด์์ ํ ์ ์๋์ง์ ๋ํ ๋จ์ผ ๊ณต์ ์ง๋๋ฅผ ๋ง๋ญ๋๋ค. ์ด ๋งคํธ๋ฆญ์ค๋ UI ๊ฒฐ์ ์ ์ํ ์ง์ค์ ๊ทผ์(์ด๋ค ํ๋ฉดยท๋ฒํผยทํ๋๋ฅผ ๋ณด์ฌ์ค์ง)์ด๋ฉฐ ๋ฐฑ์๋ ๊ฒฐ์ (์ฌ์ฉ์๊ฐ UI๋ฅผ ์ฐํํ๋๋ผ๋ ์๋ฒ๊ฐ ์ค์ ๋ก ํ์ฉํ๋ ๊ฒ)์ ๊ทผ๊ฑฐ๊ฐ ๋ฉ๋๋ค.
์ด๋ ๊ฐ๋ฐ์ ์ ์ฉ ๋ฌธ์๊ฐ ์๋๋๋ค. ์ข์ ๋งคํธ๋ฆญ์ค๋ ์ ํ, ์ด์, ๊ฐ๋ฐ์๊ฐ ํจ๊ป ํฉ์ํ ์ ์๋ ์ค๋ฌด ๋ฌธ์์ ๋๋ค. AppMaster ๊ฐ์ ๋ ธ์ฝ๋ ํ๋ซํผ์ผ๋ก ๋น๋ํ ๋๋ ๋งคํธ๋ฆญ์ค๋ ํ์์ ์ ๋๋ค. ์ญํ ์ ์ค์ ํ๊ณ , ๋ฆฌ์์ค๋ฅผ ์ ์ํ๋ฉฐ, ์๊ฐ์ ํ๋ฉด๊ณผ ์์ฑ๋ ์๋ํฌ์ธํธ๋ฅผ ์ผ์น์ํค๋ ์ง์นจ์ด ๋ฉ๋๋ค.
๊ฐ๋จํ ๋งคํธ๋ฆญ์ค๋ ๋ค์์ ๋์ต๋๋ค:
- ๋น๋ ์ ์ ๊ท์น์ ๋ช ํํ ํจ
- ํน์ ์ฌ๋ก๋ก ์ธํ ํผ๋ ๊ฐ์
- UI์ API ๊ถํ ์ ํฉ์ฑ ์ ์ง
- ์ถํ ์ก์ธ์ค ๋ณ๊ฒฝ์ ์ถ์ ๊ฐ๋ฅํ๊ฒ ํจ
ํต์ฌ ์ฉ์ด: ์ญํ (roles), ๋ฆฌ์์ค(resources), ์ก์ (actions), ๋ฒ์(scopes), ์์ธ(exceptions)
์ข์ ๊ถํ ๋งคํธ๋ฆญ์ค ์ค๊ณ๋ ๊ณตํต๋ ์ฉ์ด์์ ์์ํฉ๋๋ค. ํ์ด ์ด ์ฉ์ด๋ค์ ๋์ผํ๊ฒ ์ฌ์ฉํ๋ฉด ๋์ค์ ๊ท์น์ด ๋ณต์กํด์ง๋ ๊ฒ์ ํผํ ์ ์์ต๋๋ค.
A role(์ญํ ) ์ ๋ณดํต ๊ฐ์ ์ ๊ทผ์ด ํ์ํ ์ฌ๋๋ค์ ์ง๋ฌด ๊ธฐ๋ฐ ๊ทธ๋ฃน์ ๋๋ค. Support, Finance, Ops, Manager ๋ฑ์ด ์์์ ๋๋ค. ์ญํ ์ ๋๊ตฐ๊ฐ์ ์ง๊ธ๋ณด๋ค๋ ์ผ์ ์ ๋ฌด๋ฅผ ์ค๋ช ํด์ผ ํฉ๋๋ค. ํ ์ฌ๋์ด ์ฌ๋ฌ ์ญํ ์ ๊ฐ์ง ์ ์์ง๋ง ๋๋ฌผ๊ฒ ์ ์งํ์ธ์.
A resource(๋ฆฌ์์ค) ๋ ๋ณดํธํ๋ ค๋ ๋์์ ๋๋ค. ๋ด๋ถ ๋๊ตฌ์์๋ ๊ณ ๊ฐ, ํฐ์ผ, ์ธ๊ธ๊ณ์ฐ์, ๋ฆฌํฌํธ, ํตํฉ, ์ค์ ๋ฑ์ด ํํ ๋ฆฌ์์ค์ ๋๋ค. ๋ฆฌ์์ค๋ ๋ช ์ฌ๋ก ์ด๋ฆ์ ๋ถ์ด์ธ์. ์ด๋ ๊ฒ ํ๋ฉด ๊ท์น์ ํ๋ฉด๊ณผ API ์๋ํฌ์ธํธ๋ก ์ฎ๊ธธ ๋ ๋์์ด ๋ฉ๋๋ค.
An action(์ก์ ) ์ ๋ฆฌ์์ค์ ๋ํด ๋๊ตฐ๊ฐ๊ฐ ํ ์ ์๋ ๋์์ ๋๋ค. ๋์ฌ๋ฅผ ์ผ๊ด๋๊ฒ ์ ์งํ๋ฉด ๋งคํธ๋ฆญ์ค๊ฐ ์ฝ๊ธฐ ์ฌ์์ง๋๋ค. ์ผ๋ฐ์ ์ธ ์ก์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- view
- create
- edit
- delete
- approve
- export
A scope(๋ฒ์) ๋ โ์ด๋ค ๋ ์ฝ๋์ธ๊ฐ?โ์ ๋ตํฉ๋๋ค. ๋ฒ์๋ ์ถ๊ฐ ์ญํ ์ ๋ง๋ค์ง ์๊ณ ์์ ํ ์ ๊ทผ๊ณผ ์ํํ ์ ๊ทผ์ ๊ตฌ๋ถํฉ๋๋ค. ํํ ๋ฒ์๋:
- own (๋ณธ์ธ์ด ์์ฑํ๊ฑฐ๋ ํ ๋น๋ ๋ ์ฝ๋)
- team (์์ ํ)
- region (์ง์ญ)
- all (๋ชจ๋ ๊ฒ)
An exception(์์ธ) ์ ์ ์์ ์ธ ์ญํ ยท๋ฒ์ ๊ท์น์ ๊นจ๋ ์ค๋ฒ๋ผ์ด๋์ ๋๋ค. ์์ธ๋ ์์(๊ต๋ ๊ทผ๋ฌด๋ฅผ ์ปค๋ฒ), ์ฌ์ฉ์๋ณ(ํน์ ์ ๋ฌธ๊ฐ๊ฐ ํ๋์ ์ถ๊ฐ ์ก์ ํ์), ๋ ์ฝ๋๋ณ(ํน์ VIP ๊ณ ๊ฐ ๋ ์ฝ๋ ์ฐจ๋จ)์ผ ์ ์์ต๋๋ค. ์์ธ๋ ํต์ ๋ ๋ถ์ฑ๋ก ์ทจ๊ธํ์ธ์: ๋๊ฐ ์น์ธํ๋์ง, ์ ํ์ํ์ง, ์ธ์ ๋ง๋ฃ๋๋์ง ๊ธฐ๋กํ์ญ์์ค.
์์: Support ๋ด๋น์๋ ๋ฒ์ "team"์ผ๋ก "ํฐ์ผ ๋ณด๊ธฐ" ๊ถํ์ ์์ง๋ง, ํ ์ฌ๊ฑด ์กฐ์ฌ ๋๋ฌธ์ ๋จ๊ธฐ๊ฐ "ํฐ์ผ ๋ด๋ณด๋ด๊ธฐ" ์์ธ๋ฅผ ๋ฐ์ ์ ์์ต๋๋ค. AppMaster๋ก ๋ง๋ ๋๊ตฌ์์๋ ์ญํ ยท๋ฆฌ์์คยท์ก์ ยท๋ฒ์๋ฅผ ์ฒ์๋ถํฐ ์ผ๊ด๋๊ฒ ์ด๋ฆ ์ง์ผ๋ฉด ์ด๋ฐ ๊ท์น์ ์ ์งํ๊ธฐ๊ฐ ํจ์ฌ ์ฌ์์ง๋๋ค.
๋งคํธ๋ฆญ์ค๋ฅผ ๊ทธ๋ฆฌ๊ธฐ ์ ์ ๋ด๋ ค์ผ ํ ๊ฒฐ์ ๋ค
๋จผ์ ๋ฌด์์ ๋ณดํธํ๋์ง ํฉ์ํ์ธ์. ๋ด๋ถ ๋๊ตฌ์ ์์ญ์ ํ๋ฉด์ด ์๋๋ผ ๋ฆฌ์์ค๋ก ๋์ดํ์ธ์. ํ๋์ ํ๋ฉด์ "์ฃผ๋ฌธ(Orders)", "ํ๋ถ(Refunds)", "๊ณ ๊ฐ(Customers)"์ด ๊ฐ์ด ๋ณด์ฌ๋, ๊ฐ ํญ๋ชฉ์ ์๋ก ๋ค๋ฅธ ๋ฆฌ์์ค์ด๋ฉฐ ์ํ๋๊ฐ ๋ค๋ฆ ๋๋ค.
๊ถํ์ ์ฐ๊ธฐ ์ ์ ์ก์ ๋์ฌ ํ์ค์ ์ ํ์ธ์. ์์ ๋จ์ด ์ฐจ์ด๊ฐ ๋์ค์ ์ค๋ณต ๊ท์น์ ๋ง๋ญ๋๋ค(์: edit vs update, remove vs delete, view vs read). ์งง๊ณ ๊ณตํต๋ ์งํฉ์ ๊ณจ๋ผ ๋ชจ๋ ๋ฆฌ์์ค์ ์ผ๊ด๋๊ฒ ์ฌ์ฉํ์ธ์. ๋๋ถ๋ถ์ ๋ด๋ถ ๋๊ตฌ์๋ view, create, update, delete, approve, export ๊ฐ์ ๊ฐ๋จํ ์งํฉ์ด ์ถฉ๋ถํฉ๋๋ค.
๋ฒ์๋ ํ์ฌ์ ๊ตฌ์กฐ์ ๋ง์์ผ ํฉ๋๋ค. ๋๋ฌด ๋ง์ ๋ฒ์๋ ๋งคํธ๋ฆญ์ค๋ฅผ ์ฝ๊ธฐ ์ด๋ ต๊ฒ ํ๊ณ , ๋๋ฌด ์ ์ผ๋ฉด ์์ธ๊ฐ ๋์ด๋ฉ๋๋ค. ์กฐ์ง ๊ตฌ์กฐ์ ๋ง๋ ์์ ์งํฉ์ ๋ชฉํ๋ก ํ์ธ์. ์:
- own (๋ณธ์ธ์ด ์์ฑํ ๋ ์ฝ๋)
- team (ํ ๋ ์ฝ๋)
- location (์ง์ ๋๋ ์ง์ญ)
- all (๋ชจ๋ ๋ ์ฝ๋)
- none (์ ๊ทผ ๋ถ๊ฐ)
๋ํ "์์(no)"์ ๋ํ ๋ช ํํ ๊ท์น์ ๊ฒฐ์ ํ์ธ์. ๋ช ์์ ์ผ๋ก ๊ธ์งํ ๊ฒ์ธ์ง, ์๋ฌต์ ์ผ๋ก ๊ฑฐ๋ถํ ๊ฒ์ธ์ง ์ ํด์ผ ํฉ๋๋ค. ๋ช ์์ ํ๊ฐ ์ธ์๋ ๊ฑฐ๋ถ(implicit deny)๋ ๋ ์์ ํ๊ณ ๋จ์ํฉ๋๋ค. ๋ฐ๋ฉด ๊ด๋ฒ์ํ ์ ๊ทผ์ด ํ์ํ ์ํฉ์์๋ ํน์ ์ก์ ์ ๋ช ์์ ์ผ๋ก ๊ธ์ง(explicit forbid)ํ๋ ๊ฒ์ด ์ ์ฉํฉ๋๋ค(์: "Finance๋ ๋ชจ๋ ์ธ๊ธ๊ณ์ฐ์์ ์ ๊ทผํ์ง๋ง ์ญ์ ๋ ๊ธ์ง").
๋ง์ง๋ง์ผ๋ก ์ปดํ๋ผ์ด์ธ์ค ๋ฏผ๊ฐ ์ก์ ์ ์ด๊ธฐ์ ํ์ํ์ธ์. ๋ด๋ณด๋ด๊ธฐ, ์ญ์ , ์ง๊ธ, ์ญํ ๋ณ๊ฒฝ, ๊ฐ์ธ ๋ฐ์ดํฐ ์ ๊ทผ ๋ฑ์ ์ถ๊ฐ ๊ฒํ ยท๋ก๊น ยท์น์ธ ์ ์ฐจ๊ฐ ํ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ง์ ๋ฆฌ๋๋ ๊ณ ๊ฐ ํ๋กํ์ ์ ๋ฐ์ดํธํ ์ ์์ง๋ง, ์ง๊ธ(payout) ์์ฑ์ด๋ ๋ด๋ณด๋ด๊ธฐ(export)๋ ์ฌ๋ฌด ์น์ธ ํ์๋ง ๊ฐ๋ฅํ๋๋ก ํ ์ ์์ต๋๋ค.
AppMaster๋ก ๋น๋ํ๋ฉด ์ด๋ฌํ ๊ฒฐ์ ์ ์ดํ ๋ฐฑ์๋ ์๋ํฌ์ธํธ์ Business Process ๋ก์ง์ ๊น๋ํ๊ฒ ๋งคํ๋์ง๋ง, ๋จผ์ ๋งคํธ๋ฆญ์ค๊ฐ ๋ช ํํด์ผ ํฉ๋๋ค.
๋จ๊ณ๋ณ: ๊ถํ ๋งคํธ๋ฆญ์ค๋ฅผ ์ฒ์๋ถํฐ ๋ง๋๋ ๋ฐฉ๋ฒ
์ฌ๋๋ค์ด ํ๋ ์ผ(์ ๋ฌด)์์ ์์ํ์ธ์. ํ๋ฉด์ผ๋ก ์์ํ๋ฉด ์ค๋์ UI๋ฅผ ๋ณต์ ํ๊ฒ ๋๊ณ ์ค์ ๊ท์น(์: ๋๊ฐ ํ๋ถ์ ์น์ธํ ์ ์๋์ง, ๋๋ ๋ฝ๋ ๊ณ ๊ฐ ๋ ์ฝ๋๋ฅผ ๋๊ฐ ํธ์งํ ์ ์๋์ง)์ ๋์น๊ฒ ๋ฉ๋๋ค.
๊ถํ ๋งคํธ๋ฆญ์ค ์ค๊ณ๋ ์์ ์ ์ ๊ทผ์ผ๋ก ๋งคํํ ์ง๋์ฒ๋ผ ๋ค๋ฃจ๊ณ , ๊ทธ ํ ์ฑ์ผ๋ก ์ ํํ๋ ๋ฐฉ์์ด ์ค์ฉ์ ์ ๋๋ค.
์ค๋ฌด์ ๊ตฌ์ถ ์์
-
์ ๋ฌด๋ฅผ ํ์ดํ ์ธ์ด๋ก ๋์ดํ์ธ์. ์: "ํ๋ถ ์ฒ๋ฆฌํ๊ธฐ", "๊ณ ๊ฐ ์ด๋ฉ์ผ ๋ณ๊ฒฝ", "์ง๋๋ฌ ์ธ๊ธ๊ณ์ฐ์ ๋ด๋ณด๋ด๊ธฐ". ์งง๊ณ ํ์ค์ ์ผ๋ก ์ ์ผ์ธ์.
-
์ ๋ฌด๋ฅผ ๋ฆฌ์์ค์ ์ก์ ์ผ๋ก ๋ฐ๊พธ์ธ์. ๋ฆฌ์์ค๋ ๋ช ์ฌ(Invoice, Ticket, Customer), ์ก์ ์ ๋์ฌ(view, create, edit, approve, export). ๊ฐ ๋ฆฌ์์ค์ ๋ํ ์ค๋(์์ธ์ ๊ฒฝ๊ณ ์ฌ๋ก๋ฅผ ์ค๋ช ํ ์ ์๋ ๋ด๋น์)๋ฅผ ์ง์ ํ์ธ์.
-
์์ ์ ์ธ ํ์ ๊ธฐ๋ฐ์ผ๋ก ์ญํ ์ ์ ์ํ์ธ์. Support, Finance, Operations, Team Lead ๊ฐ์ ๊ทธ๋ฃน์ ์ฌ์ฉํ์ธ์. ์ง๊ธ(Senior, Junior)์ฒ๋ผ ์์ฃผ ๋ฐ๋๋ ์ด๋ฆ์ ๊ฐ๋ฅํ ํผํ์ธ์.
-
๊ฐ ์ญํ ์ด ์ ๋ฌด๋ฅผ ์๋ฃํ๋ ๋ฐ ํ์ํ ์ต์ ์ ๊ทผ์ ๋งคํธ๋ฆญ์ค์ ๊ธฐ์ ํ์ธ์. ์๋ฅผ ๋ค์ด Support๋ ์ง๋ฌธ ์๋๋ฅผ ์ํด ์ธ๊ธ๊ณ์ฐ์๋ง ๋ณผ ํ์๊ฐ ์๋ค๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก "export" ๊ถํ์ ์ฃผ์ง ๋ง์ธ์. ๊ถํ์ ์ถ๊ฐํ๋ ๊ฑด ๋์ค์ ๊ฐ๋ฅํ์ง๋ง, ์ ๊ฑฐํ๋ฉด ์ต๊ด์ด ๊นจ์ง ์ ์์ต๋๋ค.
-
๋ฒ์๋ ํ์ํ ๊ณณ์๋ง ์ถ๊ฐํ์ธ์. ๋จ์ผ "edit" ๊ถํ ๋์ "edit own", "edit assigned", "edit all" ๊ฐ์ ๋ฒ์๋ฅผ ๋ช ์ํ๋ฉด 50๊ฐ์ ์ญํ ์ ๋ง๋ค์ง ์๊ณ ๋ ๊ท์น์ ๋ช ํํ ํ ์ ์์ต๋๋ค.
์์ธ๋ ๋งคํธ๋ฆญ์ค์ ๋ถ๋ฆฌ๋ ํ ์ด๋ธ์ ๊ธฐ๋กํ์ธ์. ๊ฐ ์์ธ์๋ ๋ช ํํ ์ด์ (์ปดํ๋ผ์ด์ธ์ค, ์ฌ๊ธฐ ์ํ, ์ง๋ฌด ๋ถ๋ฆฌ)์ ์น์ธ ๋ด๋น์๊ฐ ํ์ํ๋ฉฐ ๋ง๋ฃ์ผ์ ๋์ธ์.
์ด ์์ ์ด ๋๋๋ฉด AppMaster ๊ฐ์ ๋๊ตฌ๋ก ๋งคํธ๋ฆญ์ค๋ฅผ ๋ณดํธ๋ ์๋ํฌ์ธํธ์ ๊ด๋ฆฌ์ ํ๋ฉด์ผ๋ก ์ ํํ๊ธฐ๊ฐ ํจ์ฌ ์ฌ์์ง๋๋ค.
๋งคํธ๋ฆญ์ค๋ฅผ ์ฝ๊ธฐ ์ฝ๊ฒ ๊ตฌ์กฐํํ๋ ๋ฐฉ๋ฒ
๋งคํธ๋ฆญ์ค๋ ์ฌ๋๋ค์ด ๋น ๋ฅด๊ฒ ์ฝ์ ์ ์์ ๋๋ง ์ ์ฉํฉ๋๋ค. ์ ๋ก ๊ฐ๋ํ ๊ฑฐ๋ํ ํ๊ฐ ๋๋ฉด ํ์ ์ฌ์ฉ์ ์ค๋จํ๊ณ ๊ถํ์ ์๋ ์๋์์ ๋ฒ์ด๋ฉ๋๋ค.
๋จผ์ ๋๋ฉ์ธ๋ณ๋ก ๋งคํธ๋ฆญ์ค๋ฅผ ๋ถ๋ฆฌํ์ธ์. ๋ชจ๋ ๊ฒ์ ํ ์ํธ์ ๋ฃ์ง ๋ง๊ณ Customers, Billing, Content์ฒ๋ผ ๋น์ฆ๋์ค ์์ญ๋ณ๋ก ํญ์ ๋๋์ธ์. ๋๋ถ๋ถ์ ์ญํ ์ ๋ช๋ช ๋๋ฉ์ธ๋ง ๋ค๋ฃจ๋ฏ๋ก ๊ฒํ ๊ฐ ๋นจ๋ผ์ง๊ณ ์ค์๋ก ๋ณ๊ฒฝํ ๊ฐ๋ฅ์ฑ์ด ์ค์ด๋ญ๋๋ค.
ํญ ์ ๋ฐ์ ๊ฑธ์ณ ์ผ๊ด๋ ๋ช
๋ช
ํจํด์ ์ฌ์ฉํ์ธ์. Resource.Action.Scope ๊ฐ์ ๋จ์ํ ํ์์ ๊ฐ ๊ถํ์ด ๋ฌด์์ ์๋ฏธํ๋์ง ํ๋์ ์ ์ ์๊ฒ ํ๊ณ , ๊ฐ์ ์๋ฏธ์ธ๋ฐ๋ ์๋ก ๋ค๋ฅด๊ฒ ๋ณด์ด๋ ์ค๋ณต์ ๋ฐฉ์งํฉ๋๋ค. ์: Invoice.Approve.Department๋ Customer.Edit.Own์ฒ๋ผ ์ฝํ๋๋ค.
์ฃ์ง ์ผ์ด์ค๊ฐ ์๊ธฐ๋ฉด ์ ์ญํ ์ ๋ง๋ค๊ณ ์ถ์ ์ ํน์ ์ฐธ์ผ์ธ์. ์ ์์ ์งง์ ๋ฉ๋ชจ๋ก ์์ธ์ ์ ์ฉ ์์ ์ ์ ์ผ์ธ์. ์: Support๋ ๊ณ ๊ฐ ํ์ธ ํ์๋ง ์ธ๊ธ๊ณ์ฐ์๋ฅผ ๋ณผ ์ ์๋ค. ๋ฉ๋ชจ๋ ํ์ํ๋ค๋ฉด ์ถ๊ฐ UI ๋จ๊ณ๋ฅผ ๊ฐ๋ฆฌํฌ ์ ์๊ณ , ์ญํ ๋ชจ๋ธ์ ๋ฐ๊พธ์ง ์์ต๋๋ค.
๊ณ ์ํ ๊ถํ์ ๋ฆฌ๋ทฐ ์ ๋์ ๋๊ฒ ํ์ํ์ธ์. ํ๋ถ, ์น์ธ, ๋ด๋ณด๋ด๊ธฐ, ๋ฐ์ดํฐ ์ญ์ ๊ฐ์ ์ก์ ์ด ์ฌ๊ธฐ์ ํด๋นํฉ๋๋ค. ์ ์ ํ์ํ๊ณ ํ์ํ ์ถ๊ฐ ํ์ธ ์ ์ฐจ(์: 2์ธ ์น์ธ, ๋งค๋์ ํ์ธ)๋ฅผ ์ ์ด ๋์ธ์.
๋งคํธ๋ฆญ์ค๋ฅผ ์ ์ง๋ณด์ ๊ฐ๋ฅํ๊ฒ ํ๋ ค๋ฉด ๋ค์์ ๋ฒ์ ๊ด๋ฆฌํ์ธ์:
- v1, v2 ๋ฑ๊ณผ ๋ ์ง
- ์ค๋(ํ ๋ช ์ ์ฑ ์์)
- ๊ฐ๋จํ ๋ณ๊ฒฝ ์์ฝ
- ๋ณ๊ฒฝ์ ์ด๋ฐํ ์ด์ (์ ์ํฌํ๋ก์ฐ, ๊ฐ์ฌ ๊ฒฐ๊ณผ ๋ฑ)
๋งคํธ๋ฆญ์ค๊ฐ ์์ ๋๋ฉด AppMaster์์ ํ๋ฉด๊ณผ ์๋ํฌ์ธํธ๋ฅผ ๋น๋ํ๊ธฐ๊ฐ ํจ์ฌ ์ฝ์ต๋๋ค. ๋ชจ๋ ๋ฒํผ๊ณผ API ์ก์ ์ด ๋ช ํํ ๊ถํ ์ด๋ฆ์ ๋งคํ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋งคํธ๋ฆญ์ค๋ฅผ ํ๋ฉด๊ณผ ์๋ํฌ์ธํธ๋ก ์ ํํ๊ธฐ
๊ถํ ๋งคํธ๋ฆญ์ค๋ API์ UI ๋ ๊ณณ์์ ์ค์ ๊ท์น์ด ๋ ๋๋ง ์ ์ฉํฉ๋๋ค. ๋งคํธ๋ฆญ์ค์ ๊ฐ ๋ฆฌ์์ค(์: Tickets, Invoices, Users)๋ฅผ ์๋ํฌ์ธํธ ๊ทธ๋ฃน์ผ๋ก ๋ค๋ฃจ์ธ์. ์ก์ ์ ๋งคํธ๋ฆญ์ค์ ๋์ฌ์ ์ผ์นํ๊ฒ ์ ์งํฉ๋๋ค: view, create, edit, approve, export, delete.
API ์ธก๋ฉด์์๋ ๋ชจ๋ ์์ฒญ์์ ๊ถํ์ ๊ฐ์ ํ์ธ์. UI ๊ฒ์ฌ๋ง์ผ๋ก๋ ๋ณด์์ด ๋์ง ์์ต๋๋ค. ์จ๊ฒจ์ง ๋ฒํผ์ ์ง์ API ํธ์ถ์ ๋ง์ง ๋ชปํฉ๋๋ค.
๋งคํธ๋ฆญ์ค๋ฅผ API ๊ถํ์ผ๋ก ๋ฒ์ญํ๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ๊ถํ ์ด๋ฆ์ ์ผ๊ด๋๊ฒ ์ง์ ํ๊ณ ์ก์ ์ด ๋ฐ์ํ๋ ๊ฒฝ๊ณ(boundary)์ ๋ถ์ฐฉํ๋ ๊ฒ์ ๋๋ค:
- tickets:view, tickets:edit, tickets:export
- invoices:view, invoices:approve, invoices:delete
- users:view, users:invite
๊ทธ๋ฐ ๋ค์ ๋์ผํ ๊ถํ ์ด๋ฆ์ UI ๊ฒ์ดํธ(๋ฉ๋ด ํญ๋ชฉ, ํ์ด์ง ์ ๊ทผ, ๋ฒํผ, ํ๋)์๋ ์ฌ์ฉํ์ธ์. ์: Support ๋ด๋น์๋ ํฐ์ผ ๋ชฉ๋ก์ ๋ณด๊ณ ํฐ์ผ์ ์ด ์ ์์ง๋ง, invoices:approve ๊ถํ์ด ์์ผ๋ฉด "ํ๋ถ" ํ๋๋ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ํ์๋ฉ๋๋ค.
๋ชฉ๋ก(list)๊ณผ ์์ธ(detail) ์ ๊ทผ์ ๊ตฌ๋ถํ๋ ๋ฐ ์ฃผ์ํ์ธ์. ํ์ ์ด๋ค ํญ๋ชฉ์ด ์กด์ฌํ๋ค๋ ๊ฒ๋ง ์์์ผ ํ๊ณ ๋ ์ฝ๋ ์์ฒด๋ ๋ณด์ง ๋ชปํด์ผ ํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ ํ๋ ์ปฌ๋ผ์ผ๋ก ๋ชฉ๋ก ๊ฒฐ๊ณผ๋ฅผ ํ์ฉํ๊ณ , ์์ธ ๋ณด๊ธฐ๋ ๋ณ๋์ ๊ถํ ๋๋ "๋ณธ์ธ ํ ๋น(assigned to me)" ๊ฐ์ ๋ฒ์ ์ฒดํฌ๋ฅผ ์๊ตฌํ์ธ์. ๋ฏธ๋ฆฌ ๊ฒฐ์ ํ์ง ์์ผ๋ฉด ๋ชฉ๋ก ํ๋ฉด์์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๊ฐ ์ ์ถ๋ ์ ์์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก ๊ฐ์ฌ ๋ก๊น (audit logging)์ ์ค์ํ ์ก์ ์ ๋งคํํ์ธ์. ๋ด๋ณด๋ด๊ธฐ, ์ญ์ , ์น์ธ, ์ญํ ๋ณ๊ฒฝ, ๋ฐ์ดํฐ ๋ค์ด๋ก๋๋ ๋๊ฐ, ๋ฌด์์, ์ธ์ , ์ด๋ค ๋์์ ๋ํด ํ๋์ง ๊ธฐ๋กํด์ผ ํฉ๋๋ค. AppMaster๋ก ๋น๋ํ๋ค๋ฉด ์๋ํฌ์ธํธ ๋ก์ง๊ณผ Business Process ํ๋ฆ์์ ๊ฐ์ ๊ท์น์ด ์ก์ ๊ณผ ๊ฐ์ฌ ํญ๋ชฉ์ ๋์์ ํธ๋ฆฌ๊ฑฐํ๋๋ก ๋ฐ์ํ ์ ์์ต๋๋ค.
ํํ ์ค์์ ํจ์
๊ถํ ๋งคํธ๋ฆญ์ค๋ฅผ ๋ง์น๋ ๊ฐ์ฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ UI๋ฅผ ๋ชจ๋ธ๋งํ๋ ๊ฒ์ ๋๋ค. ํ๋์ ํ๋ฉด์ ์ฌ๋ฌ ํญ๋ชฉ์ด ํ์๋ ์ ์๊ณ ๊ฐ์ ํญ๋ชฉ์ด ์ฌ๋ฌ ํ๋ฉด์ ๋ํ๋ ์ ์์ต๋๋ค. ํ๋ฉด๋ง๋ค ๋ณ๋์ ๋ฆฌ์์ค๋ก ๋ชจ๋ธ๋งํ๋ฉด ๊ท์น์ด ์ค๋ณต๋๊ณ ์ฃ์ง ์ผ์ด์ค๋ฅผ ๋์น๋ฉฐ ๋ช ๋ช ๊ท์น์ ๋ํด ๋ ผ์๋ง ํ๊ฒ ๋ฉ๋๋ค.
๋ ๋ค๋ฅธ ํํ ํจ์ ์ ์ญํ ํ์ฐ(role sprawl)์ ๋๋ค. ํ์ ๊ณ์ ์ญํ ์ ์ถ๊ฐํฉ๋๋ค(์: Support Level 1, Support Level 2, Support Manager ๋ฑ). ๋ ์์ ์ญํ ์งํฉ๊ณผ ๋ช ํํ ๋ฒ์๊ฐ ์์ผ๋ฉด ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค. "own team", "assigned region", "accounts you manage" ๊ฐ์ ๋ฒ์๊ฐ ์ ์ญํ ๋ณด๋ค ์ฐจ์ด๋ฅผ ๋ ์ ์ค๋ช ํฉ๋๋ค.
์ค์ ๋ด๋ถ ๋๊ตฌ์์ ์์ฃผ ๋ณด์ด๋ ๋ช ๊ฐ์ง ์ค์:
- "view"์ "edit"๋ง ์ ์ํ๊ณ export, bulk edit, refund, impersonate, "change owner" ๊ฐ์ ์ก์ ์ ์์.
- ์์ธ๋ฅผ ์ฅ๊ธฐ ํจ์น๋ก ์ฌ์ฉํจ(์: "Sam์๊ฒ 1์ฃผ์ผ ๋์ Finance ์ ๊ทผ ๋ถ์ฌ"). ์ผํ์ฑ ๊ถํ์ด ์๊ตฌํ๋๊ธฐ ์ฝ์ต๋๋ค.
- UI์์ ๋ฒํผ์ ์จ๊ธฐ๊ณ ์์คํ ์ด ์์ ํ๋ค๊ณ ๊ฐ์ ํจ. API๋ ์ฌ์ ํ ์์ฒญ์ ๊ฑฐ๋ถํด์ผ ํฉ๋๋ค.
- ๋๊ตฐ๊ฐ์ ๋ฒ์๊ฐ ๋ฐ๋ ๋(ํ ์ด๋, ์ง์ญ ๋ณ๊ฒฝ) ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ง ๊ฒฐ์ ํ์ง ์์. ๊ถํ์ ์์ธก ๊ฐ๋ฅํ๊ฒ ์ ๋ฐ์ดํธ๋์ด์ผ ํฉ๋๋ค.
- "admin"์ ๋ฌด์ ํ์ผ๋ก ์ทจ๊ธํจ. ๊ด๋ฆฌ์๋ ์ข ์ข ๋ถ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค(์: "์ฌ์ฉ์ ๊ด๋ฆฌ ๊ฐ๋ฅ"ํ์ง๋ง "์ง๊ธ ์น์ธ ๋ถ๊ฐ").
์์ธ๋ ํน๋ณํ ์ฃผ์ํด์ผ ํฉ๋๋ค. ์์ ์ํฉ์ ์ ์ฉํ์ง๋ง ๋ง๋ฃ๋๊ฑฐ๋ ๊ฒํ ๋์ด์ผ ํฉ๋๋ค. ์์ธ๊ฐ ๊ณ์ ๋๋ฉด ์ญํ ์ด๋ ๋ฒ์ ๋งคํ์ด ๊น๋ํ์ง ์๋ค๋ ์ ํธ์ ๋๋ค.
๊ฐ๋จํ ์: ์ง์(Support)๊ณผ ์ฌ๋ฌด(Finance) ๋๊ตฌ์์ Support๋ ๊ณ ๊ฐ ํ๋กํ์ ๋ณด๊ณ ํฐ์ผ์ ๋ง๋ค ์ ์๊ณ , Finance๋ ์ธ๊ธ๊ณ์ฐ์๋ฅผ ๋ด๋ณด๋ด๊ณ ํ๋ถ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ํ์ด์ง ๋ณด์๋ง ํ๋ฉด Support ๋ด๋น์๊ฐ ์ง์ export ์๋ํฌ์ธํธ๋ฅผ ํธ์ถํด ๋ฒ๋ฆด ์ ์์ต๋๋ค. ์ปค์คํ ์ฝ๋๋ก ๋น๋ํ๋ AppMaster ๊ฐ์ ํ๋ซํผ์ผ๋ก ๋ฐฑ์๋๋ฅผ ์์ฑํ๋ , ๊ท์น์ UI๋ฟ ์๋๋ผ ์๋ฒ ์ธก์ ์กด์ฌํด์ผ ํฉ๋๋ค.
๋น๋ํ๊ธฐ ์ ์ ๋น ๋ฅด๊ฒ ์ ๊ฒํ ์ฒดํฌ๋ฆฌ์คํธ
๊ถํ ๋งคํธ๋ฆญ์ค๋ ๋ช ํํ๊ณ ์งํ ๊ฐ๋ฅํ ๊ท์น์ผ๋ก ์ ํ๋ ๋๋ง ์ ์ฉํฉ๋๋ค. ์ฒซ ํ๋ฉด์ด๋ ์๋ํฌ์ธํธ๋ฅผ ๋ง๋ค๊ธฐ ์ ์ ์๋ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ํ์ธํ์ธ์. ์ด๋ ๊ฒ ํ๋ฉด ์ ์ญํ ์ด๋ ์ฃ์ง ์ผ์ด์ค๊ฐ ๋ํ๋ ๋ ๊นจ์ง๋ "๊ฑฐ์ ์์ ํ(Almost secure)" ์ค์ ์ ํผํ ์ ์์ต๋๋ค.
๊ท์น์ ๋จผ์ ๋ง๋ค๊ณ , UI๋ฅผ ๋ง๋์ธ์
๊ธฐ๋ณธ์ ์ผ๋ก๋ "๊ธฐ๋ณธ ๊ฑฐ๋ถ(default deny)" ํ๋๋ฅผ ์ ์ฉํ์ธ์: ๋ช ์์ ์ผ๋ก ํ์ฉ๋์ง ์์ ๊ฒ์ ๋ชจ๋ ์ฐจ๋จํฉ๋๋ค. ์ด๊ฒ์ด ์์ ํ ๊ธฐ๋ณธ๊ฐ์ด๋ฉฐ, ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๋ ์์ธ์ ์ ๊ทผ์ ๋ฐฉ์งํฉ๋๋ค.
๊ถํ์ ๋จ์ผ ์ง์ค ์์ค(์ฑ๊ธ ์์ค ์ค๋ธ ํธ๋ฃจ์ค)๋ฅผ ํ๋ณดํ์ธ์. ๋ฌธ์, ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ, ๋ ธ์ฝ๋ ์ค์ ๋ฑ ์ด๋์ ์๋ ํ ๋ชจ๋๊ฐ ํ์ฌ ๊ท์น์ด ์ด๋์ ์๋์ง ์์์ผ ํฉ๋๋ค. ์คํ๋ ๋์ํธ์ ์ฑ์ด ์๋ก ๋ค๋ฅด๋ฉด ๋ฒ๊ทธ๊ฐ ๋ฐ์ํฉ๋๋ค.
๊ฐ๋จํ ์ฌ์ ๋น๋ ์ฒดํฌ๋ฆฌ์คํธ:
- ๊ธฐ๋ณธ ๊ฑฐ๋ถ๊ฐ ๋ชจ๋ ๊ณณ์์ ์ ์ฉ๋จ(UI ๋ฒํผ, API ์๋ํฌ์ธํธ, ๋ด๋ณด๋ด๊ธฐ, ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ํฌํจ).
- ๊ฐ ์ก์ ์ ๋ช ํํ ๋ฒ์ ์ ์(own, team, region, all, ํน์ ๋ช ๋ช ๋ ํ์ ์งํฉ).
- ๊ด๋ฆฌ์ ๊ถํ์ ๋น์ฆ๋์ค ์ก์ ๊ณผ ๋ถ๋ฆฌ๋จ(์ญํ ๊ด๋ฆฌ๋ ํ๋ถ ์น์ธ๊ณผ ๊ฐ์ง ์์).
- ๋ฏผ๊ฐํ ์ก์ ์ ๋ ๊ฐํ ์ ์ด(์น์ธ ๋จ๊ณ, ๋ก๊น , ์ด์ ํ๋ ์๋ฆผ ๋ฑ)๋ฅผ ์๊ตฌํจ.
- ์์ธ๋ ์ค๋์ ๋ง๋ฃ์ผ์ ๊ฐ์ง(์์ ์ ๊ทผ์ด ์๊ตฌํ๋์ง ์๋๋ก).
๊ทธ๋ค์ ํ์ค์ ์ธ ํ ์๋๋ฆฌ์ค๋ก ๊ท์น์ ์ ๊ฒํ์ธ์. ์: "Support ๋ด๋น์๋ ์ฃผ๋ฌธ์ ๋ณด๊ณ ํด๋น ์ง์ญ์ ๋ฉ๋ชจ๋ฅผ ์ถ๊ฐํ ์๋ ์์ง๋ง ๊ฐ๊ฒฉ์ ์์ ํ๊ฑฐ๋ ํ๋ถ์ ๋ฐํํ ์๋ ์๋ค. Finance๋ ํ๋ถ์ ๋ฐํํ ์ ์์ง๋ง ๋งค๋์ ์น์ธ ํ์๋ง ๊ฐ๋ฅํ๊ณ ๋ชจ๋ ํ๋ถ์ ๋ก๊น ๋๋ค." ํ๋ ๋ฌธ์ฅ์ผ๋ก ์ค๋ช ํ ์ ์๋ค๋ฉด ๋ฒ์์ ์์ธ๊ฐ ์์ง ๋ช ํํ์ง ์์ ๊ฒ์ ๋๋ค.
AppMaster๋ก ๋น๋ํ๋ค๋ฉด ์ด ํญ๋ชฉ๋ค์ ํ๋ฉด๊ณผ ๋น์ฆ๋์ค ๋ก์ง์ ์๊ตฌ์ฌํญ์ผ๋ก ๋ค๋ฃจ์ธ์. ๋ฒํผ์ผ๋ก ๋์์ ์จ๊ธธ ์ ์์ง๋ง ์ง์ง ๊ฐ์ ๋ ๋ฐฑ์๋ ๊ท์น์ ๋๋ค.
์์ ์๋๋ฆฌ์ค: Support์ Finance๋ฅผ ์ํ ๋ด๋ถ ๋๊ตฌ
์ค๊ฐ ๊ท๋ชจ ํ์ฌ๊ฐ Support์ Finance๊ฐ ์ฌ์ฉํ๋ ๋ด๋ถ ๋๊ตฌ๋ฅผ ํ๋ ์ด์ํ๋ค๊ณ ๊ฐ์ ํ์ธ์. ๋์ผํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ Customers, Tickets, Refunds, Payouts, Settings(ํ ํ๋ฆฟยทํตํฉ ๋ฑ)๊ฐ ์์ต๋๋ค. ๋จ์ ๋ก๊ทธ์ธ ํ์ธ์ผ๋ก๋ ๋ถ์กฑํ ์ ํ์ ์ฑ์ ๋๋ค.
์ด๊ธฐ์ ๋ค์ ์ญํ ์ ์ ํ์ต๋๋ค:
- Support Agent: ํ ํ(queue)์์ ํฐ์ผ ์ฒ๋ฆฌ
- Support Lead: ์ฌ๋ฌ ํ๋ฅผ ๋๊ณ ํน์ ์ก์ ์น์ธ ๊ฐ๋ฅ
- Finance: ๊ธ์ ๊ด๋ จ ์ ๋ฌด ๋ด๋น
- Ops Admin: ์ ๊ทผ ์ ์ด ๋ฐ ์์คํ ์ค์ ๋ด๋น
์ค์ฉ์ ์ธ ๊ถํ ๋งคํธ๋ฆญ์ค๋ ๋ฆฌ์์ค๋ณ ์ก์ ์ ์์ฑํ๊ณ ๋ฒ์๋ก ์ธ๋ถํํ๋ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค.
ํฐ์ผ์ ๊ฒฝ์ฐ Support Agent๋ ์์ ์๊ฒ ํ ๋น๋ ํ์ ํฐ์ผ๋ง ์กฐํยท์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค. ๋ฉ๋ชจ๋ฅผ ์ถ๊ฐํ ์ ์์ง๋ง ํฐ์ผ ์์ ์๋ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. Support Lead๋ Support Agent์ ๋ชจ๋ ๊ถํ์ ๋ํด ๊ฐ์ ์ง์ญ ๋ด์์ ํฐ์ผ ์ฌํ ๋น์ด ๊ฐ๋ฅํฉ๋๋ค.
ํ๋ถ์ ๊ฒฝ์ฐ Finance๋ ํ๋ถ ์์ฑ๊ณผ ์น์ธ ๊ถํ์ ๊ฐ์ง๋ ์ผ์ ๊ธ์ก ํ๋๊ฐ ์์ ์ ์์ต๋๋ค. Support๋ ํ๋ถ ์์ฒญ์ ์์ฑํ ์ ์์ง๋ง ์น์ธํ ์๋ ์์ต๋๋ค. ํ๋ถ ์น์ธ(approve)์ ์์ฑ(create)๊ณผ ๋ณ๊ฐ์ ์ก์ ์ผ๋ก ๋งคํธ๋ฆญ์ค์ ๋ช ์๋์ด ์ฐ์ฐํ ๊ถํ์ด ๋ถ์ฌ๋์ง ์๋๋ก ํฉ๋๋ค.
Payouts์ Settings๋ ์๊ฒฉํ๊ฒ ๊ด๋ฆฌ๋ฉ๋๋ค: Payouts๋ Finance๋ง ์กฐํ ๊ฐ๋ฅํ๊ณ Settings๋ Ops Admin๋ง ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. Support๋ ์ด๋ฌํ ํ๋ฉด์ ๋ณด์ง ๋ชปํ๊ฒ ํ์ฌ ์ ํน๊ณผ ์ค์๋ฅผ ์ค์ ๋๋ค.
์์ธ ๊ท์น์ ํ๋ ์ถ๊ฐํด๋ณด์ธ์: Support Lead๊ฐ 2์ฃผ ๋์ ๋ค๋ฅธ ์ง์ญ์ ์ปค๋ฒํฉ๋๋ค. Ops Admin ๊ฐ์ ๊ด๋ฒ์ํ ์ญํ ์ ์ฃผ๋ ๋์ ๋งคํธ๋ฆญ์ค์ ์์ ๋ฒ์ ํ์ฅ(์: Support Lead + Region B, ๋ง๋ฃ ๋ ์ง ๊ธฐ์ฌ)์ ์ถ๊ฐํ์ธ์. ์ด ํ ๊ฐ์ง ์์ธ๊ฐ ์ญํ ๋ณต์ ๋ณด๋ค ์์ ํฉ๋๋ค.
AppMaster๋ก ๋น๋ํ๋ฉด ๊ฐ์ ๋งคํธ๋ฆญ์ค๊ฐ UI์ ํ์๋๋ ํ์ด์ง์ ๋ฐฑ์๋๊ฐ ํ์ฉํ๋ ๋์์ ์๋ดํ๋ฏ๋ก ๋๊ตฐ๊ฐ๊ฐ Payouts๋ Settings์ ์๋ํฌ์ธํธ๋ฅผ ์ถ์ธกํด๋ ์ ๊ทผํ ์ ์์ต๋๋ค.
๊ถํ์ ํ ์คํธํ๊ณ ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ผ ์ ์งํ๋ ๋ฐฉ๋ฒ
๊ถํ ๋ฌธ์ ๋ ๋ณดํต ์ฌ์ํ๊ณ ์ง๋ฃจํ ๋ฐฉ์์ผ๋ก ๋ฐ์ํฉ๋๋ค: ํ ํ๋ฉด์ด ๋ฒํผ์ ์จ๊ธฐ์ง ์๊ฑฐ๋, ํ ์๋ํฌ์ธํธ๊ฐ ์ฒดํฌ๋ฅผ ๋น ๋จ๋ฆฌ๊ฑฐ๋, ๋ฒ์ ๊ท์น์ด ๋๋ฌด ๋๊ฒ ๋งค์นญ๋๋ ์์ ๋๋ค. ๋งคํธ๋ฆญ์ค๋ฅผ ๋ฐ๋ณต ๊ฐ๋ฅํ ํ ์คํธ์ ๊ฐ๋จํ ์ ์ง๋ณด์ ๋ฃจํด์ผ๋ก ์ ํํ๋ฉด ํจ์ฌ ๋ ์ ์ฉํด์ง๋๋ค.
์์ ํ ์คํธ ์ฌ์ฉ์ ์งํฉ์ผ๋ก ์์ํ์ธ์. ์ฌ๋ฌ ๊ณ์ ์ด ํ์ํ์ง ์์ต๋๋ค. ์ญํ ๋ณ๋ก ํ ๋ช ์ฉ, ๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ์ ์ธ ์์ธ์ฉ ์ฃ์ง ์ฌ์ฉ์(์: "ํ๋ถ ์น์ธ ๊ถํ์ด ์๋ Support ๋ด๋น์")๋ฅผ ๋ง๋์ธ์. ์ด ๊ณ์ ๋ค์ ์คํ๋ฆฐํธ๋ง๋ค ์ฌ์ฌ์ฉํ์ธ์.
๊ทธ๋ค์ ๋งคํธ๋ฆญ์ค๋ฅผ ํ ์คํธ ์ผ์ด์ค๋ก ๋ฐ๊พธ์ธ์. ๊ฐ ๊ท์น์ ๋ํด ํ์ฉ ๊ฒฝ๋ก์ ๊ฑฐ๋ถ ๊ฒฝ๋ก๋ฅผ ํ๋์ฉ ์์ฑํ์ธ์. ๊ฑฐ๋ถ ๊ฒฝ๋ก๋ ๊ตฌ์ฒด์ ์ผ๋ก ๋ฌด์์ด ์ผ์ด๋์ผ ํ๋์ง(๋ช ํํ ๋ฉ์์ง, ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์์ ๋ฑ)๋ฅผ ์ ์ด ๋์ธ์.
- Role: Support Agent. Action: Refund. Expected: ๊ฑฐ๋ถ(๋ช ํํ ๋ฉ์์ง, ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์์).
- Role: Finance. Action: Refund. Expected: ํ์ฉ, ํ๋ถ ๋ ์ฝ๋ ์์ฑ, ํ์์์ ์ฌ์ ๋ก๊น .
- Role: Manager. Action: View tickets. Scope: team only. Expected: ํ ํฐ์ผ ์กฐํ ํ์ฉ, ๋ค๋ฅธ ํ ํฐ์ผ ์ด๋ ๋ถ๊ฐ.
๋์ผํ ๊ท์น์ UI์ API ๋ ๋ฒ ํ ์คํธํ์ธ์. UI๊ฐ ์ฐจ๋จํ์ง๋ง API๊ฐ ํ์ฉํ๋ฉด ์ฌ์ฉ์๊ฐ ํ๋ฉด์ ์ฐํํ ์ ์์ต๋๋ค. AppMaster๋ฅผ ์ฌ์ฉํ๋ค๋ฉด UI ๋ก์ง๊ณผ ๋ฐฑ์๋ ์๋ํฌ์ธํธ๊ฐ ๋ชจ๋ ๊ท์น์ ๊ฐ์ ํ๋์ง ํ์ธํ์ธ์.
๋ฒ์๋ ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํด ํ ์คํธํด์ผ ํฉ๋๋ค. ์์ ๊ถ, ํ, ์ง์ญ๋ณ๋ก ๋ค๋ฅธ ํ ์คํธ ๋ ์ฝ๋๋ฅผ ๋ง๋ค์ด ID๋ฅผ ์ถ์ธกํด ์ ๊ทผํ ์ ์๋์ง ๊ฒ์ฆํ์ธ์.
๋ง์ง๋ง์ผ๋ก ๋ฏผ๊ฐํ ์ก์ (ํ๋ถ, ๋ด๋ณด๋ด๊ธฐ, ์ญํ ๋ณ๊ฒฝ)์ ๋ํด ๋ฌด์์ ๋ก๊น ํ ์ง ๊ฒฐ์ ํ์ธ์. ๋๊ฐ, ๋ฌด์์, ์ธ์ , ์ด๋์ ํ๋์ง ๊ธฐ๋กํ๊ณ , ๋ก๊ทธ๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ๊ฒํ ํ๋ฉฐ ๊ถํ ํธ์ง์ด๋ ๋๋ ๋ด๋ณด๋ด๊ธฐ ๊ฐ์ ๋๋ฌธ ์ก์ ์ ์๋ฆผ ๊ท์น์ ์ถ๊ฐํ์ธ์.
๋ค์ ๋จ๊ณ: ๋งคํธ๋ฆญ์ค์์ ์ค์ ๋ด๋ถ ๋๊ตฌ๋ก ์ด๋ํ๊ธฐ
๊ถํ ๋งคํธ๋ฆญ์ค๋ฅผ ๋ฌธ์์ ๋ฌป์ด๋์ง ๋ง๊ณ ๋น๋ ํ๋์ผ๋ก ์ทจ๊ธํ์ธ์. ๊ฐ์น ์คํ์ ๋น ๋ฅด๊ฒ ํ๋ ค๋ฉด ๋ฐ์ดํฐ์ ํ๋ก์ธ์ค ์ค๋๋ค๊ณผ ๊ธฐ๋ณธ ์ฌํญ์ ํ์ธํ์ธ์.
30๋ถ ์ ๋์ ์งง์ ์ํฌ์(๊ฐ ์ญํ ๋ํ ํ ์ฌ๋๊ณผ ๋ฆฌ์์ค ์ค๋๋ค)์ ์ด๊ณ ์ญํ ยท๋ฆฌ์์คยท์ก์ ยท๋ฒ์๋ฅผ ๊ฒํ ํ๋ฉฐ ํน๋ณ ์ฌ๋ก๋ฅผ ์ ์ด๋ณด์ธ์. ์์ธ๊ฐ ๋น๋ฒํ๊ฒ ๋ค๋ฆฌ๋ฉด ๋๋ฝ๋ ๋ฒ์์ผ ์ ์์ต๋๋ค.
๊ทธ๋ค์ v1 ๋งคํธ๋ฆญ์ค๋ฅผ ์ด์์ผ๋ก ๋ง๋ค๊ณ ๋ฆฌ์์ค ์ค๋์ ํจ๊ป ์ง์ค ๋ฆฌ๋ทฐ๋ฅผ ํ์ธ์. ์ค์ฉ์ ์ผ๋ก ์ ๊ทผํ์ธ์: "Support๊ฐ ์ธ๊ธ๊ณ์ฐ์๋ฅผ ๋ณผ ์ ์๋?", "Finance๊ฐ ๊ณ ๊ฐ ์ ๋ณด๋ฅผ ์์ ํ ์ ์๋?" ๋๊ตฐ๊ฐ ์ฃผ์ ํ๋ฉด ์ฐ์ ํ์ดํ ๋ฌธ์ฅ์ผ๋ก ๊ท์น์ ์ ์ผ์ธ์. ๋์ค์ ํ์ํํ๋ฉด ๋ฉ๋๋ค.
v1 ํฉ์ ํ์๋ ํ ๋๋ฉ์ธ์ ์๋ํฌ์๋๋ก ๋จผ์ ๋น๋ํ์ธ์. ๋ฐ์ดํฐยท๋ก์งยทUI๋ฅผ ๋ชจ๋ ๊ฑด๋๋ฆฌ๋ ์์ ์ฌ๋ผ์ด์ค(์: ํฐ์ผ ์์คํ , ๋๋ ์ธ๊ธ๊ณ์ฐ์ ์น์ธ)๋ฅผ ์ ํํ์ธ์. ๋๊ฐ ๋ณผ ์ ์๊ณ , ๋๊ฐ ๋ณ๊ฒฝํ ์ ์์ผ๋ฉฐ, ์๋ํ ๋ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๋์ง ๋ตํ ์ ์์ด์ผ ํฉ๋๋ค.
AppMaster๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ๋งคํธ๋ฆญ์ค๋ฅผ ์ ํ ์์์ ๋งคํํ ๋ค์ ์์ฑํ์ธ์:
- Data Designer: ๋ฆฌ์์ค๋ฅผ ์ํฐํฐ(ํ ์ด๋ธ)์ ๋ฒ์์ ์ํฅ์ ์ฃผ๋ ์ฃผ์ ํ๋(team_id, region_id ๋ฑ)์ ์ ๋ ฌ
- Business Processes: ๋ณ๊ฒฝ์ด ์ผ์ด๋๋ ์ง์ ์์ ๊ท์น ๊ฐ์ (create, update, approve, export)
- UI ๊ฐ์์ฑ ๊ท์น: ์ฌ์ฉ์์๊ฒ ํ ์ ์๋ ๋์์ ์จ๊ธฐ๊ณ , ์ ๊ทผ ๊ฑฐ๋ถ ์ ์ด์ ๋ฅผ ๋ช ํํ ํ์
- Endpoints: ๊ฐ ์ญํ ์ ํ์ํ ๊ฒ๋ง ๋ ธ์ถํ๊ณ ๊ด๋ฆฌ์ ์ ์ฉ ์์ ์ ๋ถ๋ฆฌ
๊ฐ๋จํ ์: ๋ ์ญํ (Support ์์ฑ, Finance ์น์ธ)๋ก ๊ตฌ์ฑ๋ "ํ๋ถ ์์ฒญ" ํ๋ฆ์ ๋ง๋์ธ์. ๊ทธ ํ๋ฆ์ด ๊น๋ํ๊ฒ ์๋ํ๋ฉด "Support๋ 30๋ถ ๋ด์๋ง ์ทจ์ ๊ฐ๋ฅ" ๊ฐ์ ์ฃ์ง ์ผ์ด์ค๋ฅผ ์ถ๊ฐํ์ธ์.
์์ ๋ด๋ถ ๋๊ตฌ๋ฅผ AppMaster๋ก ๋ง๋ค์ด ์ญํ ๊ณผ ํ๋ฆ์ ์กฐ๊ธฐ์ ๊ฒ์ฆํ๊ณ , ๊ทธ ํ ๋งคํธ๋ฆญ์ค์์ ๋ฐ๋ณตํ์ธ์. ๋ชฉํ๋ ํ๋ฉด์ด 20๊ฐ๊ฐ ๋๊ณ ๊ถํ ์์ ์ด ์์ด๊ธฐ ์ ์ ์คํด๋ฅผ ์ก์๋ด๋ ๊ฒ์ ๋๋ค.


