
์ ๊ธฐํ๊ณ ์ฌ๋ฐ๋ค ๐คจ
์ฑ GPT ์ฒ์ ์จ๋ดค๋๋ฐ ๋๋ํ๋ค ๐ค

data- ์์ฑ์ ์ฒ์ ์จ๋ดค๋๋ฐ ์ ์ฉํ๋ค ๐จ๐จ!! ์๊ธฐ ์ ์๋ ์๋์ฒ๋ผ ์ผ์ใ ใ ใ ใ ใ ใ ใ ใ ใ ๐ ์ฐ๋ค๋ณด๋ ๋ญ๊ฐ ๋ ๊น๋ํ๊ฒ ์ธ ์ ์์ ๊ฑฐ ๊ฐ์๋ฐ..ํ๋ค๋ณด๋..๐ถ ํด๋์ค๋ช ์ฌ๋ฌ๊ฐ ์ธ ์ ์๋ค๋ ๊ฒ๋ (์ด์ ์์ผ) ์๊ฒ๋๊ณ ์ ์ตํ ํ๋ฃจ์๋ค!!!๐ฃ
๐ฉ
git initgit addgit commitgit statusgit loggit pushgit clonegit pull์ฝ๋ ๊ด๋ฆฌ ์์ํ๋ก์ ํธ ์์ ์ ๋ฑ ํ ๋ฒ๋ง ์ ๋ ฅ์ ํํ ๊ฒฝ๋ก์์ ์ ๋ ฅ (pwd ํน์ ์ ๋ ฅ์ฐฝ ์ฐ์ธก์์ ํ์ธ)"initialized empty Git r

TO DO LIST ์์ ์๋ฃ ๋ ๋ชฉ๋ก์ DONE LIST๋ก ์ฎ๊ธฐ๊ณ ์ถ์๋๋ฐ ์ฌ๊ธฐ์ ๋ฉ๋ถ์ด..ใ
๐คํํ ๋ฆฌ์ผ

