์์ฝ css ๋ด๋ถ์ font asset์ ๋ฐ์์ค๋ path๋ฅผ ์ ๋๊ฒฝ๋ก๊ฐ ์๋ ์๋๊ฒฝ๋ก๋ก ๋ฐ๊พธ๋ฉด ๋๋ค. ๋ฌธ์ css์ url๋ก ์ ์ํด ๋ font asset์ด ๊ฐ๋ฐ๋ชจ๋(dev)์์๋ ์ ์ ์ฉ๋๋ค๊ฐ ์ค์๋ฒ(production)์์ ๋ฐ์๋์ง ์๋ ์ด์ ์ค์ ๊ตฌํ /* style.css */ @font-face { font-family: spoqaSansNeo; font-weight: 700; src:url('/font/SpoqaHanSansNeo-Bold.ttf'); src: url('/font/SpoqaHanSansNeo-Bold.otf') format("opentype"), url('/font/SpoqaHanSansNeo-Bold.ttf') format("truetype"); } /* next.config..
React array state๊ฐ ๊ฐฑ์ ๋์ด๋ view๊ฐ ๋ฐ๋์ง ์์ ๋ const [members, setMembers] = useState([]); const deleteMember = (index: number) => { // member ์ญ์ const tmp = members; tmp.splice(index, 1); setMembers(tmp); } return( { members.map((member: string, index: number) => {member} } ); members๋ผ๋ Array state์ ๊ฐ ํ๋๋ฅผ ์ญ์ ํ๋ ํจ์์ด๋ค. ํด๋น ํจ์๋ฅผ ์คํํด๋ ํ์๋๋ ํ์์ด ๋ณํ์ง ์๋ ์ด์๊ฐ ๋ฐ์ํ๋ค. ํ์ง๋ง ๊ฐ๋ฐ์๋๊ตฌ๋ฅผ ํตํด์ ๋ณด๋ฉด ๋ถ๋ช ํด๋น ์ปดํฌ๋ํธ์ members State๋ ๋ณ๊ฒฝ๋..
์ฟ ํค๊ฐ ๋ฐ๊ธ๋์ง ์์ ๋ KOS ํ๋ก์ ํธ๋ ํ๋ก ํธ์๋์ React.js๋ฅผ ์ฌ์ฉํ๊ณ ์๋ฒ๋ go lang ๋ผ์ด๋ธ๋ฌ๋ฆฌ gin์ ์ด์ฉํ์ฌ ์งํ์ค์ด๋ค. ์ฒ์์ api๋ฅผ ๋ง๋ค๊ณ ๋์๋ postman์ด๋ผ๋ ํด๋ก ์ ๋๋ก ๋์ํ๋์ง ๊ฒ์ฌํ๋ค. ์ฒ์์๋ api์ฐ๊ฒฐ์ด ์์กฐ๋กญ๊ฒ ๋๋ค๊ฐ ๋ก๊ทธ์ธ์ ์ํด์ ์ฟ ํค๋ฅผ ๋ฐ๊ธํ๋ api๋ฅผ ์์ฑํ ์ดํ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ์ฟ ํค๊ฐ ๋ฐ๊ธ๋์ง ์๋๋ค. ํ๋ก ํธ์๋์์ ๋ฐ์ Network๋ 200์ผ๋ก ์ ์์ด๊ณ set-cookie๋๋ ๊ฒ๊น์ง ๋ณด์ด๋ฉฐ response๋ฅผ ์ถ๋ ฅํด๋ณด์๋ ์ ์์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ์ ์ฟ ํค๊ฐ ๋ฐ๊ธ๋์ง ์์๊น? ๋ฐฑ์๋์์ ํ๋ก ํธ์๋์ ์ฟ ํค๋ฅผ ์ ์ฅ์ํค๊ธฐ ์ํด์๋ ์์ชฝ์ credential ์์ฑ์ ๋ชจ๋ ON ํด์ฃผ์ด์ผํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋จผ์ ๋ฐฑ์๋(go lang)์ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค. // ..
ํ๋ก ํธ์์ 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..
React์ Material UI๋ผ๋ React UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ํ๋ก์ ํธ๋ฅผ ํ๋ ์ค, ์ ๋ชฉ๊ณผ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. findDOMNode is deprecated in StrictMode. KOS ํ๋ก์ ํธ์์๋ ๋ฐ๊ฒฌํ๋ ์ค๋ฅ๋ฐ ๋์๋กญ์ง ์๊ฒ ๋๊ฒผ๋๋ ์ฌ๊ธฐ์ ๊ฑธ๋ฆฌ์ ๊ฑฐ๋ฆฌ๋๊ตฐ ใ ใ ์ด์จ๋ ํด๊ฒฐํด๋ณด์. ์ด์ ์ ๋ฐ ์ค๋ฅ๊ฐ ๋จ๋ ์ด์ ๋ ๋ฌด์์ผ๊น? ๋จผ์ , create-react-app์ ํตํด React ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ฉด, index.js๊ฐ ๋ค์๊ณผ ๊ฐ์ด ์๊ฒผ๋ค. import React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; import reportWebVitals from './reportWebVitals'; ReactDOM..
React JSX์์ array๋ dictionary๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด forEach ๋ฌธ์ ์ผ๋ค๋ฉด, map์ผ๋ก ๋ณ๊ฒฝํด์ผํ๋ค. map ํจ์๋ ์ฐ์ฐ ํ์ ์์ฑ๋ ๊ฒฐ๊ณผ array / dictionary๋ฅผ ๋ฐํํด์ฃผ๊ธฐ ๋๋ฌธ์ JSX์์ ๋ํ๋๊ฒ ๋์ง๋ง, forEach๋ฌธ์ ๋ณ์์๋ง ์ฐ์ฐ ๊ฒฐ๊ณผ๊ฐ ์ ์ฉ๋๊ณ ๋ฐํํด์ฃผ์ง ์๋๋ค. ๋ฐ๋ผ์, forEach ๋ฌธ์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์ฐ์ฐ๋ง ๋๊ณ ๊ฒฐ๊ณผ๋ JSX๋ก ์ถ๋ ฅ๋์ง ์๋๋ค.
TS2691: import .ts file ์ฐธ๊ณ : https://github.com/microsoft/TypeScript/issues/37582 https://github.com/microsoft/TypeScript/issues/27481 https://github.com/microsoft/TypeScript/issues/39965 ์ด ์ค๋ฅ๋ typescript ํ์ผ์ ์ฐพ์ ์ ์์ด์ ๋๋ ์ค๋ฅ์ด๋ค. import A from 'A.tsx'; ์์ ๊ฐ์ด ํ์ผ์ ๋ถ๋ฌ์ค๋ฉด, import ์ ์ ts / tsx ํ์ผ์ด js / jsx ๋ก ๋ณํ๋๊ธฐ ๋๋ฌธ์ ํด๋น ํ์ผ์ ์ฐพ์ ์ ์๋ค๋ ์๋ฌ๊ฐ ๋ฌ๋ค. ๋ฐ๋ผ์, ๋จ์ํ ํ์ฅ์๋ฅผ ๋ถ์ด์ง ์๊ณ import ํด์ค๋ ๊ฒ์ด ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ธ๋ฐ ๊ทธ๋ ๊ฒ ํ๋ฉด esl..
Comment