์ด๋ค ๋๋ฉ์ธ์์ ๋ฌธ์๋ฅผ ๋ถ๋ฌ์ฌ ๋, ๋๋ฉ์ธ ์ฃผ์๊ฐ ๊ฐ์์ผ ์๋ก ์ํธ์์ฉ ํ ์ ์๊ฒ ํ๋ ๋ณด์๋ฐฉ์. ๋ค๋ฅธ ๋ฆฌ์์ค๋ฅผ ๋ถ๋ฌ์ฌ ๋ ์ ์์ ์ธ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฐ์ง ๋ชปํ๋๋ก ์ฌ์ ์ ์ฐจ๋จํ๋ ๊ฒ์ด๋ค. ์ถ์ฒ(ํ๋กํ ์ฝ, ํฌํธ, ํธ์คํธ)๊ฐ ๋ค ๊ฐ์์ผํจ.
const pageOther = document.querySelector('.youtube');
const pageSame = document.querySelector('.sameOrigin');
// pageDocument : same origin ์ด๋ฉด document ๋ฅผ ๋ฐํํจ.
// ๊ทผ๋ฐ ์ sameOrigin ๋ ๋ฐํ์ด ์๋ผ?
// iframe ๋ก๋ฉ์ด ๋๋์ง ์์ ์ํ์์ ์ ๊ทผํด์.
console.log(pageOther.contentDocument);
console.log(pageSame.contentDocument);
SOP ์ ์ฑ ์ ์ฐํํด์ ๋ค๋ฅธ ๋๋ฉ์ธ๊ฐ์ ์์ ์์ฒญ์๋ ์๋ตํ ์ ์๊ฒ ๋ง๋๋ ๊ฒ. ์๋ต ํค๋์์ ํ์ฉํ๋ฉด ๋ค๋ฅธ ์ถ์ฒ๊ฐ์ ๋ฆฌ์์ค ๊ณต์ ๊ฐ ๊ฐ๋ฅ.
HTTP ํค๋๋ฅผ ์ฌ์ฉํด์, ํ ์ถ์ฒ์์ ์คํ ์ค์ธ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ด ๋ค๋ฅธ ์ถ์ฒ์ ์์์ ์ ๊ทผํ ์ ์๋ ๊ถํ์ ๋ถ์ฌํด๋ฌ๋ผ๊ณ ๋ธ๋ผ์ฐ์ ์ ์์ฒญํ๋ ์ฒด์ . ๋ฆฌ์์ค๊ฐ ์์ ์ ์ถ์ฒ(๋๋ฉ์ธ, ํ๋กํ ์ฝ, ํฌํธ)์ ๋ค๋ฅผ ๋ HTTP ์์ฒญ์ ์คํํ๊ฒ ๋๋ค.
Access-Control-Allow-Origin: * ๋ก ์ค์ ๋์ด ์์ผ๋ฉด ์ด๋๋ ์ง ์ ๊ทผํ ์ ์๋ค. MDN CORS ์์๋ ์ด๋ ๊ฒ ํ์ง ๋ง ๊ฒ์ ๊ถ๊ณ ํ๊ณ ์์.
์ ์.. ์๋๋ก์ด๋์ ๋ค์ด๋ฒ ์ง๋ ๋ถ๋ฌ์ค๋๋ผ ๋ฒ์ ผ ์ค๋ฅ ๋๊ณ ๋๋ฆฌ๋ฌ์๋๋ฐ.. ์นด์นด์ค ์ง๋๋ ์๊ฐ๋ณด๋ค ์ฝ๊ฒ ๋ถ๋ฌ์ฌ ์ ์์๋ค.
SOP์์ ๋ค๋ฅธ ์ถ์ฒ์ ๊ต๋ฅํ๋ ๊ฒ์ ๋งํ์ง๋ง,
script src ๊ฐ์ ๊ฒ์ ํตํด์ ํ๋ ๊ฒ์ ์๊ด ์๋ค.
๋์ ์๋ฌด๋ ์ ๊ทผํ๋ฉด ์๋๋๊น API ํค๋ฅผ ํตํด ์ ๊ทผํ๊ฒ ๋ง๋ ๊ฒ.
CORS error ๋ ๋ธ๋ผ์ฐ์ ์์ ๋ฐ์์ํค๋ ๊ฒ!!
404 error ๊ฐ์ ๊ฒ์ ์๋ฒ๊ฐ ๋ฐ์์ํค๋ ๊ฒ!
-> ์๋ฒ์์๋ ์๋ต์ด 200์ธ๋ฐ ๋ธ๋ผ์ฐ์ ๋ CORS error ๊ฐ ๋ ์ ์๋ค.
์ดํ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ฌ html, css๊ฐ ๋ณํํ๊ฒ ๋๋ฉด,
๋จ์ํ ์์ ๊ฐ์ ๊ฒ๋ง ๋ณ๊ฒฝ๋๊ฒ ๋๋ฉด repaint๋ง ์ผ์ด๋๊ฒ๋๋ค.
https://medium.com/๊ฐ๋ฐ์์ํ๊ฒฉ/๋ธ๋ผ์ฐ์ ์-๋ ๋๋ง-๊ณผ์ -5c01c4158ce
https://d2.naver.com/helloworld/59361
http ์์ฒญ ๋ฉ์๋์ ์ข ๋ฅ๋ก
GET | POST | |
---|---|---|
๋ชฉ์ | ์ ๋ณด ์กฐํ | ๋ฆฌ์์ค ์์ฑ/๋ณ๊ฒฝ |
๋ณด๋ด๋ ์ ๋ณด | http body์ ๋ด์์ url?์ ๋ณด์ ๋ณด์ ๋ณด | http ํค๋์ ๋ด์์ |
๋ณด์ | ์ ๋ณด๊ฐ ๋๋ฌ๋จ | ๋๋ฌ๋์ง ์์ |
๊ธธ์ด ์ ํ | ์์ | ์์ |
์๋ต | ํญ์ ๊ฐ์ | ๋์ ๋ฐ๋ผ ๋ค๋ฆ |
ํน์ง | ๋ธ๋ผ์ฐ์ ์ ์บ์ฑํด๋๊ณ ์ฌ์ฉ |
OMG...
section์ ํ๋์ ๋ ผ๋ฆฌ์ ์ธ ๋จ์๋ก ๋ฌถ์ ์ ์๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค. '๊ตฌ์ฒด์ ์ธ ์๋ฏธ๋ก ์ ์์๊ฐ ์๋' ์ผ๋ฐ์ ์ธ(ํฌ๊ด์ ์ธ) ๋ ๋ฆฝ ์น์ ์ผ๋ก ๋ ๊ตฌ์ฒด์ ์ธ ์์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉํ๋ค. article์ ๋ ๋ฆฝ์ ์ผ๋ก ์ธ ์ ์๋ ํ๋์ ๋จ์์ ์ฌ์ฉํ๋ค. ๊ตฌ์ฒด์ ์ธ ์๋ฏธ๋ก ์ ์์๊ฐ ์์ ๋ ์ฌ์ฉ. ์๋ฅผ ๋ค์ด์ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐฐํฌ๋๊ฑฐ๋ ์ฌ์ฌ์ฉ๋ ์ ์๋ ๊ฒ์๋ฌผ, ๋๊ธ, ๊ธฐ์ฌ ๊ฐ์ ๋จ์์ ์ฌ์ฉํ๋ค.
CSS Sprite ๊ธฐ๋ฒ์ ํ์ด์ง์์ ์ฌ์ฉ๋๋ ์์ด์ฝ ์ด๋ฏธ์ง๋ค์ ํ๋์ ์ด๋ฏธ์ง๋ก ๋ง๋ค์ด์ background-position ์ ์กฐ์ ์ ํตํด ์์ด์ฝ์ ์ฌ์ฉํ๋ ๊ธฐ๋ฒ์ ๋๋ค. ์ฅ์ ์ผ๋ก๋ ์ด๋ฏธ์ง๋ฅผ ํ๋๋ง ๋ถ๋ฌ์ค๋ฉด ๋ผ์ ์์ฒญ ํ์๊ฐ ์ค์ด๋ค์ด ๋ก๋ฉ ์๊ฐ์ด ์งง์์ง ์ฅ์ ์ด ์๊ณ , ๋จ์ ์ผ๋ก๋ ๊ฐ๋ณ ์ด๋ฏธ์ง์ position์ ์์์ผ ์ฌ์ฉํ ์ ์๊ณ , ์์ด์ฝ ํ๋๋ฅผ ๋ณ๊ฒฝํ ๋์๋ Sprite ์ด๋ฏธ์ง๋ฅผ ๋ค์ ๋ง๋๋.. ๊ณผ์ ์ ๊ฑฐ์ณ์ผํ๋ค๋ ๊ฒ์ ๋๋ค.
๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ํ์ผ์ ํ์์ ์ฃผ๊ธฐ์ ์ผ๋ก ๊ธฐ๋กํด๋๋ ๋๊ตฌ๋ฅผ ๋งํฉ๋๋ค. ๋จ์ํ ์ ์ฅ์๋ก๋ ํ์ฉํ ์ ์๊ณ , ๋ญ๊ฐ ๋ฌธ์ ๊ฐ ์๊ธด ๊ฒฝ์ฐ์ ๋ฌธ์ ๊ฐ ์๊ธฐ์ง ์์ ๋ฒ์ ์ผ๋ก ๋กค๋ฐฑํ๊ฑฐ๋, ์ด์ ๋ฒ์ ๊ณผ ์ฐจ์ด์ ์ ๋น๊ตํ์ฌ ์ค๋ฅ๋ฅผ ์ฐพ์๋ด๋ ๋ฑ์ ์์ ์ ํ ์ ์์ต๋๋ค. ๋, branch๋ pull request ๋ฑ์ ์ฌ์ฉํ ์ ์์ด์ ์ฌ๋ฌ ์ฌ๋๊ณผ ํ์ ์ ํ ๋๋ ์ ์ฉํฉ๋๋ค.
๋ ๋ค ์ด๋ฏธ์ง๋ฅผ ์ค๋ช ํ๋ ์์ฑ์ ๋๋ค. ์ฐจ์ด์ ์ alt ๋ ๋์ฒด ํ ์คํธ๋ก ์ด๋ฏธ์ง๊ฐ ๋ก๋ฉ๋์ง ์์์ ๋ ํ๋ฉด์ ๋ณด์ด๋ ํ ์คํธ์ ๋๋ค. ๋, ์คํฌ๋ฆฐ๋ฆฌ๋๋ฅผ ํตํด ์ ๊ทผํ๋ ์ ์ ๋ค์๊ฒ๋ ์ด๋ฏธ์ง ๋ด์ฉ์ ์ ๋ฌํ ์ ์๋ ํ ์คํธ์ ๋๋ค. ๊ทธ์ ๋ฐํด title์ ์ด๋ฏธ์ง ์์ ๋ง์ฐ์ค ์ปค์๊ฐ ์์นํ์ ๋ ๋ณด์ฌ์ง๋ ๋งํ์ ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฌ์ค์ง ๋ชปํ์ ๋, ํ๋ฉด์ ๋ณด์ด์ง๋ ์์ต๋๋ค.
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๊ณต๋ถํ๊ณ ์์ต๋๋ค. HTML๊ณผ CSS๋ ์ฌ๋ฌ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์ด๋ณด๋๊ฒ ๋์์ด ๋ ๊ฒ ๊ฐ์์ ์ฌ๋ฌ ํํ์ด์ง๋ฅผ ํด๋ก ํ๋ฉด์ ๊ณต๋ถํ๊ณ ์๊ณ , ๋ชจ๋ฅด๋๊ฒ ์์ ๋ ์ฐพ์๋ณด๊ณ , ์ต๋ํ ์ฒ์ ๋ง๋ค๋๋ถํฐ ์๋ฉํฑํ ๊ตฌ์กฐ๋ก ์น ์ ๊ทผ์ฑ๋ ๊ณ ๋ คํ์ฌ ์ฝ๋๋ฅผ ์ง๊ณ ์์ต๋๋ค.
JavaScript๋ ๋ฌด์์ ํ๋ ์์ํฌ๋ฅผ ์ฐ๋ ๊ฒ๋ณด๋ค ๊ธฐ์ด๋ฅผ ์ด๋ ์ ๋ ์ก๊ณ ํ๋ ์์ํฌ๋ฅผ ๋์ ํ๋๊ฒ ๋์์ด ๋ ๊ฒ ๊ฐ์์ ์ผ๋จ ๋ฐ๋๋ผ๋ฅผ ์ด์ฌํ ํ ๋ณด๊ณ ์์ต๋๋ค. ํด๋ก ํ๋ ์คํฐ๋๋ ์ด์ ์ ๋ฉ์์ด ์ฌ์์ฒ๋ผ์์ ์งํํ๋ ํ๋ฉด๋ง ์๋ ํ์ด์ง์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋ถ์ฌ๋ณด๋ฉด์ ๊ณต๋ถ๋ฅผ ํ๊ณ ์์ต๋๋ค. ๋, ๊ฐ๋ ์ด๋ ์๋ฆฌ ์ดํด๊ฐ ๋์์ด ๋ ๊ฑฐ๋ผ๊ณ ์๊ฐํด์ ๋ฅ๋ค์ด๋ธ๋ ํ์ํ ๋๋ง๋ค ์ฝ์ด๋ณด๊ณ ์์ต๋๋ค.