ํญํด99 5์ฃผ์ฐจ์๋ ํ๋ก ํธ์๋์ ๋ฐฑ์๋๊ฐ ํจ๊ป ๋ฏธ๋ํ๋ก์ ํธ๋ฅผ ์งํํ๊ฒ ๋์๋ค.
๊ทธ์ ์๋ CORS ๋ชจ๋์ ์ค์น์ ์งํํ๋ ๊ฒ์ด ์ข๋ค๋ผ๊ณ ๋ง ๋ค์๋๋ฐ,
ํ๋ก ํธ ์์ ๊ณผ ์ฐ๊ฒฐ์ ํ์ํ ์์ ์ด๊ธฐ์ CORS๋ฅผ ์์ธํ ์์๋ณด๊ธฐ๋ก ํ๋ค.
CORS๋?
CORS(Cross-Origin Resource Sharing), ๊ต์ฐจ ์ถ์ฒ ๋ฆฌ์์ค ๊ณต์ ๋ผ๊ณ ํด์๋๋ค.
CORS์ ์ฑ ์ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ ธ์ค๋ ๋ฆฌ์์ค๋ค์ด ์์ ํ์ง ๊ฒ์ฌํ๋ ๊ด๋ฌธ์ด๋ค.
์น ๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด CORS ์ ์ฑ ์๋ฐ์ผ๋ก ์ธํด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ์ฝ์์์ ์๋์ ๊ฐ์ ๋ฉ์ธ์ง๋ฅผ ํ์ธํ ์ ์๋ค.
CORS ๊ด๋ จ ์ด์๋ ๋ชจ๋ CORS ์ ์ฑ ์ ์๋ฐํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ค.
์์ ์๋ฌ๋ CORS๋ฅผ ํ์ฉํด์ ์๋ฌด๋ฐ ํ ์์ด ๋ค๋ฅธ ์ถ์ฒ ๋ฆฌ์์ค๋ฅผ ๊ณต์ ํด๋ฌ๋ผ๋ ๊ถ๊ณ ์ฌํญ๊ณผ ๊ฐ์ ๊ฒ์ด๋ค.
CORS๋ผ๋ ๋ฐฉ์ด๋ง ๋๋ถ์ ์ฐ๋ฆฌ๊ฐ ์ด ๊ณณ ์ ๊ณณ์์ ๊ฐ์ ธ์ค๋ ๋ฆฌ์์ค๊ฐ ์์ ํ๋ค๋ ์ต์ํ์ ๋ณด์ฅ์ ๋ฐ์ ์ ์๋ค.
์ถ์ฒ (Origin) ๋?
์๋ฒ์ ์์น๋ฅผ ์๋ฏธํ๋ URL์ Protocol, Host, Port ๊น์ง๋ฅผ ์๋ฏธํ๋ค.
์น์๋ SOP(Same Origin Policy) ์ CORS(Cross Origin Resource Sharing) ๋๊ฐ์ง ์ ์ฑ ์ด ์๋ค.
โถ SOP(๋์ผ ์ถ์ฒ ์ ์ฑ ) โ
๊ฐ์ ์ถ์ฒ์์๋ง ๋ฆฌ์์ค๋ฅผ ๊ณต์ ํ ์ ์๋ค" ๋ผ๋ ๊ท์น์ ๊ฐ์ง ์ ์ฑ
→ URL์ ๊ตฌ์ฑ์์ ์ค Protocol, Host, Port ์ธ๊ฐ์ง ๋์ผํ์ง ํ์ธํ๋ค.
→ ๊ฐ์ Protocol, Host, Port์ ์ฌ์ฉํ๋ค๋ฉด ์์๋ ๋ค๋ฅด๋๋ผ๋ ๊ฐ์ ์ถ์ฒ๋ก ์ธ์ ๋๋ค.
→ ๋ฆฌ์์ค๊ฐ ์์ ์ ์ถ์ฒ์ ๋ค๋ฅผ๊ฒฝ์ฐ, ๋ธ๋ผ์ฐ์ ๋ ๊ต์ฐจ์ถ์ฒ ์์ฒญ์ ์คํํ๋ค.
์ฆ, Protocol, Host, Port ์ค ํ๋๋ผ๋ ์ผ์นํ์ง ์์ผ๋ฉด Cross Origin ์ด๋ผ๊ณ ํ๋ค.
โท ์ค๋ฌด์์ ์ฐธ๊ณ ํ์๋ฉด โ
ํ๋ก ํธ ์๋ฒ์ ๋ฐฑ์๋ ์๋ฒ ์ฐ๊ฒฐ์
ํ๋ก ํธ ์๋ฒ URL์ด http://localhost:3000,
๋ฐฑ์๋ ์๋ฒ http://localhost:8080 ์ผ๋
SOP ์ ์ฑ ์ ์ด๊ธ๋๊ธฐ๋๋ฌธ์, ์๋ฒ๋ก๋ถํฐ ์๋ต์ด ๋์ด์ฌ ๋
๋ธ๋ผ์ฐ์ ์์ CORS ์ ์ฑ ์ค๋ฅ๋ฅผ ๋ฐ์์ํจ๋ค.
โถ CORS (๊ต์ฐจ ์ถ์ฒ ๋ฆฌ์์ค ๊ณต์ ) โ
์ถ๊ฐ HTTP ํค๋๋ฅผ ์ฌ์ฉํ์ฌ, ํ ์ถ์ฒ์์ ์คํ ์ค์ธ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ด ๋ค๋ฅธ ์ถ์ฒ์
์ ํํ ์์์ ์ ๊ทผํ ์ ์๋ ๊ถํ์ ๋ถ์ฌํ๋๋ก ๋ธ๋ผ์ฐ์ ์๊ฒ ์๋ ค์ฃผ๋ ์ฒด์ ์ด๋ค.
CORS ๋์๋ฐฉ์
1. ํด๋ผ์ด์ธํธ์์ HTTP์์ฒญ ํค๋์ Origin์ ๋ด์ ์ ๋ฌํ๋ค.
2. ์๋ฒ๋ ์๋ตํค์ด์ Access-Control-Allow-Origin์ ๋ด์ ํด๋ผ์ด์ธํธ๋ก ์ ๋ฌํ๋ค.
3. ํด๋ผ์ด์ธํธ์์ ์์ ์ด ๋ณด๋๋ ์์ฒญ์ Origin๊ณผ ์๋ฒ๊ฐ ๋ณด๋ด์ค Access-Control-Allow-Origin์ ๋น๊ตํ๋ค.
์์ ์ด ๋ณด๋ธ Origin๊ณผ ์๋ฒ๊ฐ ๋ณด๋ด์ค Access-Control-Allow-Origin์ ๋น๊ตํ์ฌ ์ฐจ๋จํ ์ง ๋ง์ง ๊ฒฐ์ ํ๋ค.
๋ง์ฝ ์ ํจํ์ง ์๋ค๋ฉด ๊ทธ ์๋ต์ ์ฌ์ฉํ์ง ์๊ณ ๋ฒ๋ฆฐ๋ค.
(์์ ๊ฒฝ์ฐ ๋๋ค http://localhost:3000 ์ด๊ธฐ ๋๋ฌธ์ ์ ํจํ ๊ฒฝ์ฐ๋ค.)
์๋์ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑ๋์์ต๋๋ค.
'๊ฐ๋ฐ ์ด์ผ๊ธฐ > ํญํด99' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํญํด99] 9์ฃผ์ฐจ(์ค์ 2์ฃผ์ฐจ) - Error Code: 1071 (0) | 2022.05.08 |
---|---|
[ํญํด99] 8์ฃผ์ฐจ(์ค์ 1์ฃผ์ฐจ) - HTTPS_crbug ์ด์ (0) | 2022.05.01 |
[ํญํด99] 5์ฃผ์ฐจ - ORM(Object Relational Mapping)์ด๋? (0) | 2022.04.03 |
[ํญํด99] 4์ฃผ์ฐจ - package.json์ด๋? (0) | 2022.03.27 |
[ํญํด99] 3์ฃผ์ฐจ - ์๋ฐ์คํฌ๋ฆฝํธ ES5์ ES6์ ๋ฌธ๋ฒ์ฐจ์ด (0) | 2022.03.20 |