SOP, COP Same Origin Policy document ๊ฐ์ฒด๋ ์ถ์ ์ธ origin์ ๊ฐ์ง๊ณ ์๊ณ , ์ด๋ js์์ `document.location.origin`์ผ๋ก ํ์ธํ ์ ์๋ค. document ๋ด์์ ๋ฆฌ์์ค๋ค๊ณผ ์ํธ์์ฉํ ๋, origin์ด ๋ค๋ฅด๋ค๋ฉด ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ ๋ฐ์ ์์ด์ ์ ํ์ ๋๊ฒ ๋ค๋ ๊ฒ์ด SOP(Same Origin Policy)์ด๋ค. Origin ํ๋จ Origin์ด ๊ฐ์ ์ง๋ Protocol, Host, Port๋ก ํ๋จํ๋๋ฐ url ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. http://localhost:3000 Protocol://Host:Port ์ธ ๊ฐ์ง๊ฐ ๋ชจ๋ ๊ฐ์ผ๋ฉด ๊ฐ์ Origin์ด๋ผ๊ณ ํ๋จ๋๋ ๊ฒ์ด๋ค. IE๋ ์์ชฝ ๋๋ฉ์ธ ๋ชจ๋ ๋์ ๋จ๊ณ์ ๋ณด์ ์์ค์ผ ๊ฒฝ์ฐ Same Origin ..
Ajax๋ js๋ฅผ ์ด์ฉํ ๋น๋๊ธฐ ํต์ ์ผ๋ก, ํด๋ผ์ด์ธํธ ์๋ฒ ๊ฐ์ xml(Extensible Markup Language)๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ธฐ์ ์ด๋ค. ์ ์ฒด ํ์ด์ง๋ฅผ ๋ฆฌ๋ก๋ํ์ง ์๊ณ ํ์ํ ๋ฐ์ดํฐ๋ง ๋ก๋ํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค. Ajax ๋ฐฉ์์ ์ด์ฉํ ์น API๋ XMLHttpRequest ๋ถํฐ ์์ํ์ฌ fetch๋ฅผ ๊ฑฐ์ณ axios๊น์ง ๋ค์ํ๋ค. XMLHttpRequest๋ ๋ณต์กํ๊ณ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๊ธฐ ๋๋ฌธ์ fetch api๊ฐ ES6์์๋ถํฐ ํ์ค์ด ๋์๋๋ฐ, ๋ฐ๋ผ์ ํ์ฌ fetch api๋ ๊ธฐ๋ณธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ฐ๋ก ์ค์นํ์ง ์๊ณ ์ฌ์ฉํด๋ ๋๋ค. axios๋ Node.js์์ XMLHttpRequests๋ฅผ ์ฌ์ฉํ๊ธฐ ์ข๊ฒ ๋ง๋ค์ด๋ api์ด๋ฉฐ ๋ฐ๋ก ์ค์นํด์ฃผ์ด์ผ ๋์ํ๋ค. TOP Ajax API๋ฅผ ์ฐธ๊ณ ํ๋ฉด ๋ ๋ง์..
์ ๊ท ์์ด๋ ์ถ์ฒ ๋์ด๋ : โ โโโโ ๊ฑธ๋ฆฐ ์๊ฐ : 30๋ถ => ๋ฐ์ฑ! ๋ฌธ์ ์ ๊ท ์์ด๋ ์ถ์ฒ ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ ๋ฌธ์ ์ค๋ช ์นด์นด์ค์ ์ ์ฌํ ์ ์ ๊ฐ๋ฐ์ ๋ค์ค๋ ์นด์นด์ค๊ณ์ ๊ฐ๋ฐํ์ ๋ฐฐ์น๋์ด, ์นด์นด์ค ์๋น์ค์ ๊ฐ์ ํ๋ ์ ์ ๋ค์ ์์ด๋๋ฅผ ์์ฑํ๋ ์ ๋ฌด๋ฅผ ๋ด๋นํ๊ฒ ๋์์ต๋๋ค. ๋ค์ค์๊ฒ ์ฃผ์ด์ง ์ฒซ ์ ๋ฌด๋ ์๋ก ๊ฐ์ ํ๋ ์ ์ ๋ค์ด ์นด์นด์ค ์์ด๋ ๊ท์น์ ๋ง์ง ์๋ ์์ด๋๋ฅผ ์ ๋ ฅํ์ ๋, ์ ๋ ฅ๋ ์์ด๋์ ์ ์ฌํ๋ฉด์ ๊ท์น์ ๋ง๋ ์์ด๋๋ฅผ ์ถ์ฒํด์ฃผ๋ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๋ ๊ฒ์ ๋๋ค. ๋ค์์ ์นด์นด์ค ์์ด๋์ ๊ท์น์ ๋๋ค. ์์ด๋์ ๊ธธ์ด๋ 3์ ์ด์ 15์ ์ดํ์ฌ์ผ ํฉ๋๋ค. ์์ด๋๋ ์ํ๋ฒณ ์๋ฌธ์, ์ซ์, ๋นผ๊ธฐ(-), ๋ฐ์ค(_), ๋ง์นจํ(.) ๋ฌธ์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋จ, ๋ง์นจํ(.)๋ ์ฒ์๊ณผ ๋์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๋ํ ์ฐ์์ผ๋ก ..
ECMAScript ๊ณต๋ถ ES5 ์ด์ ES3 (1999) : ์ ๊ทํํ์, try/catch๋ฌธ string string.length : ๊ธธ์ด ์์ฑ string.indexOf(string, [start]) : ํด๋น ๊ธ์์ ์์ index ์์น ๋ฐํ string.lastIndexOf(string, [start]) : ํด๋น ๊ธ์์ ๋ง์ง๋ง ์์ index ์์น ๋ฐํ string.search(string) : indexOf์ ๋น์ทํ์ง๋ง ์ ๊ทํํ์ ์ฌ์ฉ x string.slice(index, index2) : index๋ถํฐ index2-1๊น์ง ์๋ฅด๊ธฐ ์์ index๋ ๋ค์์๋ถํฐ ์ string.substring(index, index2) : slice์ ๋น์ทํ์ง๋ง, ์์ ๋ถ๊ฐ string.substr(index, l..
ํ๋ก ํธ์์ 2๊ฐ์ง ํธ์ถ api๋ฅผ ๊ฐ์ ํจ์์ ๋๊ณ ๋์์ ํธ์ถํ์๋๋, ์๋ฒ์์ ๋ท ์์๋ก ํธ์ถ๋ api ์คํ ์ No database selecte error ๊ฐ ๋๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ : gorm.DB์ ์๋ sql.DB์ SetMaxOpenConns ํจ์๋ฅผ ์ด์ฉํ์ฌ, ๋์์ ํ์ฉ ๊ฐ๋ฅํ ์ต๋ ์ปค๋ฅ์ ๊ฐ์๋ฅผ ์ ํํด์ฃผ์ด์ผํ๋ค. Config.DB, err = gorm.Open(mysql.Open(Config.DBURL(Config.BuildDBConfig())), &gorm.Config{}) if err != nil { fmt.Println("Status: ", err) return } // ์๋์ ์ฝ๋๋ฅผ ์ถ๊ฐํด์ค๋ค. db, err := Config.DB.DB() if err != nil { fmt.Print..
์ฌ์ฉํ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค. { colorArr.map(...) } ํด๋น ์ฝ๋๋ ์ ์๋์ํ์ง๋ง, ํ์๋ getContentAnchorEl์ ์์ฑ์ผ๋ก ์ค์ ํ์ง ์์ผ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฌ๋ค. Material-UI: You can not change the default `anchorOrigin.vertical` value when also providing the `getContentAnchorEl` prop to the popover component. Only use one of the two props. Set `getContentAnchorEl` to `null | undefined` or leave `anchorOrigin.vertical` unchanged. material-ui์ popove..
html2canvas + ์ด๋ฏธ์ง ํธ์คํ *์์ ๋ React Hook ํ๊ฒฝ์์ ์งํ๋์์ต๋๋ค. ๊ฒฐ๊ณผ table์ ์ด๋ฏธ์ง๋ก ๋ง๋ค์ด ๊ณต์ ํด์ผํ๋ ์๊ตฌ์ฌํญ์ด ์์๋ค. ์๊ตฌ์ฌํญ์ ์ํํ๊ธฐ ์ํด์๋ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ๋ฅผ ์์ฐจ์ ์ผ๋ก ํด๋ด์ผํ๋ค. html table์ ์ด๋ฏธ์ง๋ก ๋ง๋ค๊ธฐ ๋ง๋ค์ด์ง ์ด๋ฏธ์ง๋ฅผ ํธ์คํ ํ๊ธฐ ํธ์คํ ๋ ์ด๋ฏธ์ง๋ฅผ ์นด์นด์คํก api๋ฅผ ์ด์ฉํ์ฌ ๊ณต์ ํ๊ธฐ ์ฐจ๋ก๋๋ก ํด๋ณด์. html table์ ์ด๋ฏธ์ง๋ก ๋ง๋ค๊ธฐ DOM์์๋ฅผ ์ด๋ฏธ์ง๋ก ๋ง๋ค ๋, html2canvas๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ฃผ๋ก ์ฐ์ธ๋ค. import html2canvas from 'html2canvas'; const copyDOM = async () => { window.scrollTo(0, 0); let url = ""; await html2canvas(..
๋งค์นญ ์ ์ ๊ฑธ๋ฆฐ ์๊ฐ : 3์๊ฐ ์ด์ ๋ฌธ์ ๋์ด๋ โ โ โ โโ ๋ฌธ์ ์ค๋ช ํ๋ ์ฆ ๋ํ๊ต ์กฐ๊ต์๋ ์ ์ด์ง๋ ํ๋๋ ์ผ๋ง ์ํค๋ ๋ค์ค ํ๊ณผ์ฅ๋์ ๋ง์์์ ๋ฒ์ด๋, ์นด์นด์ค์ ์ ์ฌํ๊ฒ ๋์๋ค. ํ์์ ๊ด์ฌ์์ดํ๋ ๊ฒ์์ ๋ง์นจ ๊ฒฐ์์ด ๋ฐ์ํ์ฌ, ๊ฒ์๊ฐ๋ฐํ์ ํธ์ ๋ ์ ์์๊ณ , ๋๋ง์ ์ฒซ ํ๋ก์ ํธ๋ฅผ ๋งก๊ฒ ๋์๋ค. ๊ทธ ํ๋ก์ ํธ๋ ๊ฒ์์ด์ ๊ฐ์ฅ ์ ๋ง๋ ์นํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ์๋์ ๊ฐ์ ๊ท์น์ผ๋ก ๊ฒ์์ด์ ๋ํ ์นํ์ด์ง์ ๋งค์นญ์ ์๋ฅผ ๊ณ์ฐ ํ๋ ๊ฒ์ด์๋ค. ํ ์นํ์ด์ง์ ๋ํด์ ๊ธฐ๋ณธ์ ์, ์ธ๋ถ ๋งํฌ ์, ๋งํฌ์ ์, ๊ทธ๋ฆฌ๊ณ ๋งค์นญ์ ์๋ฅผ ๊ตฌํ ์ ์๋ค. ํ ์นํ์ด์ง์ ๊ธฐ๋ณธ์ ์๋ ํด๋น ์นํ์ด์ง์ ํ ์คํธ ์ค, ๊ฒ์์ด๊ฐ ๋ฑ์ฅํ๋ ํ์์ด๋ค. (๋์๋ฌธ์ ๋ฌด์) ํ ์นํ์ด์ง์ ์ธ๋ถ ๋งํฌ ์๋ ํด๋น ์นํ์ด์ง์์ ๋ค๋ฅธ ์ธ๋ถ ํ์ด์ง๋ก ์ฐ๊ฒฐ๋ ๋ง..
Comment