CORS(Cross-Origin Resource Sharing)๋ ์ต์ ์น ๋ธ๋ผ์ฐ์ ์ ์น ์๋ฒ์์ ๊ตฌํ๋๋ ์ค์ํ ๋ณด์ ๊ธฐ๋ฅ์ผ๋ก, ์๋ก ๋ค๋ฅธ ์๋ณธ(๋๋ฉ์ธ, ํ์ ๋๋ฉ์ธ, ๋๋ฉ์ธ, ํ์ ๋๋ฉ์ธ, ๋๋ ํ๋กํ ์ฝ). AppMaster ์ ๊ฐ์ no-code ํ๋ซํผ์ ์ธ๊ธฐ๊ฐ ๊ณ์ ๋์์ง๊ณ ์์ด ๊ธฐ์ ์ง์์ด ์๋ ์ฌ์ฉ์๋ ์ ๊ตํ ์น, ๋ชจ๋ฐ์ผ ๋ฐ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ผ๋ฏ๋ก ์ด๋ฌํ ๋งฅ๋ฝ์์ CORS์ ์ญํ ์ ์ดํดํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์น ๋ธ๋ผ์ฐ์ ๋ "๋์ผ ์ถ์ฒ ์ ์ฑ "์ด๋ผ๋ ๋ณด์ ์ ์ฑ ์ ๊ตฌํํฉ๋๋ค. ์ด ์ ์ฑ ์ ์นํ์ด์ง๊ฐ ์์ฒญ ํ์ด์ง์ ๋ค๋ฅธ ์ถ์ฒ์์ ํธ์คํ ๋๋ ๋ฆฌ์์ค๋ฅผ ์์ฒญํ๋ ๊ฒ์ ์ ํํฉ๋๋ค. ๋์ผ ์ถ์ฒ ์ ์ฑ ์ ์ ์์ ์ธ ๊ต์ฐจ ์ถ์ฒ ์์ฒญ์ ๋ฐฉ์งํ๋ ํจ๊ณผ์ ์ธ ๋ฉ์ปค๋์ฆ์ด์ง๋ง ํฉ๋ฒ์ ์ธ ๊ต์ฐจ ์ฌ์ดํธ ์ํธ ์์ฉ์ ์ ํํ๋ ์๋ํ์ง ์์ ๊ฒฐ๊ณผ๋ ๋ณ์ต๋๋ค. CORS๋ ๋ณด์ ์๋ฐฉ ์กฐ์น๋ฅผ ์ ์งํ๋ฉด์ ๋์ผ ์ถ์ฒ ์ ์ฑ ์ ๋ฌด์ํ๊ณ ํน์ ๊ต์ฐจ ์ถ์ฒ ์์ฒญ์ ํ์ฉํ๋ ํ์คํ๋ ๋ฉ์ปค๋์ฆ์ ๋๋ค.
no-code ํ๊ฒฝ์์๋ ์ฌ์ฉ์๊ฐ ๋ค์ํ ๋๋ฉ์ธ, ํ์ ๋๋ฉ์ธ ๋ฐ ํ๋กํ ์ฝ์ ํธ์คํ ๋ ๋ฐ์ดํฐ ๋ฐ ์๋น์ค์ ์ก์ธ์คํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ CORS๋ ํนํ ๊ด๋ จ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด AppMaster ๋ก ์์ฑ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค๋ฅธ ๋๋ฉ์ธ์ ํธ์คํ ๋ ํ์ฌ API์์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ฑฐ๋ CDN(์ฝํ ์ธ ์ ์ก ๋คํธ์ํฌ)์์ ๊ธ๊ผด ๋ฐ ์คํ์ผ์ํธ์ ๊ฐ์ ๋ฆฌ์์ค๋ฅผ ๋ก๋ํด์ผ ํ ์ ์์ต๋๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ ๊ต์ฐจ ์ถ์ฒ ์์ฒญ์ ์๋ํ๋ฉด ์์ฒญ์ ์ถ์ฒ๋ฅผ ๋ํ๋ด๋ "Origin"์ด๋ผ๋ ์ถ๊ฐ ํค๋์ ํจ๊ป ๋์ ์๋ฒ์ HTTP ์์ฒญ์ ๋ณด๋ ๋๋ค. ์๋ฒ๋ Origin ํค๋๋ฅผ ๊ฒ์ฌํ ์ ์์ผ๋ฉฐ, Origin์ ์ธ์ํ๊ณ ์น์ธํ๋ฉด ํ์ฉ๋ Origin ๋๋ ์์ผ๋์นด๋(*)๊ฐ ํฌํจ๋ "Access-Control-Allow-Origin"์ด๋ผ๋ HTTP ์๋ต ํค๋๋ฅผ ๋ฐํํ์ฌ ๋ธ๋ผ์ฐ์ ๊ฐ ์๊ตฌ.
์ ์ ํ CORS ๊ตฌ์ฑ์ด ์์ผ๋ฉด ๋ธ๋ผ์ฐ์ ๋ ์๋ณธ ๊ฐ ์์ฒญ์ ๊ฑฐ๋ถํ๊ณ ์ฌ์ฉ์๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ๊ธฐ๋ฅ์ด ์ ํ๋ ์ ์์ต๋๋ค. AppMaster ์ ๊ฐ์ ํ๋ซํผ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ์ผ๋ถ๋ก ๊ฐ๋ฐ์๋ ํ์ํ ๋ชจ๋ ๋ฆฌ์์ค ๊ฐ์ ์์ ํ๊ณ ์ํํ ํต์ ์ ์ด์งํ๊ธฐ ์ํด ๊ด๋ จ ์์คํ ์ ์ฌ๋ฐ๋ฅธ CORS ์ค์ ์ด ์๋์ง ํ์ธํด์ผ ํฉ๋๋ค.
๋ํ CORS๋ HTTP OPTIONS ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ "์คํ ์ ์์ฒญ" ๊ฐ๋ ๋ ์ง์ํฉ๋๋ค. ์ด๋ฌํ ์คํ ์ ์์ฒญ์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ์๋์ ํ์ฉ๋ ํค๋๋ฅผ ํ์ธํ์ฌ ์๋ฒ๊ฐ ์ค์ ์์ฒญ์ ์ฒ๋ฆฌํด๋ ์์ ํ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์๋ฒ๊ฐ ์คํ ์ ์์ฒญ์ ์น์ธํ๋ฉด ๋ธ๋ผ์ฐ์ ๋ ์ค์ ์์ฒญ์ ์งํํ์ฌ ํต์ ํ๋ก์ธ์ค ์ค์ ๊ฐ์ฅ ๋์ ๋ณด์ ํ์ค์ ๋ณด์ฅํฉ๋๋ค.
AppMaster ์ no-code ํ๋ซํผ์ ๊ฐ๋ฐ์๊ฐ ๊ธฐ๋ณธ CORS ๊ตฌ์ฑ์ ๋ํด ๊ฑฑ์ ํ์ง ์๊ณ REST API, ์น ์๋น์ค ๋ฐ ๊ธฐํ ๋ฆฌ์์ค๋ฅผ ๋ง๋ค ์ ์๋๋ก CORS์ ํธํ๋๋ ๊ฐ๋ ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํฉ๋๋ค. ํ๋ซํผ์ ๊ธฐ์ ์ ์ธ ์ธ๋ถ ์ฌํญ์ ์ฒ๋ฆฌํ์ฌ ์์ฑ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ , API ๋ฐ ๊ธฐํ ๋ฆฌ์์ค๊ฐ ์ต์ ์น ๋ณด์ ์๊ตฌ ์ฌํญ์ ์ค์ํ๋ฉด์ ๋ค์ํ ์ถ์ฒ์์ ํธ์คํ ๋๋ ์ฝํ ์ธ ์ ์์ ํ๊ฒ ์ํธ ์์ฉํ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
๋ํ AppMaster ์์ ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ OAuth ๋ฐ JWT(JSON Web Tokens)์ ๊ฐ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ณด์ ๊ธฐ๋ฅ๊ณผ ์ฝ๊ฒ ํตํฉํ ์ ์์ผ๋ฏ๋ก no-code ๊ฐ๋ฐ์๊ฐ ๋ค๋ฅธ ์์คํ ๋ฐ ์๋น์ค์ ์์ ํ๊ฒ ์ํธ ์์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋จํ๊ฒ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ์ธ์ฆ, ๊ถํ ๋ถ์ฌ, ์ฌ์ฉ์ ๊ด๋ฆฌ ์ฒ๋ฆฌ์ ๋ํ ๋ชจ๋ฒ ์ฌ๋ก์ ๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก CORS๋ ์๋ก ๋ค๋ฅธ ์ถ์ฒ์์ ํธ์คํ ๋๋ ๋ฆฌ์์ค ๊ฐ์ ๋ณด์ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ธฐ๋ณธ์ ์ธ ๋ณด์ ๊ธฐ๋ฅ์ ๋๋ค. AppMaster ์ ๊ฐ์ no-code ํ๋ซํผ์ ํตํด ์ฌ์ฉ์๊ฐ ๊ณ ๊ธ ์น, ๋ชจ๋ฐ์ผ ๋ฐ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ๋ง๋ค ์ ์๋ ์ค๋๋ ์ ์ํธ ์ฐ๊ฒฐ๋ ์ธ๊ณ์์๋ CORS๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ตฌํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. AppMaster ์ ํ๋ซํผ์ CORS๋ฅผ ์ง์ํ๊ณ ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ต๊ณ ์ ๋ณด์ ํ์ค์ ์ ์งํ๋๋ก ์ธ์ฌํ๊ฒ ์ค๊ณ๋์ด ๊ฐ๋ฐ์์ ์ต์ข ์ฌ์ฉ์ ๋ชจ๋์๊ฒ ์ํํ๊ณ ์์ ํ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.