์น API(์น ํ๊ฒฝ์ ์ํ ์์ฉ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค)๋ ๋ค์ํ ์ํํธ์จ์ด ์์คํ , ์์ฉ ํ๋ก๊ทธ๋จ ๋ฐ ํด๋ผ์ด์ธํธ๊ฐ ๋ฆฌ์์ค, ๋ฐ์ดํฐ ๋ฐ ๊ธฐ๋ฅ์ ์๋ก ํต์ ํ๊ณ ๊ณต์ ํ ์ ์๋๋ก ํ๋ ๊ฐ๋ ฅํ๊ณ ์ ์ฐํ ์ํํธ์จ์ด ๊ฐ๋ฐ ๊ฐ๋ ์ ๋๋ค. ์น API๋ ํ๋ ์น ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์ถ ์ญํ ์ ํ๋ฉฐ ๋ค์ํ ์์คํ ์ ํจ๊ณผ์ ์ผ๋ก ์ฐ๊ฒฐํ๊ณ ์์คํ ํตํฉ, ๋ฐ์ดํฐ ํ๋ฆ ๋ฐ ํ๋ก์ธ์ค ํจ์จ์ฑ์ ๋ํ ์ฅ๋ฒฝ์ ์ ๊ฑฐํฉ๋๋ค.
๋ค์ํ ์ํํธ์จ์ด ๊ตฌ์ฑ ์์๊ฐ ์ํธ ์์ฉํ๋ ๋ฐฉ์์ ์ ์ํ๋ ์ผ๋ จ์ ๊ท์น, ํ๋กํ ์ฝ, ๋๊ตฌ ๋ฐ ๊ท์น์ผ๋ก ๊ตฌ์ฑ๋ ์น API๋ ๊ฐ๋ฐ์์๊ฒ ๋ค๋ฅธ ์ํํธ์จ์ด ์์คํ ์์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ, ์๋น์ค ๋๋ ์ ๋ณด์ ์ก์ธ์คํ๊ณ ํ์ฉํ๊ธฐ ์ํ ๋ช ํํ๊ณ ์ผ๊ด๋ ์ง์นจ์ ์ ๊ณตํฉ๋๋ค. ์น API๋ฅผ ํตํด ์ํํธ์จ์ด ๊ฐ๋ฐ์๋ ๋ถ์ฐ, ๋ถ์ฐ ๋ฐ ํ์ฅ ๊ฐ๋ฅํ ๋ฐฉ์์ผ๋ก ์๋ก ๋ค๋ฅธ ์์คํ ์์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๊ณ , ๊ธฐ๋ฅ์ ํธ์ถํ๊ณ , ํ๋ก์ธ์ค๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋ ๊ตฌ์กฐํ๋๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์๋จ์ ์ป์ต๋๋ค. ์ด๋ฅผ ํตํด ์ํธ ์ด์ฉ์ฑ์ด ํฅ์๋๊ณ ๊ฐ๋ฐ ๋ ธ๋ ฅ์ด ๊ฐ์ํ๋๋ฉฐ ๋ณต์ก์ฑ๊ณผ ๋น์ฉ์ด ์ค์ด๋ญ๋๋ค.
SlashData์ 2021๋ ์ค๋ฌธ์กฐ์ฌ์ ๋ฐ๋ฅด๋ฉด ์ ์ธ๊ณ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ 77% ์ด์์ด ํ๋ก์ ํธ์์ Web API๋ฅผ ์ฌ์ฉํ๋ค๊ณ ๋ณด๊ณ ํ์ต๋๋ค. ์ด๋ ํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ์ํ๊ณ์์ Web API๊ฐ ์ํํ๋ ์ค์ํ ์ญํ ์ ๋ฐ์ํฉ๋๋ค. ์น API๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๋ ๋ค์ํ ํ์ฌ ๋ฆฌ์์ค, ๋๊ตฌ ๋ฐ ์๋น์ค๋ฅผ ํ์ฉํ๊ณ , ์ ๋ณด ๊ตํ์ ์ด์งํ๊ณ , ์ฌ๋ฌ ์์คํ , ํ๋ซํผ ๋ฐ ์ฅ์น์์ ๋ณต์กํ ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์กฐ์จํ์ฌ ํ์ ์ ์ด๊ณ ์ ๊ตํ ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์์ฑ์ ์ง์ํ ์ ์์ต๋๋ค.
์น API์ ์ฃผ์ ํน์ง ์ค ํ๋๋ ๋ค์ํ ์์คํ ์์ ํต์ผ์ฑ, ์ผ๊ด์ฑ ๋ฐ ์ํธ ์ด์ฉ์ฑ์ ๋ณด์ฅํ๋ REST(Representational State Transfer) ๋ฐ SOAP(Simple Object Access Protocol)์ ๊ฐ์ด ๋๋ฆฌ ์์ฉ๋๋ ์ํคํ ์ฒ ์์น, ๊ท์น ๋ฐ ํ์ค์ ์ค์ํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋น์ค. ์๋ฅผ ๋ค์ด, RESTful ์น API๋ HTTP ๋ฉ์๋(GET, POST, PUT, DELETE)์ ์์กดํ๊ณ ํ์ค URL ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์์ค์ ํ๋ก์ธ์ค๋ฅผ ๋ ธ์ถํ๋ ์ํ ๋น์ ์ฅ ํด๋ผ์ด์ธํธ-์๋ฒ ์ํคํ ์ฒ๋ฅผ ๋ฐ๋ฅด๋ฏ๋ก ๋ค์ํ ๊ตฌ์ฑ ์์ ๊ฐ์ ์ํํ๊ณ ํจ์จ์ ์ธ ํต์ ์ด ๊ฐ๋ฅํฉ๋๋ค. ๊ธฐ๋ณธ ๊ธฐ์ , ์ธ์ด ๋๋ ํ๋ซํผ.
AppMasterno-code ํ๋ซํผ์ ๋งฅ๋ฝ์์ ์น API๋ ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ฑ ์์ ๋ฐ ์๋น์ค์ ์ํํ ํตํฉ, ํต์ ๋ฐ ์กฐ์ ์ ์ด์งํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํ๋ฉฐ ๊ณ ๊ฐ์ด ์ ๊ตํ๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ๊ฐ๋ ฅํ ๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ์ ๋ง๋ค ์ ์๋๋ก ์ง์ํฉ๋๋ค. ์ฝ๋๋ฅผ ์์ฑํ์ง ์๊ณ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. AppMaster ์๊ฐ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง, ๋น์ฆ๋์ค ํ๋ก์ธ์ค ๋์์ธ, REST API ๋ฐ WSS ๋์ ์์ฑ, UI ๋์์ธ, ๋ฐฑ์๋ ๋ฐ ํ๋ฐํธ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ฑ์ ์ง๋ฅ์ ์ผ๋ก ๊ฒฐํฉํ์ฌ ์ค์๊ธฐ์ ์ ๋ค์ํ ์๊ตฌ์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ถฉ์กฑํ๋ ๊ธฐ๋ฅ์ด ํ๋ถํ ๊ณ ์ฑ๋ฅ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ญ๋๋ค. ๋๊ธฐ์ ์.
๋ํ AppMaster ๊ฐ ํ๋ก์ ํธ์์ ์์ฑ๋ ์น API๊ฐ ์ ๊ณ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ค์ํ๋๋ก ๋ณด์ฅํ์ฌ ๋ฒ์ ๊ด๋ฆฌ, ์ธ์ฆ, ๊ถํ ๋ถ์ฌ, ์บ์ฑ, ์๋ ์ ํ ๋ฐ ์ค๋ฅ ์ฒ๋ฆฌ์ ๊ฐ์ ์ค์ํ ๋น๊ธฐ๋ฅ์ ์ธก๋ฉด์ ํด๊ฒฐํฉ๋๋ค. ์ด๋ฅผ ํตํด ์์ฑ๋ API์ ์ ๋ฐ์ ์ธ ํ์ง, ์ ์ง ๊ด๋ฆฌ ์ฉ์ด์ฑ ๋ฐ ํ์ฅ์ฑ์ด ํฅ์๋์ด ๊ณ ๊ฐ์ด ์ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ฅ, ์ฑ๋ฅ ๋ฐ ๋ณด์ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ ์ ์์ต๋๋ค.
๊ฐ๋ฐ์ ๊ฒฝํ์ ๊ฐ์ ํ๊ณ API ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ด์งํ๋ ค๋ ๋ ธ๋ ฅ์ ์ผํ์ผ๋ก AppMaster ๊ฐ ํ๋ก์ ํธ์ ์๋ฒ endpoints ์ ๋ํ ์์ธํ ์ต์ Swagger(OpenAPI) ๋ฌธ์๋ฅผ ์๋์ผ๋ก ์์ฑํฉ๋๋ค. ์ด๋ ๊ฐ๋ฐ์์ ์๋น์์๊ฒ API์ ๊ธฐ๋ฅ, ๋ฆฌ์์ค ๋ฐ ๊ท์น์ ๋ํ ๋ช ํํ๊ณ ๋ํํ์ด๋ฉฐ ๊ธฐ๊ณ ํ๋ ๊ฐ๋ฅํ ์ฌ์์ ์ ๊ณตํ์ฌ API ์๋น, ํ ์คํธ ๋ฐ ํตํฉ ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํ๊ณ ๊ฐ์ํํฉ๋๋ค.
๋ํ AppMasterno-code ํ๋ซํผ์ ๋ชจ๋ Postgresql ํธํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํธํ์ฑ์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ง์ํ์ฌ ์์ฑ๋ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์ํํ๊ณ ํจ์จ์ ์ธ ๋ฐ์ดํฐ ์ ์ฅ, ์ฟผ๋ฆฌ ๋ฐ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ๋ณด์ฅํฉ๋๋ค. ์ด๋ Go์์ ์์ฑ๋ ์ํ ๋น์ ์ฅ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ๊ณผ ๊ฒฐํฉ๋์ด ๋ฐ์ด๋ ํ์ฅ์ฑ, ์ฑ๋ฅ ๋ฐ ์์ ์ฑ์ ํ์ฉํ๋ฏ๋ก AppMaster ๊ธฐ์ ๋ฐ ๊ณ ๋ถํ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ์ด์์ ์ธ ์๋ฃจ์ ์ด ๋ฉ๋๋ค. ๊ฒฐ๋ก ์ ์ผ๋ก Web API๋ ์ค๋๋ ์ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๊ฒฝ์์ ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์ ์ญํ ์ ํ๋ฉฐ ๋ค์ํ ์์คํ , ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ์๋น์ค ๊ฐ์ ํ์ , ์ ์ฐ์ฑ ๋ฐ ์ํธ ์ด์ฉ์ฑ์ ์ฃผ๋ํฉ๋๋ค. AppMasterno-code ํ๋ซํผ์ ์น API์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๋ชจ๋ ๊ธฐ์ ์์ค์ ์กฐ์ง๊ณผ ๊ฐ๋ฐ์๊ฐ ๊ณ ์ ํ ์๊ตฌ ์ฌํญ๊ณผ ์๊ตฌ ์ฌํญ์ ๋ง๋ ๊ฐ๋ ฅํ๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ๋น์ฉ ํจ์จ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์๋๋ก ์ง์ํ์ฌ ๊ถ๊ทน์ ์ผ๋ก ๋์งํธ ํ์ ๊ณผ ๋น์ฆ๋์ค ์ฑ์ฅ์ ์ด์งํฉ๋๋ค.