์นยท๋ชจ๋ฐ์ผ ์ฑ์ ๋น ๋ฅธ ๋ฐ๋ณต์ ์ํ ์๋ฒ ๊ธฐ๋ฐ ํผ
์๋ฒ ๊ธฐ๋ฐ ํผ์ ํ๋ ์ ์๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํด ์นยท๋ค์ดํฐ๋ธ ์ฑ์ด ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ๋ฐฐํฌํ์ง ์๊ณ ๋ ์ ๋ฐ์ดํธ๋ ํผ์ ๋ ๋๋งํ๊ฒ ํด์ค๋๋ค.

ํผ ๋ณ๊ฒฝ์ด ๋ ๋๋ฆฌ๊ฒ ์งํ๋๋ ์ด์
ํ๋ฉด์ ๋ณด์ด๋ ํผ์ ๋จ์ํด ๋ณด์ด์ง๋ง ์ข ์ข ์ฑ์ ํ๋์ฝ๋ฉ๋์ด ์์ต๋๋ค. ํผ์ด ๋ฆด๋ฆฌ์ค์ ํฌํจ๋๋ฉด ์์ ๋ณ๊ฒฝ๋ ์ ์ฒด ์ ๋ฌ ์ฌ์ดํด๋ก ์ด์ด์ง๋๋ค. ์ฝ๋ ์์ , ์ฌํ ์คํธ, ๋ฐฐํฌ, ๋กค์์ ์กฐ์ ์ด ํ์ํฉ๋๋ค.
์ฌ๋๋ค์ด ๋งํ๋ "์์ ์์ "์ ์ค์ ๋ก ๋ง์ ์์ ์ ์๋ฐํฉ๋๋ค. ๋ ์ด๋ธ ๋ณ๊ฒฝ์ ๋ ์ด์์์ ์ํฅ์ ์ค ์ ์๊ณ , ํ๋๋ฅผ ํ์๋ก ๋ฐ๊พธ๋ฉด ๊ฒ์ฆ๊ณผ ์ค๋ฅ ์ํ์ ๋ณํ๊ฐ ์๊น๋๋ค. ์ง๋ฌธ ์์๋ฅผ ๋ฐ๊พธ๋ฉด ๋ถ์์ด๋ ๋น์ฆ๋์ค ๋ก์ง์ ๊ฐ์ ์ด ๊นจ์ง ์ ์์ต๋๋ค. ์ ๋จ๊ณ๋ฅผ ์ถ๊ฐํ๋ฉด ๋ค๋น๊ฒ์ด์ , ์งํ ํ์๊ธฐ, ์ค๊ฐ ์ดํ ์ฒ๋ฆฌ ๋ฐฉ์์ด ๋ฐ๋๋๋ค.
์น์์๋ ๊ณ ํต์ด ๋ํ์ง๋ง ์ฌ์ ํ ๋ฐฐํฌ์ QA๊ฐ ํ์ํฉ๋๋ค. ํผ ์ค๋ฅ๋ ๊ฐ์ , ๊ฒฐ์ , ์ง์ ์์ฒญ์ ๋ง์ต๋๋ค. ๋ชจ๋ฐ์ผ์์๋ ์ํฉ์ด ๋ ์ ํ๋ฉ๋๋ค: ์ ๋น๋๋ฅผ ๋ฐฐํฌํ๊ณ ์คํ ์ด ์ฌ์ฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ฉฐ ์ฌ์ฉ์๊ฐ ์ฆ์ ์ ๋ฐ์ดํธํ์ง ์์ ์ ์์ต๋๋ค. ๊ทธ ์ฌ์ด ๋ฐฑ์๋์ ์ง์ํ์ ์ฌ๋ฌ ๋ฒ์ ์ ํผ์ ๋์์ ์ฒ๋ฆฌํด์ผ ํ ์ ์์ต๋๋ค.
์ง์ฐ์ ํจํด์ ์์ธก ๊ฐ๋ฅํฉ๋๋ค: ์ ํํ์ ๋น ๋ฅธ ์์ ์ ์ํ์ง๋ง ์์ง๋์ด๋ง์ ๋ค์ ๋ฆด๋ฆฌ์ค์ ์ง์ด๋ฃ๊ณ , QA๋ ๋จ์ผ ํ๋ ๋ณ๊ฒฝ์๋ ์ ์ฒด ํ๋ฆ์ ๋ค์ ํ ์คํธํฉ๋๋ค. ๋ชจ๋ฐ์ผ ์ ๋ฐ์ดํธ๋ ๋น์ฆ๋์ค๊ฐ ๊ธด๊ธํ ๋๋ ๋ฉฐ์น ์ด ๊ฑธ๋ฆฌ๊ณ , ์ง์ํ์ ์๋ก ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ ๋ณด์ด๋ ํ๋ฉด ์ฐจ์ด๋ฅผ ์ค๋ช ํ๋๋ผ ๊ณ ์ํฉ๋๋ค.
๋น ๋ฅธ ๋ฐ๋ณต์ ๋ค๋ฆ ๋๋ค. ์๋ฒ ๊ธฐ๋ฐ ํผ์ ์ฐ๋ฉด ํ์ ํผ ์ ์๋ฅผ ์ ๋ฐ์ดํธํ๊ณ ๋ช ์๊ฐ ๋ด์ ์น๊ณผ ๋ค์ดํฐ๋ธ ์ฑ์์ ๋ณ๊ฒฝ์ ํ์ธํ ์ ์์ต๋๋ค. ์จ๋ณด๋ฉ ํผ์ด ์ดํ์ ์ ๋ฐํ๋ฉด ๊ฐ์ ๋ ์ ๋จ๊ณ๋ฅผ ์ ๊ฑฐํ๊ฑฐ๋ ํผ๋์ค๋ฌ์ด ํ๋๋ฅผ ์ด๋ฆ ๋ณ๊ฒฝํ๊ณ ํน์ ์ง๋ฌธ์ ์ ํ์ (์ต์ ๋)์ผ๋ก ๋ฐ๊พผ ๋ค ์๋ฃ์จ ๋ณํ๋ฅผ ์ธก์ ํ ์ ์์ต๋๋ค.
์๋ฒ ๊ธฐ๋ฐ ํผ์ ์ฝ๊ฒ ํ์ด ์ค๋ช ํ๋ฉด
์๋ฒ ๊ธฐ๋ฐ ํผ์ ์ฑ์ด ํผ ๋ ์ด์์์ ํ๋์ฝ๋ฉํ์ง ์๋๋ค๋ ๋ป์ ๋๋ค. ๋์ ์๋ฒ๊ฐ ์ด๋ค ํ๋๋ฅผ ์ด๋ค ์์๋ก, ์ด๋ค ๋ผ๋ฒจ๊ณผ ๊ท์น์ผ๋ก ๋ณด์ฌ์ค์ง ์ค๋ช ํ๋ ์ ์๋ฅผ ๋ณด๋ด๊ณ ์น ๋๋ ๋ชจ๋ฐ์ผ ์ฑ์ด ์ด๋ฅผ ๋ ๋๋งํฉ๋๋ค.
์๋น์ ๋น์ ํ์๋ฉด, ์ฑ์ ์ฃผ๋ฌธ์ ๋ฐ์ ์ ์ํ๊ณ ์ ์ถํ๋ ์จ์ดํฐ์ด๊ณ , ์๋ฒ๋ ์ค๋์ ๋ฉ๋ด๋ฅผ ๊ฒฐ์ ํ๋ ์ฃผ๋ฐฉ์ ๋๋ค.
์ฑ์ ๋จ์ ์๋ ๊ฒ์ ๋ ๋๋ง ์์ง์ ๋๋ค. ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ UI ๋ถํ(ํ ์คํธ ์ ๋ ฅ, ๋ ์ง ์ ํ๊ธฐ, ๋๋กญ๋ค์ด, ํ์ผ ์ ๋ก๋)๊ณผ ์ค๋ฅ ํ์ ๋ฐ ๋ฐ์ดํฐ ์ ์ถ ๊ธฐ๋ฅ์ด ์ฑ์ ๋จ์ต๋๋ค. ์๋ฒ๋ก ์ฎ๊ฒจ์ง๋ ๊ฒ์ ํผ ์ ์์ ๋๋ค. ์ฆ, ํน์ ์จ๋ณด๋ฉ ํผ์ด ์ง๊ธ ์ด๋ป๊ฒ ๋ณด์ด๋์ง์ ๋ํ ์ ๋ณด์ ๋๋ค.
๋ ๊ฐ์ง๋ฅผ ๋ถ๋ฆฌํ๋ฉด ์ข์ต๋๋ค:
- ํ๋ ์ ์(์คํค๋ง): ๋ผ๋ฒจ, ํ์ , ํ์ ์ฌ๋ถ, ๋์๋ง, ๊ธฐ๋ณธ๊ฐ, ๋๋กญ๋ค์ด ์ต์
- ์ฌ์ฉ์ ์ ๋ ฅ ๋ฐ์ดํฐ: ์ฌ์ฉ์๊ฐ ์ค์ ๋ก ์ ๋ ฅํ๊ฑฐ๋ ์ ํํ ๋ต์
๋๋ถ๋ถ์ ์๋ฒ ๊ธฐ๋ฐ ํผ ์์คํ ์ ๋น์ทํ ๋น๋ฉ ๋ธ๋ก์ ์ฌ์ฉํฉ๋๋ค: ํ๋(๋จ์ผ ์ ๋ ฅ), ๊ทธ๋ฃน(์น์ ), ๋จ๊ณ(๋ค์ค ํ์ด์ง ํ๋ฆ), ๊ท์น(๋ณด์ด๊ธฐ/์จ๊ธฐ๊ธฐ, ํ์ ์กฐ๊ฑด, ๊ณ์ฐ๊ฐ), ์ก์ (์ ์ถ, ์์์ ์ฅ, ๋ค์ ๋จ๊ณ ์ด๋).
๊ฐ๋จํ ์: ๋ค์ดํฐ๋ธ ์ฑ์ด ์ด๋ฏธ ๋๋กญ๋ค์ด์ ๋ ๋๋งํ ์ค ์๋ค๋ฉด ์๋ฒ๋ ๋๋กญ๋ค์ด ๋ผ๋ฒจ์ "Role"์์ "Job title"๋ก ๋ฐ๊พธ๊ณ ์ต์ ์ ์ ๋ฐ์ดํธํ๋ฉฐ ํ์๋ฅผ ํ์ํ ์ ์๊ณ , ์ด ๋ชจ๋ ์์ ์ ์ฑ์ ์๋ก ๋ฐฐํฌํ์ง ์๊ณ ์ํํ ์ ์์ต๋๋ค.
์ธ์ ์ด ์ ๊ทผ๋ฒ์ด ์ข์๊ฐ(๊ทธ๋ฆฌ๊ณ ์๋ ๋)
ํผ์ด ์ฑ ์์ฒด๋ณด๋ค ๋ ์์ฃผ ๋ฐ๋๋ ๊ฒฝ์ฐ ์๋ฒ ๊ธฐ๋ฐ ํผ์ด ๊ฐ์ฅ ํจ๊ณผ์ ์ ๋๋ค. ํ์ด ์ ๊ธฐ์ ์ผ๋ก ์นดํผ๋ฅผ ์์ ํ๊ฑฐ๋ ํ๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ๊ท์น์ ์กฐ์ ํ๋ค๋ฉด ์๋ฒ ๊ธฐ๋ฐ ํผ์ ์ฑ์คํ ์ด ์ฌ์ฌ์ ์กฐ์ ๋ ๋ฆด๋ฆฌ์ค๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ์ ์ค์ฌ์ค๋๋ค. ํด๋ผ์ด์ธํธ๋ ๊ทธ๋๋ก ๋๊ณ ์คํค๋ง๋ง ๋ณ๊ฒฝํฉ๋๋ค.
์ ํฉํ ๊ฒฝ์ฐ
๋ ์ด์์์ด ๋น๊ต์ ์์ธก ๊ฐ๋ฅํ์ง๋ง ์ง๋ฌธ๊ณผ ๊ท์น์ด ์์ฃผ ๋ฐ๋๋ ํ๋ฆ์ ์ ํฉํฉ๋๋ค: ์จ๋ณด๋ฉ ๋ฐ ํ๋กํ ์ค์ , ์ค๋ฌธ ๋ฐ ํผ๋๋ฐฑ, ๋ด๋ถ ๋๊ตฌ ๋ฐ ๊ด๋ฆฌ ํ๋ก์ฐ, ๊ท์ ์ค์ ์ ๋ฐ์ดํธ, ์ด์ ์ ํ๋ณ๋ก ๋ฌ๋ผ์ง๋ ์ง์ ์ ์ ๋ฑ.
ํฐ ์ด์ ์ ์๋์ ์ ์ ์กฐ์ ์ ๋๋ค. ์ ํ ๋งค๋์ ๊ฐ ํผ ์ ์๋ฅผ ์น์ธํ๋ฉด ์น๊ณผ ๋ค์ดํฐ๋ธ ์ฑ์ด ๋ค์ ๋ก๋ ์ ๋ณ๊ฒฝ์ ๋ฐ์ํฉ๋๋ค.
๋ถ์ ํฉํ ๊ฒฝ์ฐ
ํผ ๊ฒฝํ ์์ฒด๊ฐ ์ ํ์ด๊ฑฐ๋ UI๊ฐ ์ ๊ตํ ๋ค์ดํฐ๋ธ ์ ์ด๋ฅผ ํ์๋ก ํ ๋๋ ๋ณดํต ๋ง์ง ์์ต๋๋ค. ์: ๋งค์ฐ ๋ง์ถคํ ๋ ์ด์์, ์์ ์คํ๋ผ์ธ ์ฐ์ ๊ฒฝํ, ํ๋๋ณ ๋ฌด๊ฑฐ์ด ์ ๋๋ฉ์ด์ ๊ณผ ์ ์ค์ฒ ๊ธฐ๋ฐ ์ํธ์์ฉ, ํ๋ซํผ ํนํ ์ปดํฌ๋ํธ์ ์์กดํ๋ ํ๋ฉด ๋ฑ.
ํธ๋ ์ด๋์คํ๋ ๋ช ํํฉ๋๋ค: ์ ์ฐ์ฑ์ ์ป๋ ๋์ ํฝ์ ๋จ์์ ์ ์ด๊ถ ์ผ๋ถ๋ฅผ ํฌ๊ธฐํฉ๋๋ค. ๋ค์ดํฐ๋ธ ์ปดํฌ๋ํธ๋ฅผ ๊ณ์ ์ธ ์ ์์ง๋ง ์คํค๋ง์ ๊น๋ํ๊ฒ ๋งคํ๋ผ์ผ ํฉ๋๋ค.
์ค์ฉ์ ๊ท์น: ํผ์ "ํ๋, ๊ท์น, ์ ์ถ ์ก์ "์ผ๋ก ์ค๋ช ํ ์ ์๊ณ ๋๋ถ๋ถ ๋ณ๊ฒฝ์ด ์ฝํ ์ธ ์ ๊ฒ์ฆ์ด๋ผ๋ฉด ์๋ฒ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ธ์. ๋ณ๊ฒฝ์ด ๋๋ถ๋ถ ๋ง์ถคํ ์ํธ์์ฉ, ์คํ๋ผ์ธ ๋์, ์๊ฐ์ ์ธ๋ จ๋จ์ด๋ผ๋ฉด ํด๋ผ์ด์ธํธ ์ค์ฌ์ ์ ์งํ์ธ์.
ํ๋ ์ ์๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ
์๋ฒ ๊ธฐ๋ฐ ํผ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ ๊ฐ์ง๋ฅผ ๋ถ๋ฆฌํ๋ฉด ์ข์ต๋๋ค: ํผ์ ์์ ์ ์๋ณ์์ ์ด๋ป๊ฒ ๋ณด์ด๊ณ ๋์ํ๋์ง์ ๋ํ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ์ธ๋ถ ์ ๋ณด. ์ด ๋ถ๋ฆฌ๋ ํผ์ ์ ๋ฐ์ดํธํด๋ ์ด์ ์ ์ถ์ด๋ ์ด์ ํด๋ผ์ด์ธํธ๋ฅผ ๊นจ๋จ๋ฆฌ์ง ์๊ฒ ํฉ๋๋ค.
์ผ๋ฐ์ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ํผ(Form): ์ฅ๊ธฐ๊ฐ ์ ์ง๋๋ ํผ(์: "Customer onboarding")
- ํผ ๋ฒ์ (FormVersion): ๊ฒ์ํ๊ณ ๋กค๋ฐฑํ ์ ์๋ ๋ถ๋ณ ์ค๋ ์ท
- ํ๋(Field): ๋ฒ์ ๋ด ํ๋๋ณ ํ(ํ์ , ํค, ํ์ ์ฌ๋ถ ๋ฑ)
- ์ต์ (Options): select ๋๋ ๋ผ๋์ค ํ๋์ ์ ํ์ง์ ์์
- ๋ ์ด์์(Layout): ๊ทธ๋ฃนํ ๋ฐ ํ์ ํํธ(์น์ , ๊ตฌ๋ถ์ )
์ด๊ธฐ์๋ ํ๋ ํ์ ์ ์๊ณ ๋จ์ํ๊ฒ ์ ์งํ์ธ์. ํ ์คํธ, ์ซ์, ๋ ์ง, select, ์ฒดํฌ๋ฐ์ค๋ก ์ถฉ๋ถํ ๋ง์ ๊ฒ์ ํ ์ ์์ต๋๋ค. ํ์ผ ์ ๋ก๋๋ ์ ์ฉํ์ง๋ง ์ ๋ก๋ ๋ฐฉ์, ์ฉ๋ ์ ํ, ์ ์ฅ์ ๋ฑ์ ๋๊น์ง ์ค๊ณํ ๋ค ์ถ๊ฐํ์ธ์.
์ ๋ ฌ๊ณผ ๊ทธ๋ฃนํ๋ ์์ฑ ์๊ฐ์ ์์กดํ๋ "๋ง๋ฒ"์ ํผํ์ธ์. ํ๋์ ์ต์ ์ ๋ํด ๋ช ์์ ์์น(integer)๋ฅผ ์ ์ฅํ์ธ์. ๊ทธ๋ฃนํ๋ section_id๋ฅผ ์ฐธ์กฐํ๊ฑฐ๋ ๊ฐ ์น์ ์ ์ด๋ค ํ๋ ํค๊ฐ ๋์ค๋์ง ๋์ดํ ๋ ์ด์์ ๋ธ๋ก์ ์ ์ฅํ๋ ๋ฐฉ์์ด ์ข์ต๋๋ค.
์กฐ๊ฑด๋ถ ํ์(conditional visibility)๋ ์ฝ๋๊ฐ ์๋ ๋ฐ์ดํฐ๋ก ์ ์ฅํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค. ์ค์ฉ์ ์ ๊ทผ์ ๊ฐ ํ๋์ visibility_rule JSON ๊ฐ์ฒด๋ฅผ ๋๋ ๊ฒ์ ๋๋ค. ์: "ํ๋ X๊ฐ Y์ผ ๋ ํ์". ์ด๊ธฐ์๋ equals, not equals, is empty ๊ฐ์ ๊ท์น ํ์ ์ ์ ํํด ๋ชจ๋ ํด๋ผ์ด์ธํธ๊ฐ ๋์ผํ๊ฒ ๊ตฌํํ ์ ์๊ฒ ํ์ธ์.
ํ์งํ๋ ํ ์คํธ๋ฅผ ๋ถ๋ฆฌํด ๊ด๋ฆฌํ๋ฉด ์ฌ์์ง๋๋ค. ์: FieldText(field_id, locale, label, help_text) ๊ฐ์ ํ ์ด๋ธ์ ๋์ด ๋ฒ์ญ์ ๊น๋ํ๊ฒ ์ ์งํ๊ณ ์นดํผ ์ ๋ฐ์ดํธ๊ฐ ๋ก์ง์ ๊ฑด๋๋ฆฌ์ง ์๊ฒ ํฉ๋๋ค.
JSON ๋ ์ ๊ทํ ํ ์ด๋ธ์ ๊ดํด์ ๊ฐ๋จํ ๊ท์น์ ๋ฐ๋ฅด์ธ์: ์์ฃผ ์ฟผ๋ฆฌํ๊ณ ๋ฆฌํฌํธํ๋ ๊ฒ์ ์ ๊ทํํ๊ณ , ๋๋ฌผ๊ฒ ํํฐ๋งํ๋ UI ์ธ๋ถ์ฌํญ์ JSON์ผ๋ก ๋์ธ์. ํ๋ ํ์ , required, ํค๋ ์ปฌ๋ผ์ผ๋ก ๋๊ณ ์คํ์ผ ํํธ, ํ๋ ์ด์คํ๋, ๋ณต์กํ ๊ท์น ๊ฐ์ฒด๋ JSON์ ๋๋ ํผ๊ณผ ํจ๊ป ๋ฒ์ ๊ด๋ฆฌํ์ธ์.
์น๊ณผ ๋ค์ดํฐ๋ธ ์ฑ์ด ๋์ผํ ์คํค๋ง๋ฅผ ๋ ๋๋งํ๋ ๋ฐฉ๋ฒ
์๋ฒ ๊ธฐ๋ฐ ํผ์ด ์น๊ณผ ๋ค์ดํฐ๋ธ์์ ์๋ํ๋ ค๋ฉด ์์ชฝ ํด๋ผ์ด์ธํธ๊ฐ ๋์ผํ ๊ณ์ฝ(contract)์ ๊ฐ์ ธ์ผ ํฉ๋๋ค: ์๋ฒ๊ฐ ํผ์ ์ค๋ช ํ๊ณ ํด๋ผ์ด์ธํธ๊ฐ ๊ฐ ํ๋๋ฅผ UI ์ปดํฌ๋ํธ๋ก ๋ฐ๊ฟ๋๋ค.
์ค์ฉ์ ํจํด์ "ํ๋ ๋ ์ง์คํธ๋ฆฌ"์ ๋๋ค. ๊ฐ ์ฑ์ ํ๋ ํ์ ์ ์ปดํฌ๋ํธ(์น) ๋๋ ๋ทฐ(iOS/Android)์ ๋งคํํ๋ ์์ ๋งต์ ์ ์งํฉ๋๋ค. ๋ ์ง์คํธ๋ฆฌ๋ ํผ์ด ๋ฐ๋์ด๋ ์์ ์ ์ผ๋ก ์ ์ง๋ฉ๋๋ค.
์๋ฒ๊ฐ ๋ณด๋ด๋ ํ์ด๋ก๋๋ ๋จ์ํ ํ๋ ๋ชฉ๋ก ์ด์์ด์ด์ผ ํฉ๋๋ค. ์ข์ ํ์ด๋ก๋์๋ ์คํค๋ง(ํ๋ id, ํ์ , ๋ผ๋ฒจ, ์์), ๊ธฐ๋ณธ๊ฐ, ๊ท์น(ํ์, min/max, ํจํด ๊ฒ์ฌ, ์กฐ๊ฑด๋ถ ๊ฐ์์ฑ), ๊ทธ๋ฃนํ, ๋์๋ง, ๋ถ์ ํ๊ทธ๊ฐ ํฌํจ๋ฉ๋๋ค. ๊ท์น์ ์คํ ๊ฐ๋ฅํ ์ฝ๋๊ฐ ์๋๋ผ ์์ ์ ์ด์ด์ผ ํด๋ผ์ด์ธํธ๋ ๋จ์ํ๊ฒ ์ ์ง๋ฉ๋๋ค.
Select ํ๋๋ ๋น๋๊ธฐ ๋ฐ์ดํฐ๋ฅผ ํ์๋ก ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๊ฑฐ๋ํ ๋ชฉ๋ก์ ๋ณด๋ด๊ธฐ๋ณด๋ค ๋ฐ์ดํฐ ์์ค ์ค๋ช ์(์: "countries"๋ "products")์ ๊ฒ์ ๋ฐ ํ์ด์ง ์ค์ ์ ๋ณด๋ด์ธ์. ํด๋ผ์ด์ธํธ๋ "์์ค X์ ์ต์ ๊ฐ์ ธ์ค๊ธฐ, ์ฟผ๋ฆฌ Y" ๊ฐ์ ์ผ๋ฐ ์๋ํฌ์ธํธ๋ฅผ ํธ์ถํด ๊ฒฐ๊ณผ๋ฅผ ๋ ๋๋งํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ต์ ์ด ๋ฐ๋์ด๋ ์น๊ณผ ๋ค์ดํฐ๋ธ ๋์์ด ์ผ์นํฉ๋๋ค.
์ผ๊ด์ฑ์ด ๋ฐ๋์ ํฝ์ ๋จ์์ ๋์ผํจ์ ์๋ฏธํ์ง ์์ต๋๋ค. ๊ฐ๊ฒฉ, ๋ผ๋ฒจ ์์น, ํ์ ํ์๊ธฐ, ์ค๋ฅ ์คํ์ผ ๊ฐ์ ๊ณตํต ๋น๋ฉ ๋ธ๋ก์ ํฉ์ํ์ธ์. ๊ฐ ํด๋ผ์ด์ธํธ๋ ํ๋ซํผ์ ๋ง๊ฒ ๊ฐ์ ์๋ฏธ๋ฅผ ์ ๋ฌํ๋ฉด ๋ฉ๋๋ค.
์ ๊ทผ์ฑ(accessibility)์ ์๊ธฐ ์ฝ๊ณ ๋์ค์ ๊ณ ์น๊ธฐ ์ด๋ ต์ต๋๋ค. ์คํค๋ง ๊ณ์ฝ์ ์ผ๋ถ๋ก ๊ฐ์ฃผํ์ธ์: ๋ชจ๋ ํ๋๋ ๋ผ๋ฒจ, ์ ํ์ ํํธ, ๋ช ํํ ์ค๋ฅ ๋ฉ์์ง๊ฐ ํ์ํฉ๋๋ค. ํฌ์ปค์ค ์์๋ ํ๋ ์์๋ฅผ ๋ฐ๋ผ์ผ ํ๊ณ ์ค๋ฅ ์์ฝ์ ํค๋ณด๋๋ก ์ ๊ทผ ๊ฐ๋ฅํด์ผ ํ๋ฉฐ ์ ํ๊ธฐ๋ ์คํฌ๋ฆฐ ๋ฆฌ๋์ ๋์ํด์ผ ํฉ๋๋ค.
ํด๋ผ์ด์ธํธ๋ฅผ ๋ณต์กํ๊ฒ ๋ง๋ค์ง ์๋ ๊ฒ์ฆ๊ณผ ๊ท์น
์๋ฒ ๊ธฐ๋ฐ ํผ์์๋ "์ ํจ"์ ์ต์ข ๊ฒฐ์ ๊ถ์ ์๋ฒ๊ฐ ๊ฐ์ต๋๋ค. ํด๋ผ์ด์ธํธ๋ ์ฆ๊ฐ์ ์ธ ํผ๋๋ฐฑ์ ์ํด ๊ฐ๋จํ ๊ฒ์ฌ๋ฅผ ํ ์ ์์ง๋ง, ์ต์ข ๊ฒฐ์ ์ ์๋ฒ์ ๋งก๊ธฐ์ธ์. ๊ทธ๋ ์ง ์์ผ๋ฉด ์น, iOS, Android ๊ฐ ๋์ ์ฐจ์ด๊ฐ ์๊ธฐ๊ณ ์ฌ์ฉ์๊ฐ ์ง์ ์์ฒญ์ ๋ณด๋ด ๊ท์น์ ์ฐํํ ์ ์์ต๋๋ค.
๊ฒ์ฆ ๊ท์น์ ํ๋ ์ ์ ์์ ๋์ธ์. ์ผ์์ ์ผ๋ก ๋ง์ฃผ์น๋ ๊ท์น๋ถํฐ ์์ํ์ธ์: ํ์ ํ๋(์กฐ๊ฑด๋ถ ํ์ ํฌํจ), ์ซ์ ๋ฐ ๊ธธ์ด์ min/max, ์ฐํธ๋ฒํธ ๊ฐ์ ์ ๊ทํํ์ ๊ฒ์ฌ, ๊ต์ฐจ ํ๋ ๊ฒ์ฌ(์์์ผ์ด ์ข ๋ฃ์ผ ์ด์ ์ด์ด์ผ ํจ), ํ์ฉ ๊ฐ(๋ชฉ๋ก ์ค ํ๋์ฌ์ผ ํจ).
์กฐ๊ฑด๋ถ ๋ก์ง์ ํ์ด ํด๋ผ์ด์ธํธ๋ฅผ ๊ณผ๋ํ๊ฒ ๋ณต์กํ๊ฒ ๋ง๋๋ ์ง์ ์ ๋๋ค. ์ ์ฑ ๋ก์ง์ ๋ฐฐํฌํ๋ ๋์ "๋ค๋ฅธ ํ๋๊ฐ ํน์ ๊ฐ์ ๊ฐ์ง ๋๋ง ํ์" ๊ฐ์ ๊ฐ๋จํ ๊ท์น์ ์๋ฒ์์ ์ ๊ณตํ์ธ์. ์: "Account type"์ด "Business"์ผ ๋๋ง "Company size"๋ฅผ ํ์. ์ฑ์ ํด๋น ์กฐ๊ฑด์ ํ๊ฐํด ํ๋๋ฅผ ๋ณด์ฌ์ฃผ๊ฑฐ๋ ์จ๊น๋๋ค. ์๋ฒ๋ ํ๋๊ฐ ์จ๊ฒจ์ ธ ์์ผ๋ฉด ํ์๋ฅผ ์๊ตฌํ์ง ์๋ ๋ฐฉ์์ผ๋ก ๊ฐ์ ํฉ๋๋ค.
์ค๋ฅ ์ฒ๋ฆฌ๋ ๊ณ์ฝ์ ๋ค๋ฅธ ์ ๋ฐ์ ๋๋ค. ๋ฆด๋ฆฌ์ค๋ง๋ค ๋ฐ๋๋ ์ฌ๋์ฉ ํ ์คํธ์ ์์กดํ์ง ๋ง์ธ์. ์์ ์ ์ธ ์ค๋ฅ ์ฝ๋๋ฅผ ์ฌ์ฉํ๊ณ ํด๋ผ์ด์ธํธ๊ฐ ์น์ ํ ๋ฉ์์ง๋ก ๋งคํํ๊ฒ ํ์ธ์(๋๋ ์๋ฒ ํ ์คํธ๋ฅผ ๋์ฒด๋ก ํ์). ์ ์ฉํ ๊ตฌ์กฐ๋ code(์: REQUIRED), field(์ด๋ค ์ ๋ ฅ ์คํจ), message(์ ํ์ ํ์ ํ ์คํธ), meta(์: min=3)์ ๋๋ค.
๋ณด์ ์ฃผ์: ํด๋ผ์ด์ธํธ ๊ฒ์ฆ๋ง ์ ๋ขฐํ์ง ๋ง์ธ์. ํด๋ผ์ด์ธํธ ๊ฒ์ฌ๋ ํธ์์ฑ์ผ ๋ฟ ๊ฐ์ ๋ ์๋ฒ์์ ํด์ผ ํฉ๋๋ค.
๋จ๊ณ๋ณ: ์๋ฒ ๊ธฐ๋ฐ ํผ์ ์ฒ์๋ถํฐ ๊ตฌํํ๋ ๋ฐฉ๋ฒ
์๊ฒ ์์ํ์ธ์. ์ค์ ๋ก ์์ฃผ ๋ฐ๋๋ ํ ๊ฐ์ง ํผ์ ์ ํํ๊ณ (์จ๋ณด๋ฉ, ์ง์ ์ ์, ๋ฆฌ๋ ์บก์ฒ ๋ฑ) ์ด๋ฐ์๋ ๋ช ๊ฐ์ง ํ๋ ํ์ ๋ง ์ง์ํ์ธ์. ์ด๋ ๊ฒ ํ๋ฉด ์ฒซ ๋ฒ์ ์ ๋๋ฒ๊ทธํ๊ธฐ ์ฝ์ต๋๋ค.
1) v1๊ณผ ํ๋ ํ์ ์ ์
ํ ์คํธ, ์ฌ๋ฌ ์ค ํ ์คํธ, ์ซ์, select, ์ฒดํฌ๋ฐ์ค, ๋ ์ง์ฒ๋ผ ์ด๋์๋ ๋ ๋๋ง ๊ฐ๋ฅํ 4~6๊ฐ์ ํ๋ ํ์ ์ ์ ํํ์ธ์. ๊ฐ ํ์ ์ ํ์ํ ํญ๋ชฉ(๋ผ๋ฒจ, ํ๋ ์ด์คํ๋, ํ์, ์ต์ , ๊ธฐ๋ณธ๊ฐ)๊ณผ ์์ง ์ง์ํ์ง ์์ ํญ๋ชฉ(ํ์ผ ์ ๋ก๋, ๋ณต์กํ ๊ทธ๋ฆฌ๋)์ ๊ฒฐ์ ํ์ธ์.
2) ์คํค๋ง ์๋ต ์ค๊ณ
API๋ ํด๋ผ์ด์ธํธ๊ฐ ํ์๋ก ํ๋ ๋ชจ๋ ๊ฒ์ ํ ํ์ด๋ก๋๋ก ๋ฐํํด์ผ ํฉ๋๋ค: ํผ ์๋ณ์, ๋ฒ์ , ๊ท์น์ด ํฌํจ๋ ์ ๋ ฌ๋ ํ๋ ๋ชฉ๋ก. ์ด๊ธฐ์๋ ๊ท์น์ ๋จ์ํ๊ฒ ์ ์งํ์ธ์: required, min/max ๊ธธ์ด, ์ ๊ท์, ๋ค๋ฅธ ํ๋ ๊ธฐ๋ฐ์ show/hide.
์ค์ฉ์ ๋ถ๋ฆฌ๋ ์ ์๋ฅผ ๊ฐ์ ธ์ค๋ ์๋ํฌ์ธํธ ํ๋์ ์๋ต์ ์ ์ถํ๋ ์๋ํฌ์ธํธ ํ๋๋ก ๋๋ ๊ฒ์ ๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ๊ท์น์ ์ถ์ธกํ์ง ์๊ฒ ํ์ธ์.
3) ํ๋์ ๋ ๋๋ฌ๋ฅผ ๋ง๋ค๊ณ ๋๋จธ์ง์ ๋ณต์
์น์์ ๋ ๋๋ฌ๋ฅผ ๋จผ์ ๊ตฌํํ์ธ์. ์น์ ๋ฐ๋ณตํ๊ธฐ ๋น ๋ฆ ๋๋ค. ์คํค๋ง๊ฐ ์์ ๋๋ฉด ๊ฐ์ ๋ ๋๋ฌ๋ฅผ iOS์ Android์ ๊ฐ์ ํ๋ ํ์ ๊ณผ ๊ท์น ์ด๋ฆ์ผ๋ก ๊ตฌํํ์ธ์.
4) ์ ์ถ์ ์ ์์ ๋ถ๋ฆฌํด ์ ์ฅ
์ ์ถ์ append-only ๋ ์ฝ๋๋ก ์ทจ๊ธํ๊ณ (form_id, version)์ ์ฐธ์กฐํ์ธ์. ์ด๋ ๊ฒ ํ๋ฉด ํผ์ด ๋ฐ๋ ์ดํ์๋ ์ฌ์ฉ์๊ฐ ์ ์ถํ ๋ ๋ณธ ๊ฒ์ ํญ์ ์ฌํํ ์ ์์ด ๊ฐ์ฌ์ ์ ๋ฆฌํฉ๋๋ค.
5) ํธ์ง ๋ฐ ๊ฒ์ ์ํฌํ๋ก ์ถ๊ฐ
๊ด๋ฆฌ ํ๋ฉด์์ ๋๋ํํธ๋ก ๋ณ๊ฒฝ์ ๋ง๋ค๊ณ ์คํค๋ง๋ฅผ ๊ฒ์ฆํ ๋ค์ ์ ๋ฒ์ ์ ๊ฒ์ํ์ธ์. ๊ฐ๋จํ ์ํฌํ๋ก๋ ์ถฉ๋ถํฉ๋๋ค: ํ์ฌ ๋ฒ์ ์ ๋ณต์ฌํด ๋๋ํํธ๋ก ๋ง๋ค๊ณ ํ๋์ ๊ท์น์ ํธ์ง, ์๋ฒ์ธก ์คํค๋ง ๊ฒ์ฆ ํ ๊ฒ์(๋ฒ์ ์ฆ๊ฐ), ์ด์ ๋ฒ์ ์ ๋ฆฌํฌํ ์ฉ์ผ๋ก ์ฝ๊ธฐ ๊ฐ๋ฅํ๊ฒ ์ ์งํ์ธ์.
ํ ๊ฐ์ง ์ค์ ํผ์ ๋๊น์ง ํ ์คํธํ ๋ค์ ๋ ๋ง์ ํ๋ ํ์ ์ ์ถ๊ฐํ์ธ์. ์จ์ ์๊ตฌ์ฌํญ์ ๊ทธ๋ ๋๋ฌ๋ฉ๋๋ค.
๋ฒ์ ๊ด๋ฆฌ, ๋กค์์, ๋ณ๊ฒฝ ์ฌํญ ์ธก์
๋ชจ๋ ํผ ๋ณ๊ฒฝ์ ๋ฆด๋ฆฌ์ค์ฒ๋ผ ์ทจ๊ธํ์ธ์. ์๋ฒ ๊ธฐ๋ฐ ํผ์ ์ฑ์คํ ์ด ์ ๋ฐ์ดํธ ์์ด ๋ณ๊ฒฝ์ ๋ฐฐํฌํ ์ ์์ง๋ง, ์๋ชป๋ ์คํค๋ง๋ ๋์์ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ์ํฅ์ ์ค ์ ์์ต๋๋ค.
๊ฐ๋จํ ๋ฒ์ ๋ชจ๋ธ๋ก ์์ํ์ธ์. ๋ง์ ํ์ด ํธ์ง์๊ฐ ์์ ํ๊ฒ ๋ฐ๋ณตํ ์ ์๋๋ก draft์ published๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ค๋ฅธ ํ์ ๋น๊ต์ ๊ฐ์ฌ๊ฐ ์ฌ์ด ๋ฒํธ ๋ฒ์ (v12, v13)์ ์ฌ์ฉํฉ๋๋ค. ์ด์จ๋ ๊ฒ์๋ ๋ฒ์ ์ ๋ถ๋ณ์ผ๋ก ์ ์งํ๊ณ ์์ ๋ณ๊ฒฝ์๋ ์ ๋ฒ์ ์ ๋ง๋์ธ์.
๋ณ๊ฒฝ์ ๊ธฐ๋ฅ์ฒ๋ผ ์ ์ง์ ์ผ๋ก ๋กค์์ํ์ธ์: ์๊ท๋ชจ ์ฝํธํธ์ ๋จผ์ ์ ์ฉํ ๋ค ํ๋ํฉ๋๋ค. ํผ์ฒ ํ๋๊ทธ๋ฅผ ์ด๋ฏธ ์ฌ์ฉํ๋ค๋ฉด ํ๋๊ทธ๋ก ํผ ๋ฒ์ ์ ์ ํํ ์ ์์ต๋๋ค. ์๋๋ผ๋ฉด "์ฌ์ฉ์ ์์ฑ์ผ์ด X ์ดํ" ๊ฐ์ ์๋ฒ ๊ท์น์ผ๋ก ๋ถ๋ฅํ์ธ์.
์ค์ ๋ณํ๋ฅผ ์ดํดํ๋ ค๋ฉด ๋ช ๊ฐ์ง ์ ํธ๋ฅผ ์ผ๊ด๋๊ฒ ๋ก๊น ํ์ธ์: ๋ ๋ ์ค๋ฅ(์ ์ ์๋ ํ๋ ํ์ , ์ต์ ๋๋ฝ), ๊ฒ์ฆ ์คํจ(์ด๋ค ๊ท์น์ด ์ด๋ค ํ๋์์ ์คํจํ๋์ง), ์ดํ ์ง์ (๋ง์ง๋ง ๋ณธ ๋จ๊ณ/์น์ ), ์๋ฃ ์๊ฐ(์ ์ฒด ๋ฐ ๋จ๊ณ๋ณ), ์ ์ถ ๊ฒฐ๊ณผ(์ฑ๊ณต, ์๋ฒ ๊ฑฐ๋ถ). ๋ชจ๋ ์ ์ถ์ ํผ ๋ฒ์ ์ ์ฒจ๋ถํ์ธ์.
๋กค๋ฐฑ์ ๋จ์ํ๊ฒ ์ ์งํ์ธ์: v13์ด ์ค๋ฅ๋ฅผ ํญ์ฆ์ํจ๋ค๋ฉด ์ฆ์ v12๋ก ๋๋๋ฆฌ๊ณ v13์ ์์ ํด v14๋ก ๋ง๋์ธ์.
๋์ค์ ๊ณ ์์ํค๋ ํํ ์ค์๋ค
์๋ฒ ๊ธฐ๋ฐ ํผ์ ์ฌ์ฉ์๊ฐ ๋ณด๋ ๊ฒ์ ์ฑ ์ฌ๋ฐฐํฌ ์์ด ๋ฐ๊พธ๊ธฐ ์ฝ๊ฒ ๋ง๋ญ๋๋ค. ํ์ง๋ง ์ง๋ฆ๊ธธ์ ์ฌ๋ฌ ์ฑ ๋ฒ์ ์ด ๋์์ ์กด์ฌํ๋ ์ํฉ์์ ํฐ ์คํจ๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
ํ ๊ฐ์ง ์ค์๋ ์คํค๋ง์ ํฝ์ ๋จ์ UI ์ง์๋ฅผ ๋ฃ๋ ๊ฒ์ ๋๋ค. ์น ์ฑ์ "๋ ์ด ๊ทธ๋ฆฌ๋์ ํดํ ์์ด์ฝ"์ ์ฒ๋ฆฌํ ์ ์์ด๋ ๋ค์ดํฐ๋ธ ํ๋ฉด์ ๋ชปํ ์ ์์ต๋๋ค. ์คํค๋ง๋ ์๋ฏธ(ํ์ , ๋ผ๋ฒจ, ํ์, ์ต์ )์ ์ง์คํ๊ณ ๊ฐ ํด๋ผ์ด์ธํธ๊ฐ ํํ์ ๊ฒฐ์ ํ๊ฒ ํ์ธ์.
๋ ๋ค๋ฅธ ๋ฌธ์ ๋ ํด๋์ ๋ํ ํด๋ฐฑ ์์ด ์๋ก์ด ํ๋ ํ์ ์ ๋์ ํ๋ ๊ฒ์ ๋๋ค. ์ด์ ํด๋ผ์ด์ธํธ๊ฐ "์๋ช "์ด๋ "๋ฌธ์ ์ค์บ"์ ๋ ๋๋งํ ์ค ๋ชจ๋ฅด๋ฉด ์ถฉ๋ํ๊ฑฐ๋ ํ๋๋ฅผ ์กฐ์ฉํ ๋๋ํ ์ ์์ต๋๋ค. ์ ์ ์๋ ํ์ ์ฒ๋ฆฌ ๊ณํ์ ์ธ์ฐ์ธ์: ์์ ํ ํ๋ ์ด์คํ๋๋ฅผ ๋ณด์ฌ์ฃผ๊ฑฐ๋ ๊ฒฝ๊ณ ์ ํจ๊ป ์จ๊ธฐ๊ฑฐ๋ "์ ๋ฐ์ดํธ ํ์"๋ฅผ ์์ฒญํฉ๋๋ค.
๊ฐ์ฅ ํ๋ ๋ฌธ์ ๋ ๋ณ๊ฒฝ์ ์์ด ๋ฒ๋ฆฌ๋ ๊ฒ์ ๋๋ค: ํผ ์ ์ ํธ์ง๊ณผ ์ ์ฅ๋ ๋ต์ ๋ง์ด๊ทธ๋ ์ด์ ์ ๊ฐ์ ๋ฐฐํฌ์ ์๊ฑฐ๋, ๋ฏผ๊ฐํ ๊ท์น์ ํด๋ผ์ด์ธํธ ๊ฒ์ฆ์๋ง ์์กดํ๊ฑฐ๋, ์์ JSON์ด ์ปค์ ธ์ ๋ด์ฉ์ด ๋ถ๋ช ํํด์ง๊ฑฐ๋, ์ต์ ๊ฐ์ ๋ณ๊ฒฝํ๋ฉด์ ์ด์ ๊ฐ์ ์ ํจํ๊ฒ ์ ์งํ์ง ์๊ฑฐ๋, ํ ํด๋ผ์ด์ธํธ ๋ฒ์ ๋ง ๊ฐ์ ํ๊ณ ๊ตฌ๋ฒ์ ๋ค์ดํฐ๋ธ๋ฅผ ์๋ ๊ฒฝ์ฐ์ ๋๋ค.
ํ์ค์ ์ธ ์คํจ ์ฌ๋ก: company_size๋ฅผ team_size๋ก ํ๋ ํค๋ฅผ ๋ฐ๊พธ๋ฉด์ ์ ์ฅ ๋ฐฉ์๋ ๋ฐ๊ฟจ์ต๋๋ค. ์น์ ์ฆ์ ์ ๋ฐ์ดํธ๋์ง๋ง ๊ตฌ๋ฒ์ iOS๋ ์ด์ ํค๋ฅผ ๊ณ์ ๋ณด๋ด๊ณ ๋ฐฑ์๋๋ ์ ์ถ์ ๊ฑฐ๋ถํฉ๋๋ค. ์คํค๋ง๋ฅผ ๊ณ์ฝ์ผ๋ก ๋ค๋ฃจ์ธ์: ์ ํ๋๋ฅผ ๋จผ์ ์ถ๊ฐํ๊ณ ์์ชฝ ํค๋ฅผ ๋น๋ถ๊ฐ ์์ฉํ ๋ค ์ฌ์ฉ์ด ์ค์ด๋ ํ์ ์ ํค๋ฅผ ์ ๊ฑฐํ์ธ์.
์ ํผ ๋ฒ์ ์ ๋ฐฐํฌํ๊ธฐ ์ ์ฒดํฌ๋ฆฌ์คํธ
์ ์คํค๋ง๋ฅผ ๊ฒ์ํ๊ธฐ ์ ์ ์ค์ ์ฌ์ฉ์๊ฐ ์ ์ถํ ์ดํ์๋ง ๋๋ฌ๋๋ ๋ฌธ์ ๋ฅผ ์ ๊ฒํ์ธ์.
๋ชจ๋ ํ๋์ ์์ ์ ์ด๊ณ ์๊ตฌ์ ์ธ ์๋ณ์๊ฐ ์์ด์ผ ํฉ๋๋ค. ๋ผ๋ฒจ, ์์, ๋์๋ง์ ๋ฐ๋์ด๋ ํ๋ id๋ ๋ฐ๋๋ฉด ์ ๋ฉ๋๋ค. "Company size"๊ฐ "Team size"๋ก ๋ฐ๋์ด๋ id๋ ์ ์ง๋์ด์ผ ๋ถ์, ๋งคํ, ์ ์ฅ๋ ์ด์์ด ์๋ํฉ๋๋ค.
์คํค๋ง๋ ๋ผ์ด๋ธ๋ก ๊ฐ๊ธฐ ์ ์ ์๋ฒ์์ ๊ฒ์ฆํ์ธ์. ์คํค๋ง ์๋ต์ API์ฒ๋ผ ๋ค๋ฃจ์ด ํ์ ์์ฑ, ํ์ฉ ํ๋ ํ์ , ์ต์ ๋ชฉ๋ก, ๊ท์น ํํ์์ ๊ฒ์ฌํ์ธ์.
๊ฐ๋จํ ์ฌ์ ์ถ์ ์ฒดํฌ๋ฆฌ์คํธ:
- ํ๋ id๋ ๋ถ๋ณ์ด๊ณ , ์ ๊ฑฐ๋ ํ๋๋ deprecated๋ก ํ์(์กฐ์ฉํ ์ฌ์ฌ์ฉ ๊ธ์ง).
- ํด๋ผ์ด์ธํธ๋ ์ ์ ์๋ ํ๋ ํ์ ์ ๋ํ ํด๋ฐฑ์ ๊ฐ๊ณ ์๋ค.
- ์ค๋ฅ ๋ฉ์์ง๋ ์น๊ณผ ๋ค์ดํฐ๋ธ์์ ์ผ๊ด๋๋ฉฐ ์ฌ์ฉ์๊ฐ ๊ณ ์น ๋ฐฉ๋ฒ์ ์๋ ค์ค๋ค.
- ๋ชจ๋ ์ ์ถ์ ํผ ๋ฒ์ (๋ฐ ๊ฐ๋ฅํ๋ฉด ์คํค๋ง ํด์)์ ํฌํจํ๋ค.
๋ง์ง๋ง์ผ๋ก "๊ตฌ ํด๋ผ์ด์ธํธ, ์ ์คํค๋ง" ์๋๋ฆฌ์ค๋ฅผ ํ ์คํธํ์ธ์. ์๋ฒ ๊ธฐ๋ฐ ํผ์ด ํธํ๊ฒ ๋๊ปด์ง์ง, ํผ๋์ค๋ฝ๊ฒ ์คํจํ ์ง๋ ์ด ํ ์คํธ์์ ๋๋ฌ๋ฉ๋๋ค.
์์: ์ฑ์ ๋ค์ ๋ฐฐํฌํ์ง ์๊ณ ์จ๋ณด๋ฉ ํผ ๋ณ๊ฒฝํ๊ธฐ
ํ SaaS ํ์ ๊ฑฐ์ ๋งค์ฃผ ๋ณ๊ฒฝ๋๋ ์จ๋ณด๋ฉ ํผ์ ๊ฐ๊ณ ์์ต๋๋ค. ์์ ์ ์๋ก์ด ์ ๋ณด๋ฅผ ์์ฒญํ๊ณ , ๊ท์ ํ์ ์ถ๊ฐ ์ง๋ฌธ์ ์๊ตฌํ๋ฉฐ, ์ง์ํ์ ๋ถํ์ํ ํ์ ๋ฌธ์๋ฅผ ์ค์ด๊ธธ ์ํฉ๋๋ค. ์๋ฒ ๊ธฐ๋ฐ ํผ์ ์ฐ๋ฉด ์ฑ์ ํ๋๋ฅผ ํ๋์ฝ๋ฉํ์ง ์๊ณ ๋ฐฑ์๋์ ์ต์ ํผ ์ ์๋ฅผ ์์ฒญํด ๋ ๋๋งํฉ๋๋ค.
2์ฃผ ๋์์ ๋ณํ ์์: 1์ฃผ์ฐจ์๋ Company size ๋๋กญ๋ค์ด(1-10, 11-50, 51-200, 200+)์ ์ถ๊ฐํ๊ณ VAT ๋ฒํธ๋ฅผ ์ ํ์ฌํญ์ผ๋ก ๋ง๋ญ๋๋ค. 2์ฃผ์ฐจ์๋ ๊ท์ ์ฐ์ (๊ธ์ต, ํฌ์ค์ผ์ด ๋ฑ)์ ์ ํํ ๊ฒฝ์ฐ์๋ง ํ์์ธ License ID์ Compliance contact ๊ฐ์ ์กฐ๊ฑด๋ถ ์ง๋ฌธ์ ์ถ๊ฐํฉ๋๋ค.
๋ชจ๋ฐ์ผ ์ ๋น๋๋ฅผ ์ ์ถํ ํ์๊ฐ ์์ต๋๋ค. ์น์ ์ฆ์ ์ ๋ฐ์ดํธ๋๊ณ ๋ค์ดํฐ๋ธ ์ฑ๋ ํผ์ ๋ค์ ๋ก๋ํ๊ฑฐ๋ ์บ์ ๋ง๋ฃ ํ ์๋ก์ด ์คํค๋ง๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ๋ฐฑ์๋ ๋ณ๊ฒฝ์ ํ๋ ์ ์์ ๊ท์น์ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ ๋๋ค.
์ง์๋ ๋ ๊น๋ํด์ง๋๋ค. ๊ฐ ์จ๋ณด๋ฉ ๋ ์ฝ๋์ form_id์ form_version ๊ฐ์ ๋ฉํ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ฉ๋๋ค. ์ฌ์ฉ์๊ฐ "๊ทธ ์ง๋ฌธ์ ๋ชป ๋ดค์ด์"๋ผ๊ณ ํ๋ฉด ์ง์ํ์ ์ฌ์ฉ์๊ฐ ์์ฑํ ์ ํํ ๋ฒ์ ์ ์ด์ด ๋์ผํ ๋ผ๋ฒจ, ํ์ ํ๋๊ทธ, ์กฐ๊ฑด๋ถ ํ๋๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๋ค์ ๋จ๊ณ: ์์ ํ๋กํ ํ์ ์ ๋ง๋ค๊ณ ํ์ฅํ๊ธฐ
์์ฃผ ๋ฐ๋๊ณ ์ํฅ์ด ๋ช ํํ ํผ ํ๋(์จ๋ณด๋ฉ, ์ง์ ์ ์, ๋ฆฌ๋ ์บก์ฒ)๋ฅผ ์ ํํ์ธ์. ์ฒซ๋ ์ง์ํด์ผ ํ ๊ธฐ๋ฅ์ ์ ์ํ์ธ์: ์ ํ๋ ํ๋ ํ์ ์งํฉ(ํ ์คํธ, ์ซ์, select, ์ฒดํฌ๋ฐ์ค, ๋ ์ง)๊ณผ ๋ช ๊ฐ์ง ๊ธฐ๋ณธ ๊ท์น(required, min/max, ๊ฐ๋จํ ์กฐ๊ฑด๋ถ show/hide). ์ดํ ํ๋ถํ ์ปดํฌ๋ํธ๋ฅผ ์ถ๊ฐํ์ธ์.
๋ฒ์๋ฅผ ์ขํ ์๋ํฌ์๋ ํ๋กํ ํ์ ์ ๋ง๋์ธ์: ํ ํผ์ ๋ณํํ๊ณ ๋ฐ์ดํฐ ๋ชจ๋ธ(ํผ, ๋ฒ์ , ํ๋, ์ต์ , ๊ท์น)์ ์ค๊ณํ๊ณ API๊ฐ ๋ฐํํ JSON์ ์ ์ํ ๋ค ์น๊ณผ ๋ชจ๋ฐ์ผ์ ์์ ๋ ๋๋ฌ๋ฅผ ๋ง๋ค์ด ์ผ๊ด๋ ์๋ฒ์ธก ๊ฒ์ฆ์ ์ ์ฉํ์ธ์.
๊ตฌ์ฒด์ ์ฒซ ์ฑ๊ณต ์ฌ๋ก: "Company size"๋ฅผ ์์ ์ ๋ ฅ์์ ๋๋กญ๋ค์ด์ผ๋ก ๋ฐ๊พธ๊ณ , ํ์ ๋์ ์ฒดํฌ๋ฐ์ค๋ฅผ ์ถ๊ฐํ๋ฉฐ, "Contact me"๊ฐ ์ ํ๋์ง ์์์ ๋๋ "Phone number"๋ฅผ ์จ๊ธฐ์ธ์. ์คํค๋ง์ ๋ ๋๋ฌ๊ฐ ์ ๋๋ก ์ค์ ๋ผ ์๋ค๋ฉด ์ด๋ฐ ์ ๋ฐ์ดํธ๋ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ผ ๋ฟ ํด๋ผ์ด์ธํธ ๋ฆด๋ฆฌ์ค๊ฐ ์๋๋๋ค.
์์์ ์ผ๋ก ๋ชจ๋ ๋ฐฑ์๋ ์๋ํฌ์ธํธ์ ํด๋ผ์ด์ธํธ๋ฅผ ๋ง๋ค๊ธฐ ์ด๋ ต๋ค๋ฉด AppMaster (appmaster.io) ๊ฐ์ ๋ ธ์ฝ๋ ํ๋ซํผ์ด ์ค์ฉ์ ์ผ ์ ์์ต๋๋ค. ํ ๊ณณ์์ ์คํค๋ง์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ธ๋งํ๊ณ ๋ฐฑ์๋์์ ๊ฒ์ฆ์ ์ ์งํ๋ฉด์ ์น๊ณผ ๋ค์ดํฐ๋ธ ์ฑ์ ์์ฑํด ์๋ฒ๊ฐ ์ค๋ช ํ๋ ๊ฒ์ ๋ ๋๋งํ๊ฒ ํ ์ ์์ต๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
ํผ ์ ์๊ฐ ์ฑ ๋ฆด๋ฆฌ์ค์ ํ๋์ฝ๋ฉ๋์ด ์์ด ์์ ์์ ๋ ์ฝ๋ ๋ณ๊ฒฝ, QA, ๋ฐฐํฌ๋ฅผ ํ์๋ก ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ชจ๋ฐ์ผ์ ๊ฒฝ์ฐ ์คํ ์ด ์ฌ์ฌ๋ฅผ ๊ธฐ๋ค๋ ค์ผ ํ๊ณ ์ ๋ฐ์ดํธํ์ง ์์ ์ฌ์ฉ์๋ค์ด ๋จ์ ์์ด ์ง์ํ์ด ์ฌ๋ฌ ๋ฒ์ ์ ํผ์ ์ฒ๋ฆฌํด์ผ ํ๋ ์ํฉ์ด ๋ฐ์ํฉ๋๋ค.
์๋ฒ ๊ธฐ๋ฐ ํผ์ ์๋ฒ๊ฐ ๋ณด๋ด๋ ์ ์๋ฅผ ์ฑ์ด ๋ ๋๋งํ๋ ๋ฐฉ์์ ๋๋ค. ์ฑ์ ์์ ์ ์ธ UI ๋น๋ฉ ๋ธ๋ก์ ์ ์งํ๊ณ ์๋ฒ๋ ๊ฐ ๊ณต๊ฐ ๋ฒ์ ์ ํ๋, ์์, ๋ผ๋ฒจ, ๊ท์น์ ์ ์ดํฉ๋๋ค.
์จ๋ณด๋ฉ, ์ง์ ์ ์, ํ๋กํ ์ค์ , ์ค๋ฌธ์กฐ์ฌ ๋ฐ ๊ด๋ฆฌ/๋ด๋ถ ํ๋ฆ์ฒ๋ผ ์ง๋ฌธ๊ณผ ๊ฒ์ฆ์ด ์์ฃผ ๋ฐ๋๋ ๊ณณ์์ ์์ํ์ธ์. ํด๋ผ์ด์ธํธ ๋ฆด๋ฆฌ์ค ์์ด๋ ์นดํผ, ํ์ ํ๋๊ทธ, ์ต์ , ์กฐ๊ฑด ๊ท์น์ ์กฐ์ ํด์ผ ํ ๋ ๊ฐ์ฅ ์ ์ฉํฉ๋๋ค.
ํผ UI ์์ฒด๊ฐ ์ ํ์ด๊ฑฐ๋ ๋งค์ฐ ๋ง์ถคํ ์ํธ์์ฉ, ๊ฐํ ์ ๋๋ฉ์ด์ , ํ๋ซํผ ๊ณ ์ ์ ๋์์ด ํ์ํ ๊ฒฝ์ฐ๋ ํผํ์ธ์. ์์ ์คํ๋ผ์ธ ์ฐ์ (offline-first)์ผ๋ก ๋์ํด์ผ ํ๋ ํ๋ฆ์๋ ๋ถ์ ํฉํฉ๋๋ค.
์์ ์ ์ธ Form ๋ ์ฝ๋์ ๋ถ๋ณ์ FormVersion ์ค๋ ์ท์ ์ฌ์ฉํ์ธ์. ๋ฒ์ ๋ณ๋ก Field ๋ ์ฝ๋(ํ์ , ํค, ํ์ ์ฌ๋ถ, ์์น)์ select ๊ณ์ด ํ๋์ Options, ๊ฐ๋จํ Layout/๊ทธ๋ฃน ๋ชจ๋ธ์ ์ ์ฅํ๊ณ , ์ ์ถ์ form_id์ version์ ์ฐธ์กฐํด ๋ณ๋๋ก ๋ณด๊ดํ์ธ์.
๊ฐ ํ๋์ ๋ ์ด๋ธ์ด ๋ฐ๋๋๋ผ๋ ์ ๋ ๋ฐ๋์ง ์๋ ์๊ตฌ ์๋ณ์(field id)๋ฅผ ๋ถ์ฌํ์ธ์. ์๋ก์ด ์๋ฏธ๊ฐ ํ์ํ๋ฉด ์ ํ๋ id๋ฅผ ์ถ๊ฐํ๊ณ ์ด์ ๊ฒ์ ์ฌ์ฉ ์ค๋จ(deprecated)์ผ๋ก ์ฒ๋ฆฌํด ๋ถ์, ์ ์ฅ๋ ์ด์, ๊ตฌ๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ๊นจ์ง์ง ์๊ฒ ํ์ธ์.
ํด๋ผ์ด์ธํธ ๋ ๋๋ฌ๋ฅผ ๋ ์ง์คํธ๋ฆฌ๋ก ์ทจ๊ธํ์ธ์: ๊ฐ ํ๋ ํ์ ์ ์น, iOS, Android์ ์๋ ค์ง UI ์ปดํฌ๋ํธ์ ๋งคํ๋ฉ๋๋ค. ์คํค๋ง๋ ํ์ , ๋ผ๋ฒจ, ์์, ํ์ ์ฌ๋ถ, ๊ท์น ๋ฑ ์๋ฏธ ์ค์ฌ์ผ๋ก ์์ ํ๊ณ ํฝ์ ์์ค ๋ ์ด์์ ์ง์๋ ํผํ์ธ์.
์ฆ๊ฐ์ ์ธ ํผ๋๋ฐฑ์ ์ํด ํด๋ผ์ด์ธํธ์์ ๊ฐ๋จํ ๊ฒ์ฌ(ํ์, ์ต์ ๊ธธ์ด ๋ฑ)๋ฅผ ํ ์ ์์ง๋ง, ๋ชจ๋ ๊ท์น์ ์๋ฒ์์ ์ต์ข ์ ์ผ๋ก ๊ฐ์ ํ์ธ์. ์๋ฒ๋ ์์ ์ ์ธ ์ฝ๋์ ์คํจํ ํ๋ id๋ฅผ ํฌํจํ ์ค๋ฅ ๊ตฌ์กฐ๋ฅผ ๋ฐํํด ํด๋ผ์ด์ธํธ๊ฐ ์ผ๊ด๋ ๋ฉ์์ง๋ฅผ ๋ณด์ฌ์ค ์ ์๊ฒ ํฉ๋๋ค.
๋ชจ๋ ๋ณ๊ฒฝ์ ๋ฒ์ ์ ๋งค๊ธฐ๊ณ ๊ณต๊ฐ๋ ๋ฒ์ ์ ๋ถ๋ณ์ผ๋ก ์ ์งํ์ธ์. ์๊ท๋ชจ ์ฝํธํธ์ ๋จผ์ ๋ฐฐํฌํ ๋ค ํ๋ํ๊ณ , ๋ ๋ ์ค๋ฅ, ๊ฒ์ฆ ์คํจ, ์ดํ ์ง์ , ์๋ฃ ์๊ฐ, ์ ์ถ ๊ฒฐ๊ณผ ๊ฐ์ ์ ํธ๋ฅผ ํผ ๋ฒ์ ๊ณผ ํจ๊ป ๊ธฐ๋กํด ๋น๊ต ๋ฐ ๋กค๋ฐฑ์ ๋น ๋ฅด๊ฒ ํ์ธ์.
์์์ ์ผ๋ก ๋ชจ๋ ๋ฐฑ์๋ ์๋ํฌ์ธํธ์ ํด๋ผ์ด์ธํธ ํ๋ฆ์ ๋ง๋ค๊ธฐ ์ด๋ ต๋ค๋ฉด AppMaster (appmaster.io) ๊ฐ์ ๋ ธ์ฝ๋ ๋๊ตฌ๊ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ์ ๊ฒ์ฆ์ ๋ฐฑ์๋์์ ๋ชจ๋ธ๋งํ๊ณ ์๋ฒ ์ ๊ณต ์คํค๋ง๋ฅผ ๋ ๋๋งํ๋ ์นยท๋ค์ดํฐ๋ธ ์ฑ์ ์์ฑํด ๋ฐ๋ณต ๊ฐ๋ฐ ๋ถ๋ด์ ์ค์ฌ์ค๋๋ค. ๋ค๋ง ์คํค๋ง ๊ณ์ฝ์ ๋ฒ์ ๊ด๋ฆฌํ๊ณ ์์ ์ ์ผ๋ก ์ ์งํ๋ ์ฑ ์์ ์ฌ์ ํ ํ์ํฉ๋๋ค.