๐ซ๋ฒํท๋ฆฌ์คํธ classList๋ก ํด๋์ค ๊ฐ์ ๋ณ๊ฒฝํ๋ ๋ถ๋ถ์ด ์ ๊ธฐํ๋ค!
null ์๋์ ์ผ๋ก ๊ฐ์ด ์๋ค๋ ๊ฒ์ ์ง์ ํด์ ํํํ ๋ ์ฌ์ฉํ๋ ๊ฐ undefined ์ฝ๋๋ฅผ ์คํํ ๋ ๊ฐ์ด ์๋ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ ๊ฐ ๊ฐ์ด ์ฃผ์ด์ง์ง ์์ ๋ณ์๋ undefined cosole.log(null == undefined); => true co
์์ฃผ ์ฐ์ด๋ ์ฐ์ฐ์ ์ข ๋ ๊ฐ๋ตํ๊ฒ ์ธ ์ ์๋ค.๋ณ์์ ๊ฐ์ 1์ฉ ์ฆ๊ฐ/๊ฐ์ ์ํฌ ๋ ๊ฐ๋ตํ๊ฒ ์ธ ์ ์๋ค.
1. ๊ฒฐ๊ด๊ฐ์ ๋๋ ค์ค 2. ํจ์์ ์คํ์ ์ค๋จ
๋ด ์ด๋ฆ์ ๊น๋ฏผ์์ด๋ค.๋์ด๋ 20์ด์ด๊ณ ,๋ฏธ๊ตญ ์ถ์ ์ด๋ค.๋ด ์ด๋ฆ์ ๊น๋ฏผ์์ด๋ค.๋์ด๋ 20์ด์ด๊ณ ,ํ๊ตญ ์ถ์ ์ด๋ค.๐ก ์ต์ ๋ ํ๋ผ๋ฏธํฐ๋ ์ ์ธ์ ํ ๋, ์ ์ผ ๋ค ์ชฝ์ ์ ์ธํด์ค์ผํ๋ค.โญ person(name, age, country = 'ํ๊ตญ')โ person(name, co
HTTP ์ํ ์ฝ๋404 Not Found์๋ฒ๋ ์์ฒญ๋ฐ์ ๋ฆฌ์์ค๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ์์๋ ์๋ ค์ง์ง ์์ URL์ ์๋ฏธํฉ๋๋ค. ์ด๊ฒ์ API์์ ์ข ์ ์ ์ ์ ํ์ง๋ง ๋ฆฌ์์ค ์์ฒด๋ ์กด์ฌํ์ง ์์์ ์๋ฏธํ ์๋ ์์ต๋๋ค. ์๋ฒ๋ค์ ์ธ์ฆ๋ฐ์ง ์์ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ๋ฆฌ์
๋ธ๋ก๋ฌธ ๋ด์์ ๋ก์ปฌ ๋ณ์->๊ธ๋ก๋ฒ ๋ณ์ ์์ผ๋ก ํ์ธ
์์ฃผ์จ์ ๊ฐ์ ๋ณํ์ง ์๋ ๊ณ ์ ๊ฐ์ด๋ฉฐ, ์ด๋ฐ ๊ฐ์ ์์๋ผ ํ๋ค.let ๋์ const๋ก ์ ์ธํด์ค๋ค.์ฒ์ ๊ฐ์ ์ค์ ํด์ฃผ์ง ์๊ฑฐ๋, ๊ฐ์ ์ฌํ ๋น ํ๋ ค๊ณ ํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.์ด๋ฆ์ ์ง์๋ ๋ณ์์ ๊ตฌ๋ถํ๊ธฐ ์ํด ๋๋ฌธ์์ ๋ฐ์ค๋ก ์์ฑํด์ฃผ๋ ์๋ฌต์ ์ธ ๊ท์น์ด ์๋ค.myNumbe
if : ์ฝ๋๊ฐ ์งง์. ๋ฒ์๋ฅผ ๋ง์กฑํ๋ ์กฐ๊ฑด์์ ๋ง๋ค ๋ ์ฃผ๋ก ์ฌ์ฉ. ๋ฑํธ ์ธ ๊ฐ๋ฅผ ์ฌ์ฉํด ์ผ์น ๋น๊ต๋ฅผ ํด์ผํ๋ค.switch : ์ฝ๋๊ฐ ๊ธธ์ง๋ง ๊ฐ๋ ์ฑ์ด ์ข์. ํน์ ๊ฐ์ ๋ง์กฑํ๋ ์กฐ๊ฑด์์ ๋ง๋ค ๋ ์ฃผ๋ก ์ฌ์ฉ. ๊ฐ๋ค์ ๋น๊ตํ ๋ ์๋ฃํ์ ์๊ฒฉํ๊ฒ ๊ตฌ๋ถ.
์ด๊ธฐํ ๋ถ๋ถ : ์ด๊ธฐ ๋ฑ ํ ๋ฒ๋ง ์คํ๋จ // ์ฌ๊ธฐ์ ์์ฑํ ๋ณ์๋ for๋ฌธ์ ๋ก์ปฌ ๋ณ์์กฐ๊ฑด ๋ถ๋ถ : true๋ก ํ๋จ์ด ๋๋ฉด ๋์๋ถ๋ถ์ ์คํ์ถ๊ฐ๋์๋ถ๋ถ (ํ์x) : ๋์๋ถ๋ถ์ ์คํ ํ ์ถ๊ฐ์ ์ผ๋ก ์คํ
๋ค๋ฅธ ํจ์์ ์ด๋ฆ ์ค๋ณต์ ํผํ ์ ์๋ค.๊ฐ์ฒด์ ์ง์คํด์ ํจ์์ ๋์์ ์์ฑํ ์ ์๋ค.์ฌ์ฉ ์ ๊ฐ์ฒด์ ๊ณ ์ ํ ๋์์ผ๋ก ๊ตฌ๋ถํ ์ ์๋ค.
1. ์์์ ํ ๋ณํ ์๋x ์๋์ผ๋ก ๋ณํ 2. ๋ช ์์ ํ ๋ณํ
์กฐ๊ฑด true์ธ ๊ฒฝ์ฐ ๋ฐํ false์ธ ๊ฒฝ์ฐ ๋ฐํ
ํ์ดํ ํจ์ ES6 ์ ๋ฌธ๋ฒ์ ๊ธฐํ๊ณ ๋ง
๊ฐ์ฒด ๋ key์ value์ ํ์ด๋ก ํ๋์ ๋ณ์์ ์ฌ๋ฌ๊ฐ์ ๊ฐ์ ๋ฃ์ ์ ์๋ค.
1\. ์์ฑ1-1. ๊ธฐ๋ณธ ์์ฑ1-2. ํฌ๊ธฐ ์ง์ 2\. ์์ ์ ๊ทผ3\. ๋ฐฐ์ด ๋ฉ์๋3-1. push ( ๋งจ ๋ค์ ์์ ์ถ๊ฐ )3-2. pop ( ๋ง์ง๋ง ์์ ์ญ์ )3-3. shift ( ์ฒซ๋ฒ์งธ ์์ ์ญ์ )3-4. unshift ( ๋งจ ์์ ์์ ์ถ๊ฐ )3-5. spl
(1) forEach(2) map๊ธฐ์กด์ ๋ฐฐ์ด์ ๊ฐ๊ณตํด์ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑ ํญ์ ์๋ณธ ๋ฐฐ์ด์ ๊ธธ์ด๋งํผ๋ง return ๋๋ค.(3) filter๊ธฐ์กด์ ๋ฐฐ์ด์ ํํฐ๋งํด์ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑ (4) findfilter์ ๋น์ทํ๊ฒ ์กฐ๊ฑด์ ๋ง๋ ๊ฐ์ ๊ฐ์ ธ์ค์ง๋ง ์ฒซ๋ฒ์งธ ๊ฐ๋ง ๋ฐํ
๊ฐ์ฒด ์์ ์๋ ๊ฐ๊ฐ์ ์์ฑ๋ค์ ๋ถํดํด์ ๋ณ์์ ํ ๋น ๋ฐฐ์ด์ ๊ฒฝ์ฐ๊ฐ์ฒด์ ๊ฒฝ์ฐ๊ฐ์ฒด๋ฅผ ์๋ก์ด ์ด๋ฆ์ผ๋ก ํ ๋น
๋จ์ถ ์์ฑ๋ช (property shorthand)์ ๊ฐ ๊ตฌ๋ฌธ (spread operator)๋๋จธ์ง ๋งค๊ฐ๋ณ์ (rest parament)

๋ค๋ฅธ ๊ฐ์ฒด๋ค์ด ์ผ๋ฐ์ ์ผ๋ก ์ ์ฉ ๊ฐ๋ฅํ ์ฐ์ฐ์ ๋ชจ๋ ์ง์ํ๋ ๊ฐ์ฒด.์๋ฐ์คํฌ๋ฆฝํธ์์ ํจ์๋ ์ผ๊ธ ๊ฐ์ฒด์ด๋ฉฐ, ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ์์ผ๋ก ์ ์ฐํ๊ฒ ๋ค๋ฃฐ ์ ์๋ค.์ผ๋ฐ ๊ฐ์ฒด์ ๋ฌ๋ฆฌ ํจ์๋ ํน๋ณํ ๋ฅ๋ ฅ์ด ์๋๋ฐ . . .โ(1) ๋ณ์์ ํจ์๋ฅผ ํ ๋น(2) ํจ์๋ฅผ ์ธ์๋ก ๋ค๋ฅธ ํจ์์ ์ ๋ฌ(3
for...in ๋ฌธ์ ํ์ฉํ๋ฉด ๊ฐ์ฒด ๋ด๋ถ์ ์๋ ๋ชจ๋ ํ๋กํผํฐ๋ค์ ํ๋์ฉ ๋ค๋ฃฐ ์ ์๋ค์๊ดํธ ๋ด๋ถ์์ ํน์ ํ ๋ณ์๋ฅผ ๋ง๋ค๊ณ in ํค์๋ ๋ค์์ ๋ฐ๋ณต๋ ๊ฐ์ฒด๋ฅผ ๋ฃ์ด์ค๊ฐ์ฒด์ ํ๋กํผํฐ ๋ค์์ด ๋ณ์์ ํ ๋น ๊ฐ์ฒด์ ํ๋กํผํฐ ๊ฐ์๋งํผ ๋ฐ๋ณต ๋์์ ์ํ ํ๋กํผํฐ ๋ค์๊ฐ์ฒด๋ ์ ์ํ ํ
// Date let myDate = new Date(); // new Date(milliseconds) let myDate = new Date(1000); // 1000 ๋ฐ๋ฆฌ์ด๋งํผ ์ง๋ ๊ฐ์ฒด๊ฐ ๋ง๋ค์ด์ง // new Date('YYYY-MM-DD') let myDa
์ฌ๊ธฐ๊น์ง๋ ์ ์ถ๋ ฅ๋จ. ๊ทธ๋ฌ๋ ๋ค๋ฅธ ๊ฐ์ฒด์๋ ์ ์ฉํ๊ณ ์ถ์ด์ ํจ์ ์ธ๋ถ์ ๋ถ๋ฆฌํ๊ฒ ๋๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.user2.getFullName()๊ฐ Misun Bong์ด ์๋ Zzangu Shin์ ์ถ๋ ฅ์ด๋ฐ ์ํฉ์์ this ๊ฐ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ค.ํจ์ ๋ด์ use
์คํ ๊ฐ๋ฅํ ์ฝ๋ ๋ด์์ ๋ฐ์ํ ์๋ฌ๋ฅผ ๋ค๋ฃฌ๋ค๋ ์ ์์ ์์ธ ์ฒ๋ฆฌ ๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค. ์ถ๋ ฅ ๊ฒฐ๊ณผ์๋ฌ ์ ์งฑ๊ตฌ์๋ฌ ํโ try ๋ธ๋ก ๋ด ์๋ฌ๊ฐ ๋ฐ์ํ ์์ ํ์ ์ฝ๋๋ ์คํ๋์ง ์๋๋ค. (age ์ถ๋ ฅ x)์ถ๋ ฅ์งฑ๊ตฌ ์ฒ ์ ์ ๋ฆฌ ํ์ด ๋งน๊ตฌ ์๋ฌ์ง๋กฑ ์นํ ์ฒ ๋ฒฝ ์คํธ ๊ดํ ๋ฏธ๋ฆฌ
๐ช flex ๊ฒ์ justify-content > ๋ค์์ ๊ฐ๋ค์ ์ธ์๋ก ๋ฐ์ ์์๋ค์ ๊ฐ๋ก์ ์์์ ์ ๋ ฌ ex ) justify-content: flex-end ๋ ์์๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋์ํจ๋ค. flex-start : ์์๋ค์ ์ปจํ ์ด๋์ ์ผ์ชฝ์ผ๋ก ์ ๋ ฌ. fle
ํ๋กํผํฐ ๋ค์
์ผ๋ฐ์ ์ธ ๊ฐ์ฒด ํ๋กํผํฐ ์ ๊ทผ๋ฒ(์ ํ๊ธฐ๋ฒ) ๊ณผ ๋ฌ๋ฆฌ ์ต์ ๋ ์ฒด์ด๋ ์ฐ์ฐ์(?.)๋ฅผ ํตํด ์ ๊ทผ

Promise async/await
ใ ใ
ํด๋น ์์๋ฅผ ํฌํจํ ์ ์ฒด HTML ์ฝ๋๋ฅผ ๋ฌธ์์ด๋ก ๋ฆฌํด(\* ์ค๋ฐ๊ฟ์ด๋ ๋์ด์ฐ๊ธฐ๋ ๋ชจ๋ ํฌํจ)์๋ก์ด HTML๊ฐ์ผ๋ก ๊ต์ฒด => ๊ธฐ์กด ์ ํํ ์์ ์ญ์ innerHTML๊ณผ ์ ์ฌ<HTML> ํ๊ทธ ๋ถ๋ถ์ ์ ์ธ ์ํจ ๊ฐ๋ง ๋ฆฌํดํน์๋ฌธ์๋ ํ ์คํธ๋ก ์ถ๋ ฅ

ReactJS ๊ธฐ์ด์ฃผ์ฐจ let, const, var ๋ถ๋ฅ๋ฐฉ๋ฒ (1) ์ค์ฝํ์ ๋ฐ๋ฅธ ๋ถ๋ฅ ๋ณ์๋ ์ ์ธ์์น์ ๋ฐ๋ผ ๋ค๋ฅธ ์ค์ฝํ(์ ํจ ๋ฒ์)๋ฅผ ๊ฐ์ง๋ค ์๋ฐ์คํฌ๋ฆฝํธ์ ์ฃผ์ ์ค์ฝํ ์ ํ์ ๊ธ๋ก๋ฒ ์ค์ฝํ, ๋ธ๋ก ์ค์ฝํ, ํจ์ ์ค์ฝํ ์ด๋ค. ๊ธ๋ก๋ฒ ๋ณ์๋ ์ ์ฒด ์ฝ๋์์ ์ ๊ทผ
๋ฆฌ์กํธ๋ ๋ณ์(state)์ ๊ฐ์ ์ ์ฅ(์ถ๊ฐ/์์ /์ญ์ )ํ ๋ ์ด๋ฐ์์ผ๋ก ์ฌ์ฉํ์ง ์๋๋ค! ๐จ (์ด๊ฑฐ ์ฐ๋ ค๊ณ ๋ ๊ฐ์ฒด ๊ธ ์ผ๋ค.)=> ๋ถ๋ณ์ฑ์ ์ ์งํด์ ์๋ก์ด ๊ฐ์ฒด/๋ฐฐ์ด์ ์์ฑํด์ ๊ฐ์ ๋ณ๊ฒฝํ๋ ๋ฐฉ์์ ์ฌ์ฉ=> ์์ ์ฝ๋๋ ๋ถ๋ณ์ฑ์ด ๊นจ์ง ์ํ
๋ฐฐ์ด์ ๊ฐ ์์์ ๋ํด์ ์ฃผ์ด์ง ํจ์๋ฅผ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฌผ์ ๋์ ํด์ ๋ฐํ์์ ์ฝ๋๋ฅผ ์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ถ๋ ฅ๋๋ค.์ต์ด ๋์ ๋๊ฐ์ ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ์์์ธ '1'๋ก ์ธํ ์ผ๋ฐ๊ฐ ์ ๋ฐฐ์ด์ ๋๋ฒ์งธ ์์์ธ '2'๋ก ์ธํ reduce๋ \[๋ฐฐ์ด๊ธธ์ด -1] ๋งํผ ์ํํ๋ค.๋ค์์ ์
๐ข ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํ๋ map, filter์ ๋ฌ๋ฆฌsort๋ ์๋ณธ ๋ฐฐ์ด ๋ด๋ถ์ ๊ฐ ์์ฒด๋ฅผ ๋ฐ๊ฟ๋ฒ๋ฆฐ๋ค.sort ์ฌ์ฉ ์ ์๋ณธ ๋ฐฐ์ด====>: 'Banana', 'Orange', 'Apple', 'Mango' sort ์ฌ์ฉ ๋ฐฐ์ด====>: 'Apple', 'Ban
๐ก ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด์ ์์๋ฅผ ๊ฐ๋ณ ์์๋ก ํ์ฅํ ๋ ์ฌ์ฉ.๊ฐ์ฒด์ ์์ฑ์ ๋ค๋ฅธ ๊ฐ์ฒด๋ก ๋ณต์ฌ/ํ์ฅํ ๋ ์ฌ์ฉ.Spread Operator ์์ด ๊ทธ๋ฅ ๋ ๋ค ๋ณต์ฌํ๋ ค๊ณ ํ๋ฉด ์๋์ ๊ฐ์ ์ํฉ์ด ๋ฐ์ํ๋ค. ๋ถ๋ณ์ฑ์ด ๋ ๊นจ์ ธ๋ฒ๋ ธ๋ค. ๐จ ์ด๊ฐ์ ์ผ์ ํผํ๊ธฐ ์ํด ์๋์ฒ๋ผ ์จ์ค์ผํ
๐ก rest operator ๋ spread operator ์ ์ ์ฌspread operator ์ ๋์ผํ๊ฒ ...๋ณ์๋ช ์ ์ฌ์ฉspread operator ๋ฐฐ์ด, ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํ๊ฑฐ๋ ํฉ์น ๋ ์ฌ์ฉrest operator (1) ํจ์์ ๋งค๊ฐ๋ณ์ (2) ๊ฐ์ฒด ๋ถํด ํ ๋น
๐ก ๋จ์ถํ๊ฐ๋ ? ๋ ผ๋ฆฌ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ์กฐ๊ฑด๋ฌธ์ ์ฒ๋ฆฌํ ๋, ์ ์ฒด ํํ์์ ํ๊ฐํ์ง ์๊ณ ์ต์ํ์ ํ๊ฐ๋ก ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ๋ ๋ฐฉ์ (1) ๋ ผ๋ฆฌ ํฉ ์ฐ์ฐ์ (||) ๋ ผ๋ฆฌํฉ ์ฐ์ฐ์ ||๋ ์ข๋ณ์ ํผ์ฐ์ฐ์๊ฐ falsy ๊ฐ (false, 0, "", null, undefin
โ๏ธ ๋ชจ๋์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ฝ๋ ์กฐ๊ฐ์ ์บก์ํ๐ ํ๊ณ ๋ค๋ฅธ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์์ ์ฝ๊ฒ ์ฌ์ฌ์ฉํ ์ ์๊ฒ ํด์ค๋ค.๐ ์บก์ํ ? ์๋ฐ์คํฌ๋ฆฝํธ ๋ชจ๋์ ๊ด๋ จ๋ ํจ์, ๋ณ์, ๊ฐ์ฒด, ํด๋์ค ๋ฑ์ ํ๋์ ํ์ผ๋ก ๊ทธ๋ฃนํํ๊ณ , ์ด๋ฅผ ๋ชจ๋์ด๋ผ ํจ. ๊ธฐ๋ฅ์ ์ผ๋ก ์ฐ๊ด๋ ์ฝ๋๋ค์ ๋ฌถ์ด
๐ก async, await ๋น๋๊ธฐ ์ฒ๋ฆฌ์ ํ๋์ ํจํด์ด๋ค.๊ธฐ์กด์ ๋ณต์กํ ํ๋ก๋ฏธ์ค ์ฒด์ธ์ ๊ฐ๊ฒฐํ๊ณ ๋๊ธฐ์ ์ธ ํ๋ฆ์ผ๋ก ์์ฑํ ์ ์๊ฒ ๋์์ค๋ค.Promise๋ ๋น๋๊ธฐ ์์ ์ ์ต์ข ์๋ฃ ๋๋ ์คํจ๋ฅผ ๋ํ๋ด๋ ๊ฐ์ฒด๋น๋๊ธฐ ์์ ์ด ์ํ๋ ๋ ๊ทธ ๊ฒฐ๊ณผ๊ฐ์ ๋์ค์ ๋ฐ๊ธฐ ์ํ ์ฝ์์ผ
๐จ ReactJS > UI Library์ธ React.js๋ ๋ฌด์์ธ๊ฐ โ 1. ๊ณต์ํํ์ด์ง์์ ์๊ฐํ๋ React.js (1). ์น๊ณผ ๋ค์ดํฐ๋ธ UI๋ฅผ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ UI๋ฅผ ๋ง๋ค๊ธฐ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๊ณ ์๊ฐํ๊ณ ์๋ค. (2). ๊ณต์ ํํ์ด์ง https://ko.re
์ปดํฌ๋ํธ๋ฅผ ํตํด UI๋ฅผ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ ๊ฐ๋ณ์ ์ธ ์ฌ๋ฌ ์กฐ๊ฐ์ผ๋ก ๋๋๊ณ , ๊ฐ ์กฐ๊ฐ์ ๊ฐ๋ณ์ ์ผ๋ก ์ดํด๋ณผ ์ ์๋ค.๊ฐ๋ ์ ์ผ๋ก ์ปดํฌ๋ํธ๋ JavaScript ํจ์์ ์ ์ฌ.โpropsโ๋ผ๊ณ ํ๋ ์์์ ์ ๋ ฅ์ ๋ฐ์ ํ, ํ๋ฉด์ ์ด๋ป๊ฒ ํ์๋๋์ง๋ฅผ ๊ธฐ์ ํ๋ React ์๋ฆฌ๋จผํธ๋ฅผ

Propertys (์์ฑ) ์์ ๋์จ Props๋ชจ๋ ํ ๊ธ์ ์ด๊ณ ๋ซ๋ ๋จ์ถํคWindows : Ctrl + alt + tMac : โ + โฅ + t ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ์์ ์ปดํฌ๋ํธ์๊ฒ ๋ฌผ๋ ค์ค ๋ฐ์ดํฐ์ฆ, ์ปดํฌ๋ํธ ๊ฐ์ ์ ๋ณด ๊ต๋ฅ ๋ฐฉ๋ฒ ์ด๋ค.props๋ ๋ฐ๋์ ์์์ ์๋ ๋ฐฉ

State๋ ์ปดํฌ๋ํธ ๋ด๋ถ์์ ๋ฐ๋ ์ ์๋ ๊ฐ์ ์๋ฏธํฉ๋๋ค.(UI(์๋ฆฌ๋จผํธ)๋ก์ ๋ฐ์์ ์ํด์)const name = "ํ์ด"์ด ๊ฐ์ด ๋ฐ๋์ด์ผํ๋ ์ ๋ณด๋ผ๋ฉด state๋ก ์์ฑState๋ฅผ ๋ง๋ค ๋๋ useState()๋ฅผ ์ฌ์ฉ (ํ )const value, setValue

๋ฆฌ์กํธ์์ ๊ฐ๋ฐํ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปดํฌ๋ํธ๋ผ๋ ์กฐ๊ฐ์ผ๋ก ๊ตฌ์ฑ์ปดํฌ๋ํธ๋ UI ๊ตฌ์ถ ์์ ์ ํจ์ฌ ์ฝ๊ฒ ๋ง๋ค์ด์คUI ์์๋ฅผ ํํํ๋ ์ต์ํ์ ๋จ์์ด๋ฉฐ ํ๋ฉด์ ํน์ ๋ถ๋ถ์ด ์ด๋ป๊ฒ ์๊ธธ์ง ์ ํ๋ ์ ์ธ์ฒด ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ๊ณ ๋ณด์ฌ์ง๊ณ ์ ํ๋ UI ์์๋ฅผ ์ปดํฌ๋ํธ ๋ด๋ถ์์ JSX


์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ก CSS ์ฝ๋๋ฅผ ์์ฑํ์ฌ ์ปดํฌ๋ํธ๋ฅผ ๊พธ๋ฏธ๋ ๋ฐฉ์. CSS-in-JS ๋ฐฉ์์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์๋ก์ด ํจํค์ง ์ฌ์ฉ์ฅ์ style ์ ์ฉ ์ ์กฐ๊ฑด๋ฌธ,๋ณ์๋ฑ ๋ค์ํ ๋ก์ง ์ฌ์ฉ ๊ฐ๋ฅ๐ข ๋ฆฌ์กํธ์์ CSS-in-JS ๋ฐฉ์์ผ๋ก ์ปดํฌ๋ํธ๋ฅผ ๊พธ๋ฐ์ ์๊ฒ ๋์์ฃผ๋ ํจํค์ง
๐ฝ state๋ฅผ ์ ๋ฐ์ดํธ ํ ์ ์๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ?!( ) ์๊ดํธ ์์ ์์ ํ ๊ฐ ๋์ ํจ์ ๋ฅผ ๋ฃ๋๋ค.ํจ์์ ์ธ์์์๋ ํ์ฌ์ state๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๊ณ ,{ } ์ค๊ดํธ ์์์๋ ์ด ๊ฐ์ ๋ณ๊ฒฝํ๋ ์ฝ๋๋ฅผ ์์ฑ! ์ผ๋ฐ ์ ๋ฐ์ดํธ ๋ฐฉ์ : setState 3๋ฒ ๋ช ๋ นํ๋
๐ก useEffect๋? ๋ฆฌ์กํธ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋ ์ดํ๋ง๋ค ํน์ ์์ ์ ์ํํ๋๋ก ์ค์ ํ ์ ์๋ Hook ์ด๋ค.์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋ ์ดํ ์คํ๋๋ค. ์ด๊ฒ ๋ฐ๋ก useEffect ํต์ฌ ๊ธฐ๋ฅ.์ด๋ค ์ปดํฌ๋ํธ๊ฐ ํ๋ฉด์ ๋ณด์ฌ์ก์ ๋ ๋ด๊ฐ ๋ฌด์ธ๊ฐ๋ฅผ ์คํํ๊ณ ์ถ๋ค๋ฉด? ๋๋
01. useRef๋? > ๐ ๊ฐ์ ์ ์ฅํ๊ณ ํ์ฉํ๋ ๋ฐฉ๋ฒ ์ค ํ๋ ( useState ๋ ๋น์ท? ) (1) useRef hook ์๊ฐ > Re-rendering๊ณผ ์๊ด์์ด ๊ฐ์ ๊ธฐ์ตํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๊ฒ ๐จ ์๋ฐ์คํฌ๋ฆฝํธ DOM API๋ฅผ ์ง์ ์ฌ์ฉํ์ง ์๊ณ DOM

prop drilling์ ๋ํญ๋ง ๐useContext hook ์ ํตํด ์ ์ญ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ ์ ์๊ฒ ๋์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.์ถ์ฒcreateContext : context๋ฅผ ์์ฑuseContext : context๋ฅผ ๊ตฌ๋ ํ๊ณ ํด๋น context์ ํ์ฌ ๊ฐ์ ์ฝ์Pr

-

(5) ์ฃผ์์ฌํญ
๋ด ๋ง๋๋ก ๋ง๋๋ ๋๋ง์ hook ๐์ ์ฝ๋๋ input์ ๊ตฌํํ๊ณ useState๋ก ๊ฐ input์ value๋ฅผ ๊ด๋ฆฌํ๋ ์น์ํ ์ฝ๋์ด๋ค. ํ์ง๋ง, input์ ๊ฐ์๊ฐ ์ฆ๊ฐํ๋ฉด useState์ ์ด๋ฒคํธํธ๋ค๋ฌ๋ ๊ฐ์ด ์ฆ๊ฐํ๊ณ ๊ทธ๋ก ์ธํด ์ฝ๋์ ์ค๋ณต์ด ์๊ธด๋ค.๐ข ์ด๋ฅผ

๐ข State๋ฅผ ๊ณต์ ํ๊ณ ์ ํ ๋ ๋ถ-๋ชจ ๊ด๊ณ๊ฐ ์๋์ด๋ ๋๊ณ , ์ค๊ฐ์ ๋ถํ์ํ ์ ๋ฌ์ฑ ์ด ํ์์๋ค! \`์ปดํฌ๋ํธ์์ ์ปดํฌ๋ํธ๋ก State๋ฅผ ๋ณด๋ด๊ธฐ์ํด์๋ ๋ฐ๋์ ๋ถ-๋ชจ ๊ด๊ณ๊ฐ ๋์ด์ผ ํจ์กฐ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ก ๊ฐ์ ๋ณด๋ด๊ณ ์ ํ ๋๋ \*\*๋ฐ๋์ ๋ถ๋ชจ ์ปดํฌ๋ํธ
์ก์ ์ ๋ง๋๋ ์์ฑ์. ์ก์ ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ํจ์?์ก์ ๊ฐ์ฒด์ value๋ฅผ ๋ณ๊ฒฝํ ์ผ์ด ์๊ธด๋ค๋ฉด ์ด๋จ๊น PLUS_ONE ,MINUS_ONE ์ด๋ผ๋ value ๋์ ์ด ์ก์ ๊ฐ์ฒด๊ฐ counter ๋ชจ๋์์ ์๋ค๋ ๊ฒ์ ๊ฐ์กฐํ๊ธฐ ์ํด์ counter/PLUS_ONE, counte

์คํ ๋ฆฌ์ง ์ ๋ก๋๊ฐ ์๋๋ค...? ๊ทธ๋ฅ ๋ฌด์กฐ๊ฑด ํด๋ฆฌ์ ๋ฒํผ ํ ๋ฒ ๋๋ฅด๋ฉด ๋๋๋ค..SQL๋ฌธ์ด๊ณ ๋ญ๊ณ ๊ตฌ๊ธ๋งํ๊ณ ๋จธ๋ฆฌ๊ตด๋ฆฌ๊ณ ๋ฐ๋ก ์ถ๊ฐํ ํ์๋ ์์.........์ต๋ช ์ผ๋ก INSERTํ ๋ ํ ๋ฒ, ํ์์ผ๋ก INSERTํ ๋ ํ ๋ฒ ๋ํฉ ๋๋ฒ์ด๋ ์์๋ค.๋ฒํท์ด PUBLIC

1-1 . supabase.auth.signUp ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฉ์ผ/๋น๋ฐ๋ฒํธ๋ก ํ์ ๊ฐ์ 1-2. ์ด๋ฉ์ผ/๋น๋ฐ๋ฒํธ ์ธ์ ๋ค๋ฅธ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํด USER ํ ์ด๋ธ์ INSERT1-3. supabase.storage๋ฅผ ์ด์ฉํ์ฌ ์ ๋ก๋ ํ ์ด๋ฏธ์ง ์ ์ฅ1-4. use

JWT ์ธ์ฆ์๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํ์ ํด์ง ๋ฉ์๋์ ๋ฐ๋ผ ์ ๋ ฅํ๋ฉด ๋ก๊ทธ์ธ/ํ์๊ฐ์ ์ด ๋๋๋คํ์๊ฐ์ ๋ก๊ทธ์ธ๋ก๊ทธ์ธ ์ ๋ฉ๋ด๋ก๊ทธ์ธ ํ ๋ฉ๋ดํ๋กํ ์์ MBTI ํ ์คํธ๋ฅผ ์งํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์์ ๋์ ํ ์คํธ ๊ฒฐ๊ณผ ๋ชจ๋์ ํ ์คํธ ๊ฒฐ๊ณผ

โจ ์นด์นด์ค ์ง๋ API์ง๋, ์ ํ๋ธ, ์ค๋ฌธ์กฐ์ฌ API ์ค ํ๋๋ฅผ ์ ํํด์ ์์์์ฑ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด์ผํ๋ค.์ฐ๋ฆฌํ์ ์นด์นด์ค ์ง๋ API๋ฅผ ์ด์ฉํด ๋ฐ๋ ค๋๋ฌผ ๊ด๋ จ ์ฑ์ ๋ง๋ค๊ธฐ๋ก ํ๋ค.๋ฉ์ธํ์ด์ง์๋น์ค์ ์ฃผ์ ๊ธฐ๋ฅ ์๊ฐ ๋ฐ ์ง๋ ๋๋๋ง์ง๋ ๊ฒ์ ํ์ด์ง๋ฐ๋ ค๋๋ฌผ ๊ด๋ จ ์ฅ์ ๊ฒ์ ๋ฐ

๐ ์นด์นด์ค ๋งต API - ์ ์ ๊ฑฐ๋ฆฌ ๊ณ์ฐํ๊ธฐ๐ ๋ฆฌ์กํธ ์นด์นด์ค ๋งต API - ์ ์ ๊ฑฐ๋ฆฌ ๊ณ์ฐํ๊ธฐ๋ง์ฐ์ค ์ฐํด๋ฆญ ์, ์ ๊ทธ๋ฆฌ๊ธฐ๊ฐ ์ข ๋ฃ๋๊ณ ์ค๋ฒ๋ ์ด๊ฐ ๋จ๊ฒ ๋๋๋ฐ ๊ทธ ๊ณผ์ ์ ๊ฑฐ์น์ง ์๊ณ ESC๋ก ๋ฆฌ์ ํ๊ณ ์ถ์๋ค.์ฌ์ค ์ด๋ฐ์์ผ๋ก ๋ฒํผ์ ๋ฌ์์ ์ ์ฅ์ ํ ์ ์๊ฒ ํ๊ณ ์ถ์

๋งต์ ์ ์ ๊ทธ๋ฆฌ๋ ๋์ค ์ด๋ฐ์์ผ๋ก ํด๋ฆญํ ์ขํ๊ฐ ๊ฒน์น๋ฉด์ด๋ฐ ์๋ฌ๊ฐ ๋จ๊ธฐ ์์ํ๋ค. ์ฝ์ ๋ก๊ทธ๋ฅผ ๋ณด๋ ๊ฐ์ ์๋ฆฌ์ ์ฐํ ์ขํ๊ฐ ๊ฐ์ 'key'๊ฐ์ ๊ฐ์ง๊ณ ์์ด์ ์๊ธฐ๋ ์ค๋ฅ์ธ ๊ฒ ๊ฐ์๋ค. (API ์ฌ์ดํธ์์ ํ ์คํธํ ๋ ์ด๋ฐ๊ฑฐ ์์๋๋ฐ ์ใ ใ )ํํฐ๋๋ค์ด ์ฒ์ ํ๋ก์ ํธ ๊ธฐ

์ปจํธ๋กค์ ํธ ์ฌ์ฉํ๊ธฐ e.key === "ctrlKey" ๋์ธ ๋ ธ๋ ธ e.ctrlKey ์ด๋ ๊ฒ ํด์ผ ๋์๊ฐ๋ค

์ด๋ ๊ฒ ํด์ ๋งต์ผ๋ก ๋๋ ค์คฌ๋๋ ๋นจ๊ฐ์, ํ๋์ ๋ฒํผ๋ง ํ๋ฉด์ ๋ณด์ธ๋ค. (์ ๊ตญ)ํน์ ํ ์ผ์๋ ๋ฌธ์ ์ธ๊ฐ ์ถ์ด์ ์ฐพ์๋ณด๋๊น, ํ ์ผ์๋๋ ์ฝํ๋ผ์๋ธ๋ฃจ ์ด๋ฐ๊ฑฐ ์ทจ๊ธ์ํ๋จ๋ค. ๋ด ์ต์ ์์ธ๋ฐ.

npm create vite@latest ํ๋ก์ ํธ์ด๋ฆ -- --template react-ts์ ์ ํ์ ์์คํ ์ ํ์ ์์คํ ์ค์ ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ธฐ ์ ์ ๋ชจ๋ ๋ณ์์ ํํ์์ ํ์ ์ ํ์ธํ๊ณ ๊ณ ์ ํ๋ ๋ฐฉ์=> ์ด๋ฅผ ์ด์ฉํด ํ๋ก๊ทธ๋จ์ ๋ง์ ์ค๋ฅ๋ฅผ ๋ฏธ๋ฆฌ ๋ฐ๊ฒฌํ ์ ์๋ค.

ํ์ ์ ๊ฐ์ด ๊ฐ์ง ํ๋กํผํฐ์ ๋ฉ์๋ ๋ฑ์ ์ฐธ์กฐํ๋ ๋ฐฉ๋ฒ.=> ์ฆ, ์ด ๊ฐ์ด ์ด๋ค ์์ฑ์ ๊ฐ์ง๊ณ ์๋์ง ํํํ๋ ๋ฐฉ๋ฒ์ด๋ค.string, boolean์ฒ๋ผ ์ด๋ฏธ ์ ํด์ง ํ์ (์์ํ์ ) ๋ง๊ณ ๋ ์ฐ๋ฆฌ๊ฐ ํ์ ์ ์ง์ ์ ์ํด ์ค ์๋ ์๋ค.๋ณ์ sum์ number๊ฐ ์๋ str

Next.js ์ฑ๋ฅ (Performance): ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง (SSR) ๋ฐ ์ ์ ์ฌ์ดํธ ์์ฑ (SSG) ๊ธฐ๋ฅ์ ์ ๊ณต ํ์ฌ ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ๋จ์ถ ์ฝ๋ ์คํ๋ฆฌํ ๋ฐ ์ด๋ฏธ์ง ์ต์ ํ์ ๊ฐ์ ๊ธฐ๋ฅ์ผ๋ก ๋ฐํ์ ์ฑ๋ฅ์ ํฅ์ > Next.js๋ ์ฝ๋ ์คํ๋ฆฌํ ์

์ ํต์ ์ธ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง ๋ฐฉ์์ธ MPA๋ก๋ถํฐ ํ๋ก ํธ์๋ ์น ๊ฐ๋ฐ์ด ์์๋์์ต๋๋ค.ํ์ด์ง ์ด๋ ์ ๋ฐ ๋ ๋๋ง ์ ๊น๋นก๊ฑฐ๋ฆฌ๋ ํ์์ด ์๊ณ ์ปจํ ์ธ ์ ์์ ๋ฐ๋ผ์ ํ์ด์ง๋ณ ํธ์ฐจ๊ฐ ์ฌํด์ง๊ฒ ๋ฉ๋๋ค. ๊ฒฐ๊ตญ์๋ UX๊ฐ ์ ํ๋ฉ๋๋ค.์ด๋ฌํ ๋ฌธ์ ๋๋ฌธ์ React, Angular,

๋กํ ์ด์ ํ์ด์ง๋ฅผ ์ํด ํํฐ๋ฅผ ํด์ฃผ๋ ค๊ณ ํ๋๋ฐ ์ด์ํ ์ค๋ฅ๊ฐ ๋จ๊ธฐ ์์ํ๋ค.


์๋ก์ด ํ ํ๋ก์ ํธ์ ์์ ๐ ์์์ ํญ์ ๋ญ๋ ์ค๋ ๋ค. ํํ๋ก์ ํธ๋ ํญ์ ์ฒซ๋ (๊ธฐํ)/๋ฐํ์ ๋ ์ด ์ ์ผ ์ ์ ์๋ ๊ฒ ๊ฐ๋ค. ํํ๋ก์ ํธ ๋ชฉํ > ์๋ ๊ธฐ์ ์ ์ ์ฉํ์ฌ ์ด๋ ๋๋ฉ์ธ์ ์ด๋ ํ๊ฒฝ์ ์ทจ์ ์ ํ๋ ํ์ฉ์ด ๊ฐ๋ฅํ ํํ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐ Next.js๋ฅผ
๋ฉ์๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ์์ธ์ ์ฐพ์๋ดค๋ค.์๋ฒ์์ ํ์ฉํ์ง ์๋ HTTP ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ด ์๋ฌ๊ฐ ๋ฐ์ํ ์๋ ์๋ค๊ณ ํ๋ค. GET์ ์ง์ํ๋ ๊ฒ ๊ฐ๋ค. ํจ์ค!์๋ฒ ์ค์ ์ค๋ฅAPI ์ค๋ํฌ์ธํธ ๋ฌธ์ URL ์ค๋ฅvscode์ ๋ฌ ์ค๋ฅ๋ก๊ทธ๋ฅผ ๋ณด๋, export์ชฝ ๋ฌธ์ ์ธ ๊ฒ
Image ์ปดํฌ๋ํธ๋ฅผ ํตํด ์ ์ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๋ ค ํ์ผ๋ ์ค๋ฅ ๋ฐ์.https://nextjs.org/docs/messages/next-image-unconfigured-hostnext.config.js๋ฅผ ์์ ํด์ฃผ๋ผ๊ณ ํ๋ค.1์ฐจ ์์ 2์ฐจ ์์ \->์ฌ์ ํ ๊ฐ์

ํน์ ์ ์์ ๊ฒฝ์ฐ ์๋ฒ์ ์ด๋ฏธ์ง๊ฐ ์กด์ฌํ์ง ์์์ ์๋ฐ์ด ๋ฌ๋ค. ์๋ฃจ์ด์ง ๋๋๋ฃธ๋ง์จ.....๐ฅhttps://nextjs.org/docs/app/api-reference/components/imageImage ์ปดํฌ๋ํธ์ onError ์์ฑ์ ์ฌ์ฉํด์, ์ด๋ฏธ์ง๊ฐ

๋ ์ํผ ์๋ ค์ฃผ๋ ์๋น์ค ๐ง๐ปโ๐ณ ๋ ์ํผ ์๋ด ์๋น์ค ์๋ฆฌ๋ฅผ ํ๊ณ ์ถ์๋ฐ ์ด๋ป๊ฒ ํด์ผํ ์ง ๋ชจ๋ฅด๋ ์ฌ์ฉ์๋ค์ ์ํ ๋ ์ํผ ์ฌ์ฉ API https://www.foodsafetykorea.go.kr/api/openApiInfo.do?menugrp=MENUGRP31&men

Supabase ์คํ ์์ค ๋ฐฑ์๋ ํ๋ซํผ์ด๋ค.Supabase๋ ๋ณต์กํ ์๋ฒ ๊ด๋ฆฌ, ํ์ฅ์ฑ, ๋ณด์ ๋ฑ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ์ฃผ์ด ๊ฐ๋ฐ์๊ฐ ํต์ฌ ๋ก์ง์ ์ง์คํ ์ ์๋๋ก ๋๋๋ค.๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ: PostgreSQL ๊ธฐ๋ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ๊ณตํ์ฌ ์์ ์ ์ด๊ณ ๊ฐ๋ ฅํ ๋ฐ์ดํฐ ๊ด๋ฆฌ๋ฅผ

invalid input syntax for type uuid: "28" ๊ทธ๊ฒ๋ญ๋ฐ post_id์ ํ์ ์ uuid->bigint๋ก ๋ฐ๊ฟ์ฃผ๋ ค๊ณ ํ๋๊น ๋ ์ค๋ฅ๋จ supabase์์ ์ธ๋ํค๋ก ๋ค ์ฎ์ด๋์ ๊ทธ๋ฐ๊ฐ ์ถ์ด์ ์ผ๋จ ์ธ๋ํค ์ค์ ํ๊ฑฐ ๋ค ํ์ด์ค์ฌ์ ํ ๊ฐ์ ์ค๋ฅ ๋์

๋ ์ํผ ์ถ๊ฐํ๊ธฐ ๋ฒํผ์ ๋๋ ์ ๋ ์ถ๊ฐ๊ฐ ๋๊ธด ํ์ง๋ง, ์ถ๊ฐ ์ ์๋ 1๊ฐ๋ ๊ธฐ๋ณธ์ผ๋ก ์์ผ๋ฉด ํ๋ค.๊ทธ๋ด ๋ ์ด๋ฐ์์ผ๋ก ํผ๋ง๋ค ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํด์ฃผ๋ฉด ๋๋ค.

supabase์ ์๋ฆฌ ํ์ ๊ณผ ๋ฐฉ์์ ์ ์ฅํ๋๋ฐ onefood๋ฉด '์ผํ'์ด ๋ค์ด๊ฐ์ผํ๊ณ , frying์ด๋ฉด 'ํ๊ธฐ๊ธฐ'๊ฐ ๋ค์ด๊ฐ์ผ ํ๋ค.ํ์ง๋ง DB์ ์ ์ฅ๋ ๊ฐ์ ์ด๋ ๋ค...! ์๋ก ๋งคํ์ ํด์ค์ผํ๋, ์๋๋ฉด ๋๋๋งํ ๋ ๋ฐ๊ฟ์ค์ผํ๋ ๊ณ ๋ฏผํ๋ค.์ด๋ ๊ฒ ๋ง๋ค์ด๋ ๋ถ๋ถ์ ๊ทธ๋๋ก

๊ฐ์ฒด ์๋ฌ

(์ถํ UI ์ฃผ์)์ง๊ธ API ๋ฐ์ดํฐ์์ ๋ถ๋ฌ์ค๋ ๊ฑด ๋งค๋ด์ผ๋ง๋ค ์์ ์ซ์+'.'์ด ๋ถ์ด์๋๋ฐ ์ด๊ฑธ ์ ๋ถ ์ง์ฐ๊ณ ์ถ๋ค.(๋ง์ฝ ๊ธ์ค๊ฐ์ ์ซ์+'.'๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ๊ทธ๋๋ก ๋๊ธฐ๋ก)DB์๋ ์ผ๋จ ์ด๋ฐ์์ผ๋ก ๋ฃ์ด๋จ๋๋ฐ ๋ฃ์ ๋ ๋ค์ ๋ฃ์ด์ค์ผํ ๊ฒ ๊ฐ๋ค..๐

์ฝ๋๋ฅผ ์์ ํ๋ ๊ณผ์ ์์ ์ผ๋ฐ ๋ฐฐ์ด=>๊ฐ์ฒด ๋ฐฐ์ด๋ก ์์ ํ๋ฉด์ ์ด๋ฐ ๋ฌธ์ ๊ฐ ๋ํ๋ฌ๋ค.์ฐธ๊ณ ํฐ์คํ ๋ฆฌ.text๋ก ์์ ํด์คฌ๋๋ ํด๊ฒฐ๋์๋ค ๐

๋๊ธ ์์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋๋ฐ ๋๊ธ ์์ฑ์ฐฝ๊ณผ ๊ฐ์ ์ ์ถํผ์ ์ผ๋๋ ๋๊ฐ๊ฐ ์์ด๋ ํ์์ด ๋ฐ์ํ๋ค. ์์ ์ฝ๋๋ฅผ ์๋ก ๋ค ์ง๊ธฐ์๋ ๋๋ฌด ๋ง์ ๊ธธ์ (๋ด ๊ธฐ์ค) ๊ฑธ์ด์๋ค.๊ฒฐ๊ตญ ๋๊ธ ์์ฑ๊ณผ ๋๊ธ ์์ ์ ์ถํผ์ ๋๋ ์ ๊ด๋ฆฌํ๊ธฐ๋ก ํ๋ค.๊ธฐ์กด ํ๋์ ํผ์์ ๊ด๋ฆฌํ๋ ๊ฒ์ ๋๊ฐ๋ก ๋ถ

์์ธํ์ด์ง ์ข์์ ๋ฒํผ์ ์์ ํ๊ณ , ๋ฆฌ์คํธ ํ์ด์ง์๋ ๋ถ์๋๋ฐ ๋ฒํผ์ ๋๋ฅด๋ฉด ์ข์์์ ๋์์ ์์ธ ํ์ด์ง ์์ผ๋ก ์ด๋ํ๋ ํ์์ด ๋ฐ์๋งํฌํ๊ทธ ์์ ์ข์์ ๋ฒํผ์ด ๋ค์ด์๋ ์ปดํฌ๋ํธ๊ฐ ์์นํด ์์ด์ ๊ทธ๋ฐ ๊ฒ ๊ฐ์๋ค.ndm ๋ฌธ์- Event.stopPropagation()์

https://shape-coding.tistory.com/entry/TypeScript-ReactFC%EC%97%90-%EC%82%AC%EC%9A%A9%EC%97%90-%EB%8C%80%ED%95%B4-%EC%83%9D%EA%B0%81%ED%95%B4%EB%
์๋ง๋ ๋ง์ด ๋ดค์ ์๋ฌ ๋น๊ฐ์ ๋๋นํด ""๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋!

https://atotw.tistory.com/302

์์ธํ์ด์ง ํน์ ๊ฒ์๋ฌผ์ ๋ค์ด๊ฐ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ๋จ์๊ฐ ์ ๊ฒ๋ฟ์ด๋ผ ๋ญ๊ฐ ํค๋งค๋ค๊ฐ, ์ฝ๋ฉํธ ์ปดํฌ๋ํธ๋ฅผ ์ฃผ์์ฒ๋ฆฌํ๋ ์ ์ ์์ด ๋๋ ๊ฒ์ ๋ฐ๊ฒฌํ๊ณ ์ฝ๋ฉํธ ์ปดํฌ๋ํธ์์ ์์ธ์ ์ฐพ๊ธฐ๋ก ํ๋ค.๋ญ๊ฐ null์ด๋ผ๋๊ฑธ๊น? ํด๋น ๊ฒ์๋ฌผ์ ๋ฌ๋ฆฐ ๋๊ธ๋ค์ ํ ์ด๋ธ์์ ์ฐพ์๋ณด๊ธฐ๋ก ํ๋ค.๋ ธ
https://medium.com/@yujso66/%EB%B2%88%EC%97%AD-%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C-%EC%A0%84%EB%AC%B8%EA%B0%

supabase์ SQL ์๋ํฐ ์ผ๊ณ ์์ฑํด์ค๋ค. ๊ทธ๋ฅ ๋ ๋ค ์ฐ๊ณ ์ถ์๋๋ฐ ์๋์ ใ ์ฐธ๊ณ ์ฌ์ดํธ : https://community.weweb.io/t/query-random-item-s-from-database-supabase/1159๊ฐ์ ธ์์ ์ด๋ค ๊น๋ํด์ก๋ค