CORS (Cross-Origin Resource sharing)
CORS ๋ ํ ๋๋ฉ์ธ ๋๋ Origin ์ ์น ํ์ด์ง๊ฐ ๋ค๋ฅธ ๋๋ฉ์ธ์ ๊ฐ์ง ๋ฆฌ์์ค์ ์์ธ์ค ํ ์ ์๊ฒํ๋ ๋ณด์ ๋ฉ์ปค๋์ฆ์ด๋ค. ์ด๋ ์ต์ ๋ธ๋ผ์ฐ์ ์์ ๊ตฌํ๋ ๋์ผ ์ถ์ฒ ์ ์ฑ
๋๋ฌธ์ ๋ฑ์ฅํ๊ฒ ๋์๋ค๊ณ ํ๋ค.
๋์ผ์ถ์ฒ ์ ์ฑ
์ด๋ ๋ฌด์์ธ๊ฐ? ํ๋กํ ์ฝ, ํธ์คํธ๋ช
, ํฌํธ๊ฐ ๊ฐ์ ๋ฆฌ์์ค์๋ง ์ ๊ทผํ๋๋ก ์ ํํ๋ ๊ฒ์ด๋ค. ์ ๊ตณ์ด ๋ถํธํ๊ฒ ๋ง์๋์๊ฑธ๊น?
์๋ฅผ๋ค์ด, ๋ด๊ฐ OO ์ํ์ ์๋ฒ๊ฐ๋ฐ์๋ก ์ผํ๊ณ ์๋ค๊ณ ์๊ฐํด๋ณด์. ๋ง์ฝ ๋ด๊ฐ ์๊ฐ์์ด CORS ์ ๋ถ ํ์ฉํ๋ค๊ณ ๊ฐ์ ํ๋ฉด ์ด๋ค ์ผ์ด ์๊ธธ๊น? ์ธ์ ๋์ ๋ง์์ ๊ฐ์ง ๋๊ตฐ๊ฐ๊ฐ ์ธ์ถ์ ๊ดํ api ์ ๋ณด๋ฅผ ๋์์ ๋์ ์ธ์ถํด๊ฐ ์๋ ์๋ค. ๊ทธ๋์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ง์๋์ ๊ฒ!
CORS ๊ด๋ จ ๋ฌธ์
์น๊ฐ๋ฐ์ ํ๋ฉด ์ฒ์์ผ๋ก ๋ง์ฃผํ๊ฒ ๋๋ ํฐ ๊ณ ๋น์ผ ๊ฒ์ด๋ค. (์ค๋ ๊ฒช์๋ค)
vue.js ์ ํฌํธ ๋ฒํธ๋ 3000, ์คํ๋ง๋ถํธ์ ํฌํธ๋ฒํธ๋ 8080 ์ด๊ธฐ ๋๋ฌธ์ ์ถ์ฒ๊ฐ ๋ค๋ฅธ ํฌํธ๋ผ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ ค๊ณ ํด์ ๋ฐ์ํ ๋ฌธ์ ์๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ํด๋ผ์ด์ธํธ๋จ, ์๋ฒ๋จ ๋ ๋ค ์กด์ฌํ๋ค. ํ์ง๋ง ์๋ฒ๋จ ์์ ์ฒ๋ฆฌํ๋๊ฒ ๋ ๋ง๋ค๋ ์๊ฐ์ด ๋ค์ด corsFilter ๋ฅผ ์ฌ์ฉํ์๋ค.
CorsFilter
์น ์๋ฒ์ ๋ชจ๋ ๋ฆฌ์์ค ์์ฒญ์ ๊ฐ๋ก์ฑ์ Cross domain request ์ธ์ง ์ฒดํฌํ์ฌ ์ค์ ์์ฒญ ํ์ด์ง์ ์ ๋ฌํ๊ธฐ ์ ์ ์ ์ ํ ์ ์ฑ
๊ณผ ํค๋๋ค์ ์ ์ฉํ๋ค.
์ฝ๊ฒ ๋งํ๋ฉด ์ด ํํฐ๋ฅผ ๊ฑฐ์ณ์ผ ๋ฆฌ์์ค ๊ณต์ ๊ฐ ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ด๋ค.
์๋๋ ์ค๋ ๋ด๊ฐ ์ค์ ํ CorsFilter ์ด๋ค.
๋ค๋ฅธ๊ฑด ์๋ตํ๊ณ , Access-Control-Allow-Origin ๋ถ๋ถ์ ๋ณด์. ์ด๋ ๋๋ฉ์ธ ๊ฐ ์์ฒญ์ ํ ์ ์๋ ๊ถํ์ด ๋ถ์ฌ๋ ๋๋ฉ์ธ์ ์ง์ ํ๋ค. ์ด๋ ๊ฒ ์ ์ฉํ๋ฉด vue.js ์ ์คํ๋ง๋ถํธ๊ฐ ๋ฆฌ์์ค๋ฅผ ๊ณต์ ํ ์ ์๋ค!