๋ฌธ์ ios ์ฑ์ ํ๋ ์ถ์ํ๊ณ ๊ณ์ํด์ ๋๋ฒจ๋กญํ๋ ๊ณผ์ ์์ ๊ฐ์๊ธฐ expo๋ฅผ ์คํํด๋ index.tsx๋ฅผ ์ ๋๋ก ์ฐพ์ง ๋ชป ํ๋ ์ผ์ด ๋ฐ์ํ๋ค. ํน๋ณํ layout.tsx๋ฅผ ๊ฑด๋ ์ผ์ด ์๋๋ฐ ๋ฌด์จ์ผ์ธ์ง expo-router๊ฐ ๊ฒฝ๋ก๋ฅผ ๋ชป ์ฐพ๊ณ ์์๋ค. ์ฐธ๊ณ ํด ๋ณผ ํฌ์ธํธโ
expo-router ๊ฐ ์ ์ค์น๋์ด์๋๊ฐโ
ํด๋ ๊ฒฝ๋ก๊ฐ ์ ๋๋ก ๋์ด์๋๊ฐโ
package.json์ {"main" : "expo-router/entry",} ๊ฐ ๋์ด์๋๊ฐ ์ ๋๊ฐ ์๋ ๊ฒ ๊ฐ์๋ค. ํ์ง๋ง ์ฌ๊ธฐ์ ๊ธฐ ์ฐพ์๋ณธ ๊ฒฐ๊ณผ, ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฑฐ ๊ฐ๊ธดํ๋ฐ, ํด๊ฒฐ๋ฐฉ์์ฒซ๋ฒ์งธ. ํ๊ฒฝ๋ณ์ ํ์ธํ๊ธฐ api key ๊ฐ์๊ฑธ ์ฌ์ฉํ๋ฉด์ .env ํ์ผ์ ์ด๋ค๋ฉด ๊ทธ ๋ถ๋ถ์ ํ์ธํด๋ณด๋ผ๋ ์ด์ผ๊ธฐ๋ฅผ ์ฐพ์๋ค. https://www.reddit.com/r..
๊ฐ๋ฐ/โ ์ค๋ฅ ๋ ธํธ
โผ๏ธ ๋ฌธ์ ์ํฉ canvas๋ฅผ ์ฌ์ฉํด์ ์ด๋ฏธ์ง๋ฅผ ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ ค์ง ์ด๋ฏธ์ง๋ฅผ ์บก์ณํ๋ ์์
์ ํ๋๋ฐ, ์น์์์ ํฌ๋กฌ์ผ๋ก ๊ฐ๋ฐํ ๋๋ ์ ๋๋๋ฐ, ๋ฐฐํฌ ํ์ ios ์ฌํ๋ฆฌ์์ ํ
์คํธํ๋ฉด ๋ชจ๋ ๊ฒ์ด ํ์๊ฒ ๋์ค๋ ํ์์ด ๋ฐ์ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฑ์ฅํ๋ ์ค๋ฅ ๋ฉ์ธ์ง Unable to get image data from canvas because the canvas has been tainted by cross-origin data CORS ์ค๋ฅ๊ฐ ๋๋ ๊ฒ์ด๋ค. ์ด๋ฏธ์ง ๋๋ฉ์ธ๊ณผ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๋ฏ ํ๋ค. html2Canvas ์ต์
๋ ๋ํด๋ณด๊ณ ์ด๋ฆฌ์ ๋ฆฌ ์ฐพ์๋ณด๋ค ์ฐพ์ ํด๊ฒฐ์ฑ
์!!!!! โ
Solution var url = 'http://url'; var imgObj = new Image(); imgObj.src = url + ..
โ ๋ฌธ์ ์ํฉ {"code":"ER_NOT_SUPPORTED_AUTH_MODE","errno":1251,"sqlMessage":"Client does not support authentication protocol requested by server; consider upgrading MySQL client","sqlState":"08004","fatal":true}... Nodejs๋ฅผ ์ฌ์ฉํด์ mySql์ ์ฐ๋ํ๋ ค๊ณ ํ๋๋ฐ, mysql ๋ฐ์ดํฐ๊ฐ ์ ๋ถ๋ฌ์์ง๋ ๊ฒ์ด๋ค. ์ฌ์ฉ๊ถํ ์ค๋ฅ๋ก ๋ฐ์ํ ์ค๋ฅ์ด๋ค mysql ํจ์ค์๋ ํ๋ก๊ทธ์ธ์ ์ํํ์ง ๋ชปํด์ ์๊ธด ์ค๋ฅ๋ก mysql root๋ก ๋ค์ด๊ฐ์ ํจ์ค์๋๋ฅผ ๋ฐ๊ฟ์ฃผ๋ฉด ๋๋ค. ํด๊ฒฐ๋ฐฉ๋ฒ 1. mysql root ๊ณ์ ์ผ๋ก ์ ์ํ๊ธฐ - ํฐ๋ฏธ๋์ ์คํ - 'cd /usr/l..
์ง๋ ๋ฒ์ ๋ง์ฃผํ๋ Nextjs ๋ผ์ฐํ
๋ฌธ์ ๋ ์ด์ ํด๊ฒฐ ๋ ๋ฏ ํ๋ค. ๊ด๋ จ ์๋ฌ ํฌ์คํ
๋ณด๋ฌ๊ฐ๊ธฐ (๐๐ป https://mindevlog.tistory.com/191) ๋ ๋ค๋ฅธ ๋ผ์ฐํ
๋ฌธ์ ๊ฐ ๋ฐ๊ฒฌ๋์๋ค. ์ ์ ๋ผ์ฐํ
์ cloudFront๋ก ํด๊ฒฐ์ ๋ดค๋๋ฐ, ์ด๋ฒ์ ๋์ ๋ผ์ฐํ
์ด ๋ฌธ์ ์๋ค!๐ ์ด๋ ํ ๊ฒ์ํ์ ๊ฒ์๋ฌผ ์์ธ๋ก ๋ค์ด๊ฐ ๋ , `/file/[id]` ์ด๋ฐ์์ผ๋ก ๋์ ๋ผ์ฐํ
(dynamic routing) ์ฒ๋ฆฌ๋ฅผ ํ๊ณ ์๋ค. ๋ธ๋ผ์ฐ์ ์์ ์๋ก๊ณ ์นจ(refresh)๋ฅผ ํ๋ฉด, ํด๋น ์์ธ ํ์ด์ง์ ์ถ๋ ฅ๋์ด์๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ค์ด ์ฌ๋ผ์ง๊ณ , ์ฌ์ง์ด html ์ญ์ ์ถ๋ ฅ ๋ชปํ๊ณ ๊ธฐ๋ณธํ์ด์ง๋ก ๋ณด๋ด๋ฒ๋ฆฌ๋ ๊ฒ ์๋๊ฐ... ๋ฐฉ๋ฒ์ ์ฐพ์์ AWS cloudfront ํจ์๋ฅผ ๋ค์ ์์ฑ๋ ํด๋ณด๊ณ , lambda๋ฅผ ์จ์ผํ๋ค - next..
๋ฐ์คํฌํ์์ ๋ฉํ์ผ๋ก ์
๋ฌด์ฉ ํด์ ์ฎ๊ธฐ๋ฉด์ ์ฌ๋ฌ๊ฐ์ง ์
ํ
์ ๋ค์ ํ๊ฒ ๋์๋๋ฐ ์งํ์ค์ด๋ ํ๋ก์ ํธ๋ฅผ github์์ clone ํ์ npm install์ ํ๋ ค๋๋ฐ ์ ๋๋ ๊ฒ์ด๋ค. ERESOLVE unable to resolve dependency tree ์๋ฐ ๋ฌธ์ฅ๊ณผ ํจ๊ป eslint ๊ด๋ จ ์๋ฌ๊ฐ ๊ณ์ํด์ ๋จ๋ฉด์ npm install error๊ฐ ๊ณ์ํด์ ๋จ. eslint ์ค์ ์ ๋ฐ๊ฟ์ค์ผํ๋ ๊ฑด๊ฐ ์ถ์ด์ ๋ง๋งํ๋๋ฐ, ์์ธ๋ก ํด๊ฒฐ์ฑ
์ ๊ฐ๋จํ๋ค. ๊ฐ์ ๋ก npm install์ ์งํํด์ฃผ๋ฉด ๋๋ค. ์๋ฌ์ ์์ฒญ ๋ง์ ๊ธ์ด ์ซ ๋์ค๋๋ฐ ๊ฒ์ํ๋ค๋ณด๋ ๋๋ฌด ์ ์ ๋ฆฌ๋์ด์๋ ํฌ์คํธ๊ฐ ์์ด์ ๊ณต์ ~~ https://www.korecmblog.com/ERESOLVE-unable-to-resolve-dependency-t..
๋ง๋ค๊ณ ์ถ์ ์ฑ์ด ์์ด์ ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ๋ฅผ ์ค์นํ๋ ค๊ณ ํ๋๋ฐ, ( -> ์กฐ๋ง๊ฐ ์ฑ ๊ตฌํ ๊ณผ์ ์ ์ฌ๋ฆด ์์ ์๋ ) ๊ณ์ ์ ๋๋๊ฒ์ด๋ค!!!! ์ง์ ธ์ค.... ์ ์๋๋ ๊ฒ์ธ์ง ์ดํด๋ถ๊ฐ. ํ์ํ ๋ชจ๋ ํ๋ก๊ทธ๋จ๋ค์ ์ค์นํด๋จ๋๋ฐ, ์ด๋ ๋ฌ ์๋ฌ ์ฝ๋๋ฅผ ๊ตฌ๊ธ๋งํด๋ดค๋ค. ๋๋ ๋ค์ํ ๊ณณ์์ ๋ฐ๊ฒฌ๋ ์ด ์๋ฌ ์๊ณ ๋ณด๋ -g ๋ฅผ ๋ถ์ฌ์ ์ ์ญ์ผ๋ก ์ค์น๋ฅผ ํ๊ธฐ ๋๋ฌธ์ ์๊ธฐ๋ ์๋ฌ๋ผ๊ณ ํ๋ค. ์ด๋ฐ ๋ช
๋ น์ด๋ฅผ ์ธ ๋๋ sudo๋ฅผ ์์ ๋ถ์ฌ์ฃผ๋ฉด ๋๋ค. ์ด๋. ์ปด์ ๋น๋ฒ์ ์ ์ผ๋ผ๊ณ ํ๋ค. ์ ์ด์ฃผ๋ฉด ํด๊ฒฐ~~~~! ---------------------------------------------------------------------- ์์ ๊ธ์ ์ฌ๋ฆฐ์ง 1-2์๊ฐ ๋ง์ ์ ์ ํ๋ค. global ๋ก react-navtive ์ค์น ํ์ง ๋ง์ธ์ค..
{ "code":"ER_NOT_SUPPORTED_AUTH_MODE", "errno":1251, "sqlMessage": "Client does not support authentication protocol requested by server; consider upgrading MySQL client", "sqlState":"08004", "fatal":true } ๊ตฌ๊ธ์ ๊ฒ์ํด๋ณด๋ ๋
ธ๋์ ์ฐ๋์์ ์์ฃผ ๋ฑ์ฅํ๋ ์ค๋ฅ๋ผ๊ณ ํ๋ค. ์๋์ ๊ฐ์ ๋ช
๋ น์ด๋ฅผ ๋ฃ์ผ๋ฉด ํด๊ฒฐ~~! ์ด๋ผ๊ณ ๋ธ๋ก๊ทธ์ ๋ง์ด ๋์์๋ค. ๊ทธ๋ฐ๋ฐ ์ ๋ฌธ๊ตฌ๋ฅผ ์ด๋๋ค๊ฐ ๋ฃ๋๊ณ ์~~~~~~! ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '๋น๋ฐ๋ฒํธ'; VSC์์ ์ฝ๋๋ฅผ ..

๐ข Error: App(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null. โ
์ค๋๋ง์ ๋ง๋ ์ ๋ง ๊ฐ๋จํ ์๋ฌ! ์ต๊ทผ์ ๋ง๋ ์๋ฌ๋ค์ ๊ธฐ๋ณธ 2์๊ฐ ์ก์๋๊ฒ ๊ฐ์๋๋ฐ, ์ด ์๋ฌ๋ ์ ๋ง ๊ฐ๋จํ๊ฒ ์ฐพ์๋๋ค. ๊ดํธ๊ฐ ์ด๋๊ฐ์์ ๋ฏธ์ฝ๋์๋๊ฒ!! ๊ทธ๋์ return ์ ์๋ฆฌ์ return ์ด ์ ๋๋ก ๋ค์ด๊ฐ์ง ์์์ ์๊ธด ์๋ฌ์ด๋ค! ์ด๋๊ฐ์์ return ์ ์ ๋๋ก ํด์ฃผ์ง ๋ชป ํ ๋ ๋ํ๋๋ ์๋ฌ์ด๋, ์ฐฌ์ฐฌํ ์ฝ๋๋ฅผ ์ดํผ๋ค๋ณด๋ฉด ๋ฐ๋ก ํด๊ฒฐ ํ ์ ์๋ค!

CustomSwitch button์ ๋ํ๋๋ฐ, ๊ฐ์๊ธฐ ์ค๋ฅ๊ฐ ๋ด๋ค. Error: Cannot run with sound null safety ์์๋ณธ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ต์ฅํ ๊ฐ๋จํ๋ค. ๋ฉ๋ด์ฐฝ์์ Run (์๋๋ก์ด๋ ์คํ๋์ค ๊ธฐ์ค) > Edit Configurations ๊ทธ๋ฆฌ๊ณ --no-sound-null-safety ๋ผ๋ ๋ง์ Additional run args:์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค. ๊ทธ๋ฌ๋ฉด ๊น๋ํ๊ฒ ํด๊ฒฐ~ ์๋์๊ฐ๋ ์ฝ๋๊ฐ ์ ๋์๊ฐ๋ค!!!

{ "presets": ["next/babel"] } github์์ ํ๋ก์ ํธ๋ฅผ ํด๋ก ํ ํ์ npm installํ๊ณ npm run build๋ฅผ ํ๋๋ฐ, SWC failed to load ์ค๋ฅ๊ฐ ๋ฌ๋ค. ๊ทธ๋ฆฌ๊ณ https://nextjs.org/docs/messages/failed-loading-swc ์ฌ๊ธฐ๋ฅผ ๋ฐฉ๋ฌธํด๋ณด๋ผ๋ ๋ฉ์ธ์ง๊ฐ ๋ ์ ๋ดค๋๋ node modules๊ณผ package-lock.json์ ์ง์ฐ๊ณ ๋ค์ npm install์ ํ๊ฑฐ๋, ๊ทธ๋๋ ์ค๋ฅ๊ฐ ๊ณ์๋๋ฉด .babelrcํ์ผ์ ๋ง๋ค์ด๋ผ๊ณ ํ๋ค. ์ฒซ๋ฒ์งธ ๋
ธ๋ ๋ชจ๋์ ์ง์ ๋๋ฐ๋, ๋ค๋ฅธ ์ค๋ฅ๊ฐ ๋ ์๊ฒจ์ ํ๋ก์ ํธ ์์ฒด๋ฅผ ๋ค์ ํด๋ก ๋ฐ๊ณ , babelrc ํ์ผ์ ๋ง๋ค์ด์คฌ๋ค! ์๋์ ๊ฐ์ด ๋ง๋ค์ด์ฃผ๋ฉด ๋๋ค. ํ์ผ์ ์์น๋ ์ต์๋จ์ด๋ค! .babelrc { "..

โช ์์ฑ ํ ๋ ์ด์์ ์ ๋ ์ด์์์ ๋ง๋ค์ด์ผํ๋๋ฐ, ์ ์ฒด์ ์ผ๋ก ๊ฐ์ผ Container ๊ฐ ์๊ณ , ๊ทธ ์์ Column๋ก ํ๋ฒ ๋ ๊ฐ์ธ๊ณ , ๊ฐ ๋ ์ด์์์ ๋ง๋ค๊ธฐ ์ํด์ ์ค๊ณ ๊ณํ์ ์ธ์ ๋ค. Column( children: [ 1. Container - ํ๊ต ์ด๋ฉ์ผ์ด๋ผ๋ Text๋ฅผ ์ธ ๊ฒ 2. Row - TextFormField(์ด๋ฉ์ผ input) , OutlinedButton(์ธ์ฆํ๊ธฐ) 3. SizedBox - input ์ฌ์ด์ ๊ฐ๊ฒฉ์ ์ํด์ 4. TextFormField - ์ธ์ฆ๋ฒํธ ์
๋ ฅ input 5. OutlinedButton - ๋ค์ ๋ฒํผ ] ) โช ๋ฌธ์ ๋ฐ์ 1์ ํ๊ณ 2๋ฒ์ผ๋ก ๋์ด๊ฐ ๋ ์ฐ์ Row๋ฅผ ์ ์ฐ๊ณ , TextFormField๋ฅผ ๋จผ์ ์ผ๋๋ฐ ํ๋ฉด์ ์ถ๋ ฅ์ด ์ ๋๋๊ฑฐ๋ค! ์ด ์ ์ ์ ํ๋ฒ ..

React Project๋ฅผ ์
๋ฐ์ดํธํ๋ฉด์ Reducer์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์ฌ ๋ ์๊ฒจ๋ ์ค๋ฅ์ด๋ค. Reducer store์ ์ ์ฅ๋์ด์๋ ๋ฐ์ดํฐ๋ฅผ useSelector๋ฅผ ์ฌ์ฉํด์ ๊ฐ์ ธ์ค๊ธฐ๋ง ํ๋ฉด๋๋๊ฑด๋ฐ, ์ด์ ์๋ ์ ๋๋๋ฐ ๊ฐ์๊ธฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค์ง ๋ชปํด์ undefined ์ํฉ์ด ๋ฐ์ํ๋ค. ๊ทธ๋์ ์๊ธด ์ค๋ฅ์ด๋ค. React ํ์ผ ์ผ๋ถ, let scoreMention = ""; if(userInfo['scorelist'] == null){ return null }else{ if(userLan === "kr"){ Object.keys(userInfo['scorelist']).map((c, idx) => { if (scoreper >= parseInt(c)) { return (scoreMention = use..