Go๋ก RESTful API ๊ตฌ์ถ
Go ๋ฐ AppMaster.io ์ฝ๋ ์๋ ํ๋ซํผ์ ์ฌ์ฉํ์ฌ ๊ฐ๋ ฅํ RESTful API๋ฅผ ์ค๊ณ, ๊ตฌ์ถ ๋ฐ ๋ฐฐํฌํ๋ ํ์ ์์๋ฅผ ์์๋ณด์ธ์. API ๊ฒ์์ ์ ๊ทธ๋ ์ด๋ํ์ธ์!

RESTful API ์ดํด
RESTful(Representational State Transfer) API๋ ์ํํธ์จ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด๋ค ์ฝ๊ฒ โโํตํฉํ ์ ์๊ฒ ํด์ฃผ๋ API (์ ํ๋ฆฌ์ผ์ด์ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค)๋ฅผ ์ค๊ณํ๊ณ ๊ตฌ์ถํ๊ธฐ ์ํด ๋๋ฆฌ ์ฑํ๋ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค. HTTP๋ฅผ ํตํด ์น์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ์กํจ์ผ๋ก์จ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ก ๋ค๋ฅธ ๋ถ๋ถ ๊ฐ์ ์ํํ ํต์ ๋๋ ์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. REST ์ํคํ ์ฒ๋ ์น ์๋น์ค์ ์ฑ๋ฅ, ํ์ฅ์ฑ ๋ฐ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅ์ฑ์ ๊ฐ์ ํ๊ธฐ ์ํ ์ผ๋ จ์ ์ ์ฝ ์กฐ๊ฑด๊ณผ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฆ ๋๋ค.
RESTful API๋ฅผ ์ค๊ณํ ๋ ์๋์ ์ ๊ณต๋ 6๊ฐ์ง ๊ธฐ๋ณธ ์ ์ฝ ์กฐ๊ฑด์ ๋ฐ๋ฅด๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
- ์ํ ๋น์ ์ฅ: RESTful API๋ ํด๋ผ์ด์ธํธ ๋๋ ํด๋ผ์ด์ธํธ์ ํ์ฌ ์ํ์ ๋ํ ์๋ฒ ์ธก ์ ๋ณด๋ฅผ ์ ์ฅํ์ง ์์ต๋๋ค. ์คํ๋ ค ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก์ ๊ฐ ์์ฒญ์๋ ์๋ฒ๊ฐ ์ด๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ์ ๋ณด๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ-์๋ฒ ์ํคํ ์ฒ: ๊ฐ RESTful API๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ผ๋ ๋ ๊ฐ์ง ๊ธฐ๋ณธ ๋ถ๋ถ์ผ๋ก ๊ตฌ๋ถ๋ฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ฒ๋ฆฌํ๊ณ ์๋ฒ๋ ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ์ฒ๋ฆฌ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ์ด๋ฌํ ๋ถ๋ฆฌ๋ฅผ ํตํด ๋ฌธ์ ๋ฅผ ๋ ์ ๋ถ๋ฆฌํ๊ณ ๋ ๋ฆฝ์ ์ธ ํ์ฅ ๋ฐ ๋ ์ฌ์ด ์ ์ง ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
- ์บ์ ๊ฐ๋ฅ์ฑ: API ์๋ต์ ์บ์ํ ์ ์์ต๋๋ค. ์ฆ, ํด๋ผ์ด์ธํธ๊ฐ ์๋ต ์ฌ๋ณธ์ ์ ์ฅํ๊ณ ์๋ฒ์์ ๋์ผํ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ์์ฒญํ์ง ์๊ณ ๋ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฑ๋ฅ๊ณผ ํจ์จ์ฑ์ ๋ชจ๋ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค.
- ๊ณ์ธตํ๋ ์์คํ : RESTful API๋ ๊ณ์ธต ๋ด์ ๊ตฌ์ฑ ์์๊ฐ ๋ฐ๋ก ์ ๋๋ ์๋์ ์๋ ๊ตฌ์ฑ ์์๋ง ๋ณด๋ ๊ณ์ธตํ๋ ์์คํ ์ํคํ ์ฒ๋ฅผ ๋ฐ๋ฆ ๋๋ค. ๊ทธ ๊ฒฐ๊ณผ ํ์์ ๋ฐ๋ผ ์ ์ง ๊ด๋ฆฌ ๋ฐ ํ์ฅ์ด ๋ ์ฌ์ด ๋ชจ๋์ ์ค๊ณ๊ฐ ๊ฐ๋ฅํด์ก์ต๋๋ค.
- Code-On-Demand: ํ์๋ ์๋์ง๋ง REST๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํด๋ผ์ด์ธํธ ์ธก์์ ์ ํ์ ์ผ๋ก ์ฝ๋๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ์คํํ ์ ์์ต๋๋ค.ํ์ํ ๊ฒฝ์ฐ ๊ธฐ๋ฅ์ ํ์ฅํ๊ธฐ ์ํ JavaScript .
- ๊ท ์ผํ ์ธํฐํ์ด์ค: RESTful API๋ ํต์ ์ ์ํ ์ผ๊ด๋ ์ธํฐํ์ด์ค๋ฅผ ์์ฑํ๊ธฐ ์ํด ํ์ค HTTP ๋ฉ์๋(GET, POST, PUT ๋ฐ DELETE ๋ฑ) ์งํฉ์ ์์กดํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด API์ ์ํธ ์์ฉํ๋ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ํ๋๊ณ ๋ณด๋ค ์ง๊ด์ ์ผ๋ก ๊ตฌํํ ์ ์์ต๋๋ค.
RESTful API ๊ฐ๋ฐ์ ์ํด Go๋ฅผ ์ ํํด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
Golang ์ด๋ผ๊ณ ๋ ํ๋ Go๋ Google์์ ๋ง๋ ์ ์ ์ผ๋ก ์ ํ์ด ์ง์ ๋๊ณ ์ปดํ์ผ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค. ์๋ ๋์ Go๋ ๋จ์์ฑ, ์ฑ๋ฅ ๋ฐ ๊ฐ๋ ฅํ ๋๊ตฌ๋ก ์ธํด ๊ฐ๋ฐ ์ปค๋ฎค๋ํฐ์์ ์๋นํ ์ฃผ๋ชฉ์ ๋ฐ์์ต๋๋ค. ๋ฐฑ์๋ ๊ฐ๋ฐ, ํนํ RESTful API ๊ตฌ์ถ์ ํนํ ์ธ๊ธฐ๊ฐ ์์ต๋๋ค. RESTful API ๊ฐ๋ฐ์ ์ํด Go๋ฅผ ์ ํํ๋ ๋ช ๊ฐ์ง ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ฑ๋ฅ: ์ปดํ์ผ๋ ์ธ์ด์ธ Go๋ ๋ค์๊ณผ ๊ฐ์ ํด์ ์ธ์ด์ ๋นํด ์ธ์์ ์ธ ์ฑ๋ฅ ์ด์ ์ ์๋ํฉ๋๋ค. ํ์ด์ฌ , PHP ๋๋ ๋ฃจ๋น. ์ด๋ก ์ธํด Go๋ ์งง์ ๋๊ธฐ ์๊ฐ์ผ๋ก ๋ง์ ์์ ์์ฒญ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ ํ์ฅ ๊ฐ๋ฅํ ๊ณ ์ฑ๋ฅ RESTful API๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ๊ฐ๋ ฅํ ๊ฒฝ์์๊ฐ ๋์์ต๋๋ค.
- ๋์์ฑ: ๋ค์๊ณผ ๊ฐ์ Go์ ๋ด์ฅ ๋์์ฑ ๊ธฐ๋ฅ ๊ณ ๋ฃจํด ๊ณผ ์ฑ๋์ ์ฌ์ฉํ๋ฉด ๋์์ ์ฌ๋ฌ ์์ ์ ๋ ๊ฐ๋จํ๊ณ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๋์์ฑ์ ํนํ ํธ๋ํฝ์ด ๋ง์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ๋ฌ ์์ฒญ์ ๋์์ ์ฒ๋ฆฌํด์ผ ํ๋ RESTful API์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
- ๊ฐ๋ ฅํ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ: Go์๋ HTTP ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฅ์ด ํฌํจ๋ ํ๋ถํ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ต๋๋ค. JSON ์ธ์ฝ๋ฉ ๋ฐ ๋์ฝ๋ฉ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ํธ ์์ฉ. ์ด ํฌ๊ด์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ RESTful API ๊ฐ๋ฐ์ ํฌ๊ฒ ๋จ์ํํ๊ณ ํ์ฌ ํจํค์ง์ ๋ํ ์์กด๋๋ฅผ ์ต์ํํ ์ ์์ต๋๋ค.
- ์ ์ ํ์ดํ ๋ฐ ์ ํ ์์ ์ฑ: Go์ ์๊ฒฉํ ํ์ดํ ์์คํ ์ ์ปดํ์ผ ์ค์ ์ค๋ฅ๋ฅผ ํฌ์ฐฉํ์ฌ ๋ณด๋ค ๊ฐ๋ ฅํ๊ณ ์์ ํ๋ฉฐ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ฝ๋๋ก ์ด์ด์ง๋๋ค. ํ์ ์์ ์ฑ์ ๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ฒ๋ฆฌํ ๋ ํนํ ์ ์ฉํ์ฌ ์ ๋ขฐํ ์ ์๋ RESTful API๋ฅผ ๋ณด๋ค ์ฝ๊ฒ โโ๊ตฌ์ถํ ์ ์์ต๋๋ค.
- ๋ฐฐํฌ ์ฉ์ด์ฑ: Go๋ ์ธ๋ถ ์ข ์์ฑ ์์ด ๋จ์ผ ๋ฐ์ด๋๋ฆฌ๋ก ์ปดํ์ผ๋๋ฏ๋ก Go ๊ธฐ๋ฐ RESTful API ๋ฐฐํฌ๊ฐ ๋งค์ฐ ์ฝ์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ณด๋ค ์ฝ๊ฒ โโ๋ฐฐํฌ ๋ฐ ํ์ฅํ ์ ์์ ๋ฟ๋ง ์๋๋ผ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ฝ๊ฒ ์ค์ ํ ์ ์์ต๋๋ค.
์ด๋ป๊ฒ AppMaster.io๊ฐ ๋์์ด ๋ ์ ์์ต๋๋ค
๊ทธ๋งํผ AppMaster.io ํ๋ซํผ์ Go๋ก RESTful API๋ฅผ ๊ตฌ์ถํ ๋ ๊ฒ์ ์ฒด์ธ์ ์ ๋๋ค. ์ ํ์ ๋น์ดAppMaster ์no-code ํ๋ซํผ์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ์๋ ๊ธฐ์กด ์ฝ๋ฉ์ ์ฌ์ฉํ ๋๋ณด๋ค ํจ์ฌ ์งง์ ์๊ฐ์ RESTful API๋ฅผ ์ค๊ณ, ๊ตฌ์ถ ๋ฐ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
์ ํจ๊ปAppMaster.io, ๊ฐ๋ฐ์๋ ๋ณต์กํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์์ฑํ๊ณ ๋น์ฆ๋์ค ๋ก์ง์ ์ ์ํ๋ฉฐ API๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.์๊ฐ์ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ endpoints. ๋ํ ์ด ํ๋ซํผ์ Go์ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ฉ ์์ค ์ฝ๋๋ฅผ ์๋์ผ๋ก ์์ฑํ ์ ์์ผ๋ฏ๋ก ์์์ ์ผ๋ก ์ฝ๋ฉํ๋ ๋ฐ ๋ง์ ์๊ฐ์ ๋ค์ด์ง ์๊ณ Go์ ์ด์ ์ ํ์ฉํ๋ ค๋ ์ฌ๋๋ค์๊ฒ ํ์ํ ์ ํ์ ๋๋ค.
๋ง๋๋ ์ฃผ์ ๊ธฐ๋ฅ ์ค ์ผ๋ถAppMaster.io๋ Go๋ฅผ ์ฌ์ฉํ RESTful API ๊ฐ๋ฐ์ ์ํ ํ์ํ ์ ํ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋ฐ์ดํฐ ๋ชจ๋ธ ์์ฑ ๋ฐ ๊ตฌ์ฑ์ ์ํ ์๊ฐ์ ๋ฐฑ์๋ ์ฒญ์ฌ์ง ์ค๊ณendpoints
- ๋น์ฆ๋์ค ๋ก์ง์ ์๊ฐ์ ์ผ๋ก ์ ์ํ๊ธฐ ์ํ Business Process Designer
- Go ๊ธฐ๋ฐ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ์๋ ์์ค ์ฝ๋ ์์ฑ
- ๊ฐํธํ API ๋ฌธ์ํ ๋ฐ ํ ์คํธ๋ฅผ ์ํ Swagger ๋ฌธ์ ์์ฑ
- ๋ค์์ ์ฌ์ฉํ์ฌ ํด๋ผ์ฐ๋์ ์ฝ๊ฒ ๋ฐฐํฌ ๋์ปค ์ปจํ ์ด๋ ์ง์
- ๋ด์ฅ ๋ณด์ ๊ธฐ๋ฅ ๋ฐ ์ธ์ฆ ์ง์
- ๋ค์ํ ํ์ฌ ์๋น์ค์์ ํตํฉ ๊ธฐ๋ฅ
์ ๋์์ผ๋กAppMaster.io, Go๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ ฅํ๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ RESTful API๋ฅผ ๋ช ์๊ฐ ๋ง์ ๊ตฌ์ถ ๋ฐ ๋ฐฐํฌํ ์ ์์ผ๋ฏ๋ก ์๊ฐ๊ณผ ๋น์ฉ ํจ์จ์ฑ ๋ชจ๋์์ ๊ฒฝ์ ์ฐ์๋ฅผ ํ๋ณดํ ์ ์์ต๋๋ค.
ํ์ AppMaster ํ๋ซํผ
๊ทธ๋งํผAppMaster.io ํ๋ซํผ์ ๊ฐ๋ ฅํ์ฌ์ฉ์๊ฐ ์ฝ๋๋ฅผ ์์ฑํ์ง ์๊ณ ๋ ๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์๋ ์ฝ๋ ์๋ ๋๊ตฌ์ ๋๋ค . ํฌ๊ด์ ์ด๊ณ ์ฌ์ฉ์ ์นํ์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ํตํด ํ๋ซํผ์ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ํฌ๊ฒ ๊ฐ์ํํฉ๋๋ค. ์ด ์น์ ์์๋ Go๋ฅผ ์ฌ์ฉํ์ฌ RESTful API๋ฅผ ํจ์จ์ ์ผ๋ก ์ค๊ณํ๊ณ ๊ตฌ์ถํ ์ ์๋๋ก ํ๋ซํผ์ ์์ํ๋ ๊ณผ์ ์ ์๋ดํฉ๋๋ค.
์์ํ๋ ค๋ฉดLearn์ ์ก์ธ์คํ ์ ์๋ ๋ฌด๋ฃ ๊ณ์ & ํ์ ๊ณํ. ๋ก๊ทธ์ธํ๋ฉด ํ๋ก์ ํธ ๊ด๋ฆฌ๋ฅผ ์ํ ๊ธฐ๋ณธ ๋์๋ณด๋๊ฐ โโํ์๋ฉ๋๋ค.
ํด๋ฆญ์์ํ๋ ค๋ฉด "์ ํ๋ก์ ํธ ๋ง๋ค๊ธฐ" ๋ฒํผ์ ๋๋ฅด์ญ์์ค. ์ ํํ๋คRESTful API์ ํ๋ก์ ํธ ์ ํ์ผ๋ก "๋ฐฑ์๋" , ํ๋ก์ ํธ ์ด๋ฆ์ ์ง์ ํ๊ณ ํด๋ฆญ "๋ค์" AWS, Google Cloud Platform ๋๋์ ํธ๋์ ๋ฐ๋ผ Microsoft Azure .
ํ๋ก์ ํธ๊ฐ ์์ฑ๋๋ฉด ์ ํ๋ก์ ํธ์ ๊ธฐ๋ณธ ํ์ด์ง๋ก ์ด๋ํด์ผ ํฉ๋๋ค. ๋ฐ์ดํฐ ๋ชจ๋ธ, ๋น์ฆ๋์ค ํ๋ก์ธ์ค, ๋์ , ์คํ ๋ฆฌ์ง, Cron ์์ ๋ฐ ์ค์ ๊ณผ ๊ฐ์ ๋ค์ํ ์น์ ์ด ์๋ ์ฌ์ด๋๋ฐ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ์ด ์น์ ์ ๋ค์์ ์ฌ์ฉํ์ฌ API๋ฅผ ์์ฑํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.AppMaster.io์ ๊ธฐ๋ฅ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค.
API ๋ง๋ค๊ธฐ AppMaster ์ ๋ฐฑ์๋ ์ฒญ์ฌ์ง
RESTful API ์์ฑ์๋ ๋ค์ํ ๋ฆฌ์์ค์ ๋ํ ์์ ๊ณผ ํด๋น ๋ฆฌ์์ค์ ๋ํ CRUD(๋ง๋ค๊ธฐ, ์ฝ๊ธฐ, ์ ๋ฐ์ดํธ, ์ญ์ ) ์์ ์ด ํฌํจ๋ฉ๋๋ค. ์ ํจ๊ปAppMaster.io์ ๋ฐฑ์๋ ๋ธ๋ฃจํ๋ฆฐํธ ๊ธฐ๋ฅ์ผ๋ก ๋ฐ์ดํฐ ๋ชจ๋ธ, ๋น์ฆ๋์ค ๋ก์ง ๋ฐ ์๋ฒ๋ฅผ ์๊ฐ์ ์ผ๋ก ๋์์ธํ ์ ์์ต๋๋ค.API์ ๋ํ endpoints.
๋ค์์ ํด๋ฆญํ์ฌ ์์ํ์ญ์์ค.API ๋ฆฌ์์ค๋ฅผ ์ ์ํ ์ ์๋ ์ฌ์ด๋๋ฐ์ "๋ฐ์ดํฐ ๋ชจ๋ธ" ์น์ . ํด๋ฆญAPI์ ๋ํ ์ ๋ฆฌ์์ค๋ฅผ ์ค๊ณํ๊ธฐ ์ํ "์ ๋ฐ์ดํฐ ๋ชจ๋ธ ๋ง๋ค๊ธฐ" . ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ด๋ฆ์ ์ ๊ณตํ๊ณ ๊ฐ ์ ํ์ ํ๋๋ฅผ ์ง์ ํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์์ ๋ง๋ค ์ ์์ต๋๋ค.๋ค์๊ณผ ๊ฐ์ ํ๋๊ฐ ์๋ "๊ณ ๊ฐ" ๋ฐ์ดํฐ ๋ชจ๋ธ "์ด๋ฆ", "์ด๋ฉ์ผ" ๋ฐ "์ ํ ๋ฒํธ".
๋ฐ์ดํฐ ๋ชจ๋ธ์ด ์ ์๋๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๋ง์ด๊ทธ๋ ์ด์ ์คํฌ๋ฆฝํธ๋ฅผ ์๋์ผ๋ก ์์ฑํ์ฌ ์คํค๋ง์ ๋ํ ๋ฒ์ ์ ์ด๋ฅผ ์ ์งํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํ๋ก์ ํธ ์๊ตฌ ์ฌํญ์ด ๋ณ๊ฒฝ๋ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ์ํํ๊ฒ ์ ๊ทธ๋ ์ด๋ํ ์ ์์ต๋๋ค.
Business Process Designer๋ก ๋น์ฆ๋์ค ๋ ผ๋ฆฌ ์ ์
Business Process Designer๋ ๋ค์์ ์๊ฐ์ ๋๊ตฌ์ ๋๋ค.์ฝ๋๋ฅผ ์์ฑํ์ง ์๊ณ ๋ API์ ๋ํ ๋น์ฆ๋์ค ๋ก์ง์ ์์ฑํ ์ ์๋ AppMaster.io ํ๋ซํผ์ ๋๋ค. ์ด๋ ๋ฐ์ดํฐ ํ๋ฆ์ ์ ์ดํ๊ณ ์กฐ์จ๋ ๋ฐฉ์์ผ๋ก ์์ ์ ์คํํ ์ ์๊ฒ ํ๋ฏ๋ก ๋น ๋ฅด๊ณ ๊ฐ๋ ฅํ API๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ์ค์ํ ์ธก๋ฉด์ ๋๋ค.
์์ํ๋ ค๋ฉด์ฌ์ด๋๋ฐ์ "๋น์ฆ๋์ค ํ๋ก์ธ์ค" ์น์ . API์ ๊ด๋ จ๋ ๋น์ฆ๋์ค ํ๋ก์ธ์ค ๋ชฉ๋ก์ด ํ์๋ฉ๋๋ค. ์ ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ ค๋ฉด ๋ค์์ ํด๋ฆญํ์ญ์์ค. "์ ๋น์ฆ๋์ค ํ๋ก์ธ์ค ๋ง๋ค๊ธฐ"๋ฅผ ํด๋ฆญ ํ๊ณ ํ๋ก์ธ์ค ์ด๋ฆ์ ์ง์ ํฉ๋๋ค.
๋น์ฆ๋์ค ํ๋ก์ธ์ค ๋์์ด๋์์ ๋ค์์ ์ํํ ์ ์์ต๋๋ค.๋ค์๊ณผ ๊ฐ์ ๋ค์ํ ์์ ์ ๋ํ๋ด๋ ๋ ธ๋ drag and drop "๋ ์ฝ๋ ๋ง๋ค๊ธฐ", "๊ธฐ๋ก ์ ๋ฐ์ดํธ", "์ด๋ฉ์ผ ๋ณด๋ด๊ธฐ" ๋ฑ์ API์ ๊ธฐ๋ณธ ๋ ผ๋ฆฌ๋ฅผ ๋ํ๋ด๋ ์๊ฐ์ ์์๋์์ ์ฐ๊ฒฐํฉ๋๋ค. ๋ํ ๊ฐ ๋ ธ๋์ ์์ฑ์ ํธ์งํ์ฌ ๋งค๊ฐ ๋ณ์๋ฅผ ์ ์ํ๊ณ ํ์์ ๋ฐ๋ผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์ด ์ ์ฐํ๊ณ ์ง๊ด์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ฉด API์ ํ์ํ ๋งํผ ์ ๊ตํ ๋น์ฆ๋์ค ๋ก์ง์ ์์ฑํ ์ ์์ต๋๋ค.
๋น์ฆ๋์ค ํ๋ก์ธ์ค๊ฐ ์ ์๋๋ฉด ์ด๋ฅผ ์๋ฒ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.endpointsAPI๊ฐ ์์ฒญ์ ์์ ํ๊ณ ํด๋น ๋น์ฆ๋์ค ๋ก์ง์ ์คํํ ์ ์๋๋ก ํ๋ "Endpoints" ์น์ . ์ด๋ฌํ ๋ฐฉ์์ผ๋ก RESTful API๋ ์น ๋๋ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ฐ์ ํด๋ผ์ด์ธํธ์์ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋ ๋น ๋ฅด๊ณ ๊ฐ๋ ฅํ ๋ฐ์ดํฐ ๊ธฐ๋ฐ ์๋น์ค๊ฐ ๋ฉ๋๋ค.
Swagger๋ก API ๋ฌธ์ํ ๋ฐ ํ ์คํธ
์ ์ ํ ๋ฌธ์๋ ๋ค์ํ API์ ๋ชฉ์ ๊ณผ ์ฌ์ฉ๋ฒ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋๋ฏ๋ก ๋ชจ๋ API์ ๋งค์ฐ ์ค์ํฉ๋๋ค.endpoints. ์ด๋ฅผ ์ฉ์ดํ๊ฒ ํ๊ธฐ ์ํด,AppMaster.io ํ๋ซํผ์์ ์๋ ์์ฑ์๋ฒ์ฉ Swagger (OpenAPI) ๋ฌธ์๊ฐ ํ๋ก์ ํธ์ endpoints.Swagger ๋ ๊ฐ๋ฐ์๊ฐ RESTful API๋ฅผ ์ค๊ณ, ๊ตฌ์ถ, ๋ฌธ์ํ ๋ฐ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ API ๋ฌธ์ํ ๋๊ตฌ ์ธํธ์ ๋๋ค. ๊ทธ๋งํผSwagger UI๋ API ๋ฆฌ์์ค๋ฅผ ์๊ฐํํ๊ณ ์ํธ ์์ฉํ ์ ์๋ ์ฌ์ฉ์ ์นํ์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
Swagger ๋ฌธ์ ์์ฑ AppMaster.io
์ป์ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.API์ ๋ํ Swagger ์ค๋ช ์AppMaster.io ํ๋ซํผ.
- ์์ ํ๋ก์ ํธ ๋์๋ณด๋๋ฅผ ์ฝ๋๋ค.AppMaster.io Studio ๊ณ์ .
- ๋ฅผ ํด๋ฆญํ์ญ์์ค๋์๋ณด๋ ์ผ์ชฝ์ 'API ๋ฌธ์' ํญ.
- ํ์๋ ํจ๋์์ ์์ฑ๋API์ ๋ํ Swagger ํธํ JSON ๋๋ YAML ํ์ผ๊ณผSwagger UI.
๋ฅผ ํด๋ฆญํ๋ฉดSwagger UI ๋งํฌ๋ API์ ๋ํ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋ณด๊ณ ๋ค์ํ ๊ธฐ๋ฅ์ ํ ์คํธํ ์ ์๋ ๋ํํ ์น ๊ธฐ๋ฐ ์ธํฐํ์ด์ค๋ฅผ ์์ํฉ๋๋ค. ๋ฌธ์๋ ๋ค์์ ํฌํจํ์ฌ API์ ํ์ ๊ตฌ์ฑ ์์๋ฅผ ๋ค๋ฃน๋๋ค. - APIendpoints - ์์ฒญ ๋ฐ ์๋ต ๋ฐ์ดํฐ ๊ตฌ์กฐ - HTTP ๋ฉ์๋ ๋ฐ ์ํ ์ฝ๋ - ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ - ์ฌ์ฉ์ ์ ์ ํค๋ ๋ฐ ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์
Swagger๋ก API ํ ์คํธ
๊ทธ๋งํผSwagger UI๋ API์ฉ ํด๋ผ์ด์ธํธ ์ญํ ์ ํ์ฌ API ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ต์ ๋ฐ์ ์ ์์ต๋๋ค. ํน์ API๋ฅผ ํ ์คํธํ๋ ค๋ฉดendpoint:
- ์ฐพ๊ธฐํ ์คํธํ๋ ค๋ endpointSwagger UI.
- ํด๋ฆญ์์ ์๋ '์ฌ์ฉํด๋ณด๊ธฐ' ๋ฒํผendpoint.
- ํ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ ฅํ๊ณ ํด๋ฆญ'์คํํ๋ค'.
- UI๋ ์ํ ์ฝ๋, ํค๋ ๋ฐ ์๋ต ๋ฐ์ดํฐ๋ฅผ ํฌํจํ ์๋ฒ ์๋ต์ ํ์ํฉ๋๋ค.
์ด ํ๋ก์ธ์ค๋ฅผ ํตํด ๊ฐ๋ฐ ํ๋ก์ธ์ค ์ค์ API๋ฅผ ์ฒ ์ ํ ํ ์คํธ ๋ฐ ๋๋ฒ๊ทธํ๊ณ ์๋ํ ๋๋ก ์๋ํ๋์ง ํ์ธํ ์ ์์ต๋๋ค.
๋ค์์ ์ฌ์ฉํ์ฌ ํด๋ผ์ฐ๋์ ๋ฐฐํฌ AppMaster
RESTful API๋ฅผ ๊ตฌ์ถํ๊ณ ํ ์คํธํ์ผ๋ฉด ๋ค์ ๋จ๊ณ๋ ๋ฐฐํฌ์ ๋๋ค.AppMaster.io๋ ๋ฐฐํฌ๋ฅผ Go ๊ธฐ๋ฐ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ํ ํด๋ผ์ฐ๋ ์๋น์ค ๋ฐ ์ปจํ ์ด๋ํ ๊ธฐ์ ๊ณผ์ ์ํํ ํตํฉ์ ์ง์ํ์ฌ ๋งค์ฐ ๊ฐํธํฉ๋๋ค. API์ ๋ง์กฑํ๊ณ ๋ฐฐํฌํ ์ค๋น๊ฐ ๋๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
- ๊ทํ์AppMaster.io Studio ํ๋ก์ ํธ ๋์๋ณด๋.
- ํด๋ฆญ๋์๋ณด๋์ ์ค๋ฅธ์ชฝ ์๋จ ๋ชจ์๋ฆฌ์ ์๋ '๊ฒ์' ๋ฒํผ์ ๋๋ค.
- AppMaster.io๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ค ์ฝ๋๋ฅผ ์์ฑํ๊ณ , ์ปดํ์ผํ๊ณ , ํ ์คํธ๋ฅผ ์คํํ๊ณ , Docker ์ปจํ ์ด๋(๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ฉ)๋ก ํจํค์งํฉ๋๋ค.
- ๊ฒ์ ํ๋ก์ธ์ค๊ฐ ์๋ฃ๋๋ฉด ์คํ ๊ฐ๋ฅํ ๋ฐ์ด๋๋ฆฌ ํ์ผ(Business ๋ฐ Business+ ๊ตฌ๋ ์ ๊ฒฝ์ฐ) ๋๋ ์์ค ์ฝ๋(Enterprise ๊ตฌ๋ ์ ๊ฒฝ์ฐ)๋ฅผ ๋ฐ๊ฒ ๋ฉ๋๋ค.
- ์์ฑ๋ ํ์ผ์ ์ฌ์ฉํ์ฌ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํํ ํด๋ผ์ฐ๋ ๊ณต๊ธ์์ ๋ฐฐํฌํ๊ฑฐ๋ ์จํ๋ ๋ฏธ์ค์์ ํธ์คํ ํ ์ ์์ต๋๋ค.
์ฌ์ฉ์ ์ฃผ์ ์ด์ ๋ฐฐํฌ์ฉ AppMaster.io๋ ๋ค์ํ ํด๋ผ์ฐ๋ ๊ณต๊ธ์์์ ์ ์ฐ์ฑ ๋ฐ ํธํ์ฑ์ ๋๋ค. ์ด๋ฅผ ํตํด ํน์ ์ ํ๋ฆฌ์ผ์ด์ ์๊ตฌ ์ฌํญ์ ๊ฐ์ฅ ์ ํฉํ ๊ณต๊ธ์๋ฅผ ์ ํํ๊ณ ํ์์ ๋ฐ๋ผ ํ์ฅํ ์ ์์ต๋๋ค.

๋ณด์ ๋ฐ ์ธ์ฆ ์ถ๊ฐ
๋ณด์ ๋ฐ ์ธ์ฆ์ ์ธ์ฆ๋ ์ฌ์ฉ์๋ง ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ ๋ฐ ๊ธฐ๋ฅ์ ์ก์ธ์คํ ์ ์๋๋ก ๋ณด์ฅํ๋ ๋ชจ๋ API์ ํ์ ๊ตฌ์ฑ ์์์ ๋๋ค.AppMaster.io๋ RBAC(์ญํ ๊ธฐ๋ฐ ์ก์ธ์ค ์ ์ด), ์ธ์ฆ ํ ํฐ ๋ฐ SSL/TLS ์ํธํ์ ๊ฐ์ ๊ฐ๋ ฅํ ๋ณด์ ๋ฉ์ปค๋์ฆ์ ๊ตฌํ์ ์ฉ์ดํ๊ฒ ํฉ๋๋ค.
RBAC(์ญํ ๊ธฐ๋ฐ ์ก์ธ์ค ์ ์ด)
RBAC๋ ์ญํ ๋ฐ ๊ถํ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฆฌ์์ค์ ๋ํ ์ฌ์ฉ์ ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ์ ๋๋ค. ~ ์์AppMaster.io, ์ฌ์ฉ์ ์ง์ ์ญํ ์ ์ ์ํ๊ณ ํน์ ๊ถํ์ ํ ๋นํ์ฌ API์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค.์กฐ์ง ๊ตฌ์กฐ์ ๋ฐ๋ผ ์ก์ธ์ค endpoints ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. API์์ RBAC๋ฅผ ๊ตฌํํ๋ ค๋ฉด:
- ์์ ์ฌ์ฉ์ ์ญํ ์์ฑAppMaster.io ์คํ๋์ค.
- ๊ฐ API์ ์ญํ ์ ์ก์ธ์ค ๊ถํ ํ ๋นHTTP endpoint ์endpoints.
- ์์ฑ๋ ์ญํ ์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ๋ฐ ํด๋น ์ก์ธ์ค ๊ถํ์ ๊ด๋ฆฌํฉ๋๋ค.
์ธ์ฆ ํ ํฐ
์ธ์ฆ ํ ํฐ์ API ๋ณด์์ ์ํ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ์ ๋๋ค.endpoints.AppMaster.io๋ JWT(JSON ์น ํ ํฐ)๋ฅผ ์ง์ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ API์ ๋ํ ๋ณด์ ์ก์ธ์ค๋ฅผ ๋ณด์ฅํฉ๋๋ค.endpoints. ์ฌ์ฉ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ธ์ฆํ๋ฉด ์๋ฒ๋ ์ง์ ๋ ๋ง๋ฃ ์๊ฐ์ผ๋ก JWT๋ฅผ ์์ฑํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์ JWT๋ฅผ์๋ฒ๊ฐ ์ฌ์ฉ์๋ฅผ ์ธ์ฆํ ์ ์๋๋ก ํ์ ์์ฒญ์ "Authorization" ํค๋. ๋ค์์ ์ฌ์ฉํ์ฌ ๋น๋๋ API์์ JWT ๊ธฐ๋ฐ ์ธ์ฆ์ ๊ตฌํํ๋ ค๋ฉดAppMaster.io :
- ์ธ์ฆ ๋ง๋ค๊ธฐJWT์ ๋ํ ์ฌ์ฉ์ ์๊ฒฉ ์ฆ๋ช ์ ๊ตํํ๊ธฐ ์ํ API์ endpoint.
- ๋ณด์ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ JWT ํ ํฐ์ ์์ฑํ๊ณ ๋ง๋ฃ ์๊ฐ์ ์ค์ ํฉ๋๋ค.
- ์๋ฒ๊ฐ ๊ฐ ์์ฒญ์ ํ ํฐ์ ๊ฒ์ฆํ๋์ง ํ์ธํ์ญ์์ค."๊ถํ ๋ถ์ฌ" ํค๋.
SSL/TLS ์ํธํ
๋ณด์ ํต์ ์ ๋ชจ๋ API์ ํ์์ ์ด๋ฉฐAppMaster.io๋ SSL/TLS ์ํธํ๋ฅผ ์ง์ํ์ฌ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ ์ก๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํฉ๋๋ค. ํด๋ผ์ฐ๋ ๊ณต๊ธ์ ๋๋ ์จํ๋ ๋ฏธ์ค๋ฅผ ์ฌ์ฉํ์ฌ API๋ฅผ ํธ์คํ ํ๋ ๊ฒฝ์ฐ ์๋ฒ๊ฐ HTTP ๋์ HTTPS๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑ๋์ด ์๋์ง ํ์ธํ๊ณ ์ ๋ขฐํ ์ ์๋ ์ธ์ฆ ๊ธฐ๊ด์์ ์ ํจํ SSL ์ธ์ฆ์๋ฅผ ์ป์ต๋๋ค. ํ์ฉํ์ฌRESTful API ๊ฐ๋ฐ ์๊ตฌ์ AppMaster.io ๋ฐ Go๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ ฅํ๊ณ ์์ ํ๋ฉฐ ํ์ฅ ๊ฐ๋ฅํ API๋ฅผ ์ฝ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ์ค๋๋ ๊ฒฝ์์ด ์น์ดํ ์ํํธ์จ์ด ๊ฐ๋ฐ ์ ๊ณ์์AppMaster.io ์ฝ๋ ์๋ ํ๋ซํผ์ด ์ ๊ณตํด์ผ ํฉ๋๋ค.
๋ค๋ฅธ ์๋น์ค์ ํตํฉ
RESTful API ๊ตฌ์ถ์ ๊ฐ์ฅ ํฐ ์ด์ ์ค ํ๋๋ ๋ค์ํ ๋ค๋ฅธ ์๋น์ค, ๋๊ตฌ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํตํฉํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฒ์๋ฅผ ๋ํ ๋ฟ๋ง ์๋๋ผ ์ํํธ์จ์ด ์์ฝ์์คํ ์์ ๊ธฐ์กด ๊ตฌ์ฑ ์์์ ์ฌ์ฌ์ฉ์ฑ์ ์ด์งํฉ๋๋ค. ์ด ์น์ ์์๋ Go ๋ฐ์ง์ ์ผ๋ก ๋ค์ฌ๋ค๋ฅํ RESTful API๋ฅผ ์์ฑํ ์ ์๋ AppMaster ํ๋ซํผ.
ํ์ฌ API ํตํฉ
Go ๊ธฐ๋ฐ RESTful API๋ฅผ ๋ค๋ฅธ ์๋น์ค์ ํตํฉํ๋ ํ ๊ฐ์ง ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก๋ ํ์ฌ API๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ์ด๋ Go์ ๊ด๋ฒ์ํ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฐ๋ ฅํ ํจํค์ง ์ง์์ ํ์ฉํ์ฌ ์ํํ๊ฒ ๋ฌ์ฑํ ์ ์์ต๋๋ค. ํนํ `net/http` ํจํค์ง๋ ์ธ๋ถ API์์ ํจ์จ์ ์ธ ํต์ ์ ์ฉ์ดํ๊ฒ ํ์ฌ HTTP ์์ฒญ ๋ฐ ์๋ต ์ฒ๋ฆฌ ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํฉ๋๋ค.
AppMaster BP(Business Process) ๋์์ด๋๋ฅผ ํตํด ๋ณต์กํ ๋น์ฆ๋์ค ๋ ผ๋ฆฌ ์์ ์ ์ํํ ์ ์๋๋ก ํ์ฌ ์ด๋ฅผ ๋ณด์ํฉ๋๋ค. ํ์ฌ API ํตํฉ์ ๋น์ฆ๋์ค ํ๋ก์ธ์ค์ ์๊ฐ์ ํ๋ฆ์ ๋ฐ๋ก ํตํฉํ์ฌ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ์ ์ฝํ ์ ์์ต๋๋ค. ๋ํ ํ๋ซํผ์ ์ด๋ฌํ ํตํฉ์ด ์์ ํ๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ์ ์ง ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด์ง ํ์ธํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ํตํฉ
๊ฐ๋ ฅํ RESTful API๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ, ๊ฒ์ ๋ฐ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํตํฉ์ด ํ์ํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๊ฐ๋ ฅํ ์ธ์ด์ธ Go๋ ์ํํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๋ฐ ๊ด๋ฆฌ๋ฅผ ์ํ ๋ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํจํค์ง๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ธ๊ธฐ ์๋ ์ผ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ ORM ๊ธฐ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์ ์ํ `gorm`๊ณผ ๊ณ ๊ธ SQL ์ฟผ๋ฆฌ๋ฅผ ์ํ `sqlx`๊ฐ ํฌํจ๋ฉ๋๋ค.
์ ํจ๊ปAppMaster ํ๋ฉด ์๊ฐ์ ์ผ๋ก ๋์์ธํ๊ณ ๋ง๋ค ์ ์์ต๋๋ค. ๋ฐ์ดํฐ ๋ชจ๋ธ (๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง), ๋ชจ๋ PostgreSQL ํธํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ์์ค๋ก ์ฝ๊ฒ ํตํฉ๋ฉ๋๋ค. ํ๋ซํผ์ ํ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๋ง์ด๊ทธ๋ ์ด์ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ์ฌ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ํจ์จ์ ์ธ ๊ด๋ฆฌ๋ฅผ ๋ณด์ฅํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ฎ์ ์์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ๋ฐ ๊ตฌ์ฑ์ ๋ํด ๊ฑฑ์ ํ๋ ๋์ ์ ํ๋ฆฌ์ผ์ด์ ๋ ผ๋ฆฌ์ ๋ ์ง์คํ ์ ์์ต๋๋ค.
์ค์๊ฐ ์ปค๋ฎค๋์ผ์ด์ ํตํฉ
์ค๋๋ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ข ์ข ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ์ค์๊ฐ ์ ๋ฐ์ดํธ ๋ฐ ํต์ ์ ์๊ตฌํฉ๋๋ค. ๊ณ ๋ฃจํด ๋ฐ ์ฑ๋์ด ์๋ Go์ ๊ฐ๋ ฅํ ๋์์ฑ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ์ค์๊ฐ ์๊ตฌ ์ฌํญ์ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์ ์ ์ ํ ์ํ์ผ๋ก WebSockets , ์ค์๊ฐ ์ด๋ฒคํธ๋ฅผ ์ง์ํ๋๋ก RESTful API๋ฅผ ์ ๊ทธ๋ ์ด๋ํ ์ ์์ต๋๋ค.
AppMaster ์ฌ์ฉํ๋ฉด WebSocket์ ๋ง๋ค ์ ์์ต๋๋ค.ํด๋ผ์ด์ธํธ์ ๋ฐฑ์๋ ์๋น์ค ๊ฐ์ ์๋ฐฉํฅ ํต์ ์ด ๊ฐ๋ฅํ๋๋ก API ์ฒญ์ฌ์ง์์ endpoints ์ํํ๊ฒ ์ฐ๊ฒฐํฉ๋๋ค. ์ด ๊ธฐ๋ฅ์ ํ๋ซํผ์ ์๊ฐ์ BP Designer์ ๊ฒฐํฉํ๋ฉด API์ ๋น์ฆ๋์ค ๋ก์ง์์ ๋ค์ด์ค๊ณ ๋๊ฐ๋ WebSocket ๋ฉ์์ง๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ ํตํฉ
๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ ๋๊ท๋ชจ ๋ชจ๋๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ๋ ๋ฆฝ์ ์ธ ๊ตฌ์ฑ ์์๋ก ๋ถํดํ๋ ๊ธฐ๋ฅ์ผ๋ก ์ธ๊ธฐ๋ฅผ ์ป์์ต๋๋ค. Go๋ ์ฑ๋ฅ, ๋ฐฐํฌ ์ฉ์ด์ฑ ๋ฐ ํจ์จ์ ์ธ ๋ฆฌ์์ค ํ์ฉ์ ๊ณ ๋ คํ ๋ ๋ง์ดํฌ๋ก์๋น์ค ๊ตฌ์ถ์ ์ํ ํ์ํ ์ ํ์ ๋๋ค.
๊ทธ๋งํผAppMaster ํ๋ซํผ์ Business ๋ฐ Business+ ๊ฐ์ ํ๋์์ ์ฌ๋ฌ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ์ง์ํ์ฌ ๋ง์ดํฌ๋ก์๋น์ค ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ๋ฅผ ๊ฐ์ํํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ฝ๊ฒ ์์ฑ, ๊ด๋ฆฌ ๋ฐ ํ์ฅํ์ฌ ๋ชจ๋์์ ํจ์จ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ๋ฅผ ์ด์งํ ์ ์์ต๋๋ค.
๊ฒฐ๋ก
ํตํฉํ์ฌ๋ค์ํ ๊ธฐํ ์๋น์ค ๋ฐ ๋๊ตฌ์ ํจ๊ป ๊ตฌ์ถ๋ RESTful API๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณด๋ค ๊ฐ๋ ฅํ๊ณ ๊ธฐ๋ฅ์ด ํ๋ถํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค. ๊ทธ๋งํผAppMaster ํ๋ซํผ์ ์ด ํตํฉ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ ๋ฟ๋ง ์๋๋ผ API๋ฅผ ์ค๊ณ, ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌํ๋ ์๊ฐ์ ์ด๊ณ ๋ฒ๊ฑฐ๋ก์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ํ์ฌ API, ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์ค์๊ฐ ์ด๋ฒคํธ ๋๋ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ ๋ฑ Go ๋ฐ๊ทํ์ ์ฒ๋ถ์ AppMaster.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
์, Go API๋ฅผ AppMaster.io ํ๋ซํผ๊ณผ ํตํฉํ์ฌ ๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ฑ ๊ฐ๋ฐ์ ๊ฐ์ํํ๊ณ ๋ ๋น ๋ฅธ ๊ฐ๋ฐ ์ฃผ๊ธฐ์ ์ฌ์ด ํ์ฅ์ฑ์ ๊ฐ์ถ ๊ฐ๋ ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
ํ์ฌ ๋๊ตฌ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํจ๊ป Go์ ๊ธฐ๋ณธ ์ ๊ณต ํ ์คํธ ๋๊ตฌ๋ฅผ ํ์ฉํ์ฌ API์ ๋ํ ๋จ์ ํ ์คํธ, ๊ธฐ๋ฅ ํ ์คํธ ๋ฐ ํตํฉ ํ ์คํธ๋ฅผ ๋ง๋ญ๋๋ค. ๋ชจ๋ํฐ๋ง ์๋ฃจ์ ๋ฐ ๊ฒฝ๊ณ ์์คํ ์ API ์ฑ๋ฅ์ ์ ์งํ๊ณ ์ต์ ํํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
JWT, OAuth2 ๋๋ API ํค์ ๊ฐ์ ์ธ์ฆ ํ๋กํ ์ฝ์ ๊ตฌํํ์ฌ ํด๋ผ์ด์ธํธ ์๊ฒฉ ์ฆ๋ช ์ ํ์ธํ๊ณ ์น์ธ๋ ํด๋ผ์ด์ธํธ๋ง ๋ณดํธ๋ ๋ฆฌ์์ค์ ์ก์ธ์คํ ์ ์๋๋ก ํ์ฌ Go API๋ฅผ ๋ณดํธํ์ธ์.
๋ฏธ๋ค์จ์ด๋ HTTP ์์ฒญ ๋ฐ ์๋ต์ ์ฒ๋ฆฌํ๊ณ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ค๊ฐ ๊ณ์ธต ์ญํ ์ ํ๋ฏ๋ก ์ธ์ฆ, ๋ก๊น , ์บ์ ์ ์ด ๋ฐ ์ค๋ฅ ์ฒ๋ฆฌ์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ์ผ๊ด๋๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฐฉ์์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
Go ๋๋ Golang์ ๋จ์์ฑ, ํจ์จ์ฑ ๋ฐ ์ฑ๋ฅ์ ์ค์ ์ ๋ ์ ์ ํ์์ ์ปดํ์ผ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค. ์ด ๊ธฐ๋ฅ์ ๋น ๋ฅธ ์ปดํ์ผ, ์ฌ์ด ๋์์ฑ ๋ฐ ํ์ฅ์ฑ์ผ๋ก ์ธํด RESTful API๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ํ์ํ ์ ํ์ ๋๋ค.
RESTful API๋ HTTP ์์ฒญ์ ํตํด ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๊ธฐ ์ํด REST(Representational State Transfer)์ ์ง์นจ ๋ฐ ์ํคํ ์ฒ๋ฅผ ๋ฐ๋ฅด๋ ์น ์๋น์ค์ ๋๋ค.


