์ ์ฒด ๊ธ
[ReactJS] ๋ฐฑ์์ GET method๋ฅผ ํตํด ๋ฐ์์จ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐ ๋ถํด ํ ๋นํ ๋ ๊ฐ์ด ์ฝํ์ง์ง ์๋ ๋ฌธ์ - Uncaught TypeError: Cannot read properties of undefined (reading '0')
๐จ ๋ฌธ์ ์ํฉ ํ ํ๋ก์ ํธ ์ค ๋ฐฑ์๋ ์๋ฒ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ์ฌ ๋ฐ์ ํ, ์ด ์ ๋ณด๋ฅผ ๊ฐ๊ณตํด์ ํ๋ฉด์ ๋ ๋๋งํด์ฃผ๋ ์์ ์ด ์ฌ๋ฌ ๋ฒ ์์๋ค. ์ด ๋ ์์ฃผ ๊ณจ์น๋ฅผ ์ํ๊ฒ ํ๋ ์๋ฌ๊ฐ ํ๋ ์์ด ํฌ์คํธ๋ก ๋จ๊ธด๋ค. const ReservationPage = () => { const [lectureData, setLectureData] = useState({}); // ๋ฐฑ์์ ์ํ ๋ํ ์ผ ๋ฐ์ดํฐ ์์ useEffect(() => { fetch(`/data/reservationData.json`, { method: 'GET', }) .then(response => response.json()) .then(data => { setLectureData(data); }); }, []); if (lectureData..
์์ฝ๋ 1์ฐจ ํ ํ๋ก์ ํธ 'HealthEat' ํ๊ณ
ํ๋ก์ ํธ ์๊ฐ'ํผ๋ฆฌ๋ง์ผ' 'ํ๋ฆฌ' ์ฌ์ดํธ๋ฅผ ๋ชจ๋ธ๋ง ํ ํ๋ก์ ํธ๋ก, ์ฝ๊ณผ ๊ฑด๊ฐ์ํ์ ํ๋งคํ๋ ์ปค๋จธ์ค ์ฌ์ดํธ๋ฅผ ๋ฐฑ์ง ์ํ์์ ๊ตฌํํ์๋ค.๊ฑด๊ฐ์ ๋จน๋ค๋ ์๋ฏธ๋ก ์ฌ์ดํธ์ ์ด๋ฆ์ 'HealthEat(ํฌ์ค์)'์ผ๋ก ์ง์๋ค.๊ธฐ๊ฐ : 2022.11.14 ~ 2022.11.25โก๏ธ ํ๋ก์ ํธ ๊นํ๋ธ ๋ ํฌ์งํ ๋ฆฌ ๋ฐ๋ก๊ฐ๊ธฐโก๏ธ ํ๋ก์ ํธ ๋ ธ์ ํ์ด์ง ๋ฐ๋ก๊ฐ๊ธฐ ํ ์๊ฐํ๋ก ํธ์๋ 3๋ช ์ฐ์๋ฏผ : Nav ๋ฐ, ์คํ ์ด ํ์ด์ง ๊ตฌํ์ด์์ค(๋) : ๋ฉ์ธ ํ์ด์ง, ์ํ ์์ธ ํ์ด์ง ๊ตฌํ์ดํ์ : ๋ก๊ทธ์ธ ํ์ด์ง, ํ์๊ฐ์ ํ์ด์ง ๊ตฌํ๋ฐฑ์๋ 2๋ช ์ด์์ : ์ฐํ๊ธฐ ๊ธฐ๋ฅ ๊ตฌํ์กฐ์์(PM) : ๋ก๊ทธ์ธ, ์ ํ์กฐํ ๊ธฐ๋ฅ ๊ตฌํ ๊ฐ๋ฐ ๋๊ตฌ ๋ฐ ์ ์ฉ ๊ธฐ์ (+ํธ๋ ๋ก)ํ๋ก ํธ์๋JavaScript(ES6)React.jsSassReact-router-domFont..
[ReactJS] setState์ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ก ์ธํ ๋ฒ๊ทธ ํด๊ฒฐํ๊ธฐ
๐จ ๋ฌธ์ ์ํฉ setState๋ฅผ ํตํด ์ํ๊ฐ์ ๋ณ๊ฒฝํ๋ ์ํ๋ ๊ฐ์ด ํ๋์ฉ ๋ฐ๋ฆฐ ์ฑ ๋ณ๊ฒฝ๋๋ ๋ฐ๋์ ๋์ ์๋๋๋ก ์ฝ๋๊ฐ ๋์ํ์ง ์๋๋ค. function handleBtnActivateById(event) { setIdValue(event.target.value); console.log(idValue); isIdVaild = idValue.indexOf('@') !== -1 ? true : false; handleBtnActivate(event); } ์์ ์ฌ์ง์ฒ๋ผ, ์ ๋ ฅ์ฐฝ์ ์ ๋ ฅ๋ ๊ฐ์ด (์ฝ์์ฐฝ์์) ํ ๊ธ์์ฉ ๋ ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. ๐ก ๋ฌธ์ ํด๊ฒฐ ๋ฐ ๊ณผ์ ๊ตฌ๊ธ๋ง์ ํตํด ์์๋ณด๋, setState์ Batch Update๋ผ๋ ๋น๋๊ธฐ์ ํน์ฑ์ผ๋ก ์ธํด ์ด๋ฐ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ ๊ฒ์์ ์ ์ ์์๋ค..
[ReactJS] React์์ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ์ฐ๊ฒฐํ๊ณ , event ๊ฐ์ฒด๋ฅผ ํ์ฉํ ๋ ์ฃผ์ํด์ผ ํ ์
๐จ ๋ฌธ์ ์ํฉ React์์ ํน์ ์์์ ์ด๋ฒคํธ๋ฅผ ์ฐ๊ฒฐํ๊ณ , event ๊ฐ์ฒด๋ฅผ ๋งค๊ฐ๋ณ์๋ก ๋ฐ์ ํ์ฉํ๊ธฐ ์ํด ์์ ๊ฐ์ ์ฝ๋๋ฅผ ์์ฑํ์๋ค. ํ์ง๋ง 'event is deprecated'๋ผ๋ ์ดํดํ ์ ์๋ ์๋ฌ๊ฐ ๋ฐ์ํ์๊ณ ์ฝ๋ ์ญ์ ์คํ๋์ง ์์๋ค. ๐ก ๋ฌธ์ ํด๊ฒฐ ๋ฐ ๊ณผ์ ๋ฐ๋๋ผ JS์์ ํน์ ์์์ ์ด๋ฒคํธ๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ค๋ฉด ์ฐ์ ํด๋น ์์์ ํด๋นํ๋ DOM ๊ฐ์ฒด๋ฅผ DOM ํธ๋ฆฌ์์ ์ฐพ์์ผ ํ๋ค. ๊ทธ๋ฌ๊ณ ๋ ํ, ์ด ๊ฐ์ฒด์ ์ํ๋ ์ด๋ฒคํธ๋ฅผ addEventListener ํจ์๋ฅผ ํตํด ์ฐ๊ฒฐํด์ฃผ๋ฉด ๋๋ค. ํน์ ์ธ๋ผ์ธ ๋ฐฉ์์ผ๋ก ํน์ ์์์ ํด๋นํ๋ HTML ํ๊ทธ์ ์ด๋ฒคํธ ์์ฑ์ ๋ฐ๋ก ๋ถ์ฌํด์ฃผ๋ ๋ฐฉ๋ฒ๋ ์๋ค. React์์ ํน์ ์์์ ์ด๋ฒคํธ๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ค๋ฉด ๋ฐ๋๋ผ JS์์์ ์ธ๋ผ์ธ ๋ฐฉ์์ฒ๋ผ JSX๋ก ๋ณํ๋ ์ฝ๋์ ํ..
[ReactJS] React๋ก ์์์ ํด๋์ค ์ถ๊ฐ ๋ฐ ์ ๊ฑฐํ๊ธฐ (๋ถ์ : React์์ ์ง์ DOM์ ์กฐ์ํ์ง ์๋๋ก ํ์)
๐จ ๋ฌธ์ ์ํฉ ์ธ์คํ๊ทธ๋จ์ ํด๋ก ์ฝ๋ฉํ๋ ๊ณผ์ ์์ ๋ฐ๋๋ผ JS๋ก DOM ์์์ ์ ๊ทผํ ํ ํด๋์ค๋ฅผ ์ถ๊ฐํ๊ณ ์ ๊ฑฐํ๋ ๋ฐ classList์ add, remove ๋ฉ์๋๋ฅผ ํ์ฉํ์๋ค. ๊ทธ๋ฌ๋ ์ด ์ฝ๋๋ฅผ React๋ก ๋ณํํ๋ ๊ณผ์ ์์๋ classList๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ์๋๋ ์ ์์ ์ผ๋ก ๋์ํ์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ๊ทธ๋์ console.log()๋ฅผ ํตํด React์์๋ classList ํจ์๊ฐ ์ ๋๋ก ๋์ํ๋ ์ง ํ ๋ฒ ์คํํด๋ณด์๋๋ฐ, ํด๋์ค๊ฐ ์ ๋๋ก ์ ๊ฑฐ๋๊ณ ์ถ๊ฐ๋จ์ ํ์ธํ ์ ์์๋ค. ํ์ง๋ง ์ ๋๋ก ๋์ํ๋ ์ฝ๋์ ๋ฌ๋ฆฌ ํ๋ฉด์ ๋ณด์ด๋ ๊ฒฐ๊ณผ๋ ๊ทธ๋ ์ง ์์๋ค. (๋์์ด ๋๋ ํด๋์ค๊ฐ opacity: 0.6 ์คํ์ผ ์์ฑ์ด ๋ถ์ฌ๋ ํด๋์ค๋ผ, ๊ฒฐ๊ณผ๋ฅผ ํ๋ฉด์์ ๋ฐ๋ก ํ์ธํ ์ ์๋ ์ํฉ์ด์๋ค.) // SyLogi..
CSS ๋ ์ด์์ - Position๊ณผ Block ์ ๋ฆฌ
CSS ๋ ์ด์์์์ ์ค์ํ ๊ฐ๋ ์ธ Position๊ณผ Block์ ๋ํด ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค. ์ฐธ๊ณ ๋ก ๋ง๋ก ํ์ด์ ๊ธ์ฒ๋ผ ์์ฑํ์ง ์๊ณ , ํญ๋ชฉ๋ณ๋ก ๊ฐ๋ ์ ๋ถ๋ฅํ์ฌ ์ ๋ฆฌํ์๋ค. CSS - Display ์์ฑ : Block๊ณผ Inline CSS์ display ์์ฑ์ ํ๋ฉด์ ์ฌ๋ฌ ์์๋ค์ ์ด๋ป๊ฒ ๋ฐฐ์นํ ์ง ๊ฒฐ์ ํ๋ค. ์นํ์ด์ง์ ๋ ์ด์์(layout)์ ๊ฒฐ์ ํ๋ค๊ณ ํด๋ ๋ฌด๋ฐฉํ๋ค. div { display: block; } โจ Block VS Inline Block block ํ๊ทธ ์์ ๋ค๋ฅธ ์์๊ฐ ์ฌ ์ ์๋ค. block์ ๋์ด(height)์ ๋๋น(width)๋ฅผ ๊ฐ์ง๋ค. block์ Box์ด๊ณ , ์ฌ๋ฐฑ๊ณผ ๊ด๋ จ๋ 3๊ฐ์ง ์ค์ํ ํน์ง์ ๊ฐ์ง๋ค.(inline๋ ๊ฐ์ง๊ณ ์๋ ํน์ง์ด๋ค. ์ํ margin๋ง ์ ์ธํ๊ณ ) : m..
Semantic Tag (์๋ฉํฑ ํ๊ทธ) ๋ฅผ ์ฌ์ฉํ์ฌ ์น ๊ฐ๋ฐ์ ํด์ผํ๋ ์ด์
HTML ์์๋ Semantic ์์์ Non Semantic ์์๋ก ๊ตฌ๋ถํ ์ ์๋ค. ์ฌ๊ฑฐ์ Semantic ์์๋ ์๋ฏธ๊ฐ ๋ถ์ฌ๋ ์์๋ฅผ ์๋ฏธํ๋ค. ์น ๊ฐ๋ฐ์๊ฐ ์น ์ฌ์ดํธ๋ฅผ ๊ตฌ์ถํ ๋ ๊ฐ ์์๊ฐ ๊ฐ์ง๋ '์๋ฏธ'๋ฅผ HTML ํ๊ทธ์ ์ง์ ๋ถ์ฌํ์ฌ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ค์ํ๋ค. ํ๋์ ์์๋ฅผ ํตํด ๊ทธ ์ด์ ๋ฅผ ๊ฐ๋จํ ์ง์ด๋ณด์. ์นํ์ด์ง์ ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฌ์ค๋ 2๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ' ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ'๊ณผ ' ํ๊ทธ์ background-image ์์ฑ์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ'์ด ์๋ค. (๋ค๋ฅธ ๋ฐฉ๋ฒ๋ ์๊ฒ ์ง๋ง ์ฌ๊ธฐ์ ์ด ๋ ๊ฐ์ง๋ง์ ๊ณ ๋ คํ๊ธฐ๋ก ํ๋ค.) ์ฌ๊ธฐ์ ํ๊ทธ๋ ๊ทธ ์ด๋ฆ์ '์ด๋ฏธ์ง'๋ผ๋ ์๋ฏธ๊ฐ ๋ด๊ฒจ ์๋ Semantic Tag์ด๋ค. ์ด๋ฐ Semantic Tag๋ฅผ ์ด์ฉํ์ฌ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ํ๊ทธ ์ด๋ฆ๋ง์ผ๋ก ์ด ์์๊ฐ ์ด๋ค ..
๊ฐ๋ฐ์ ๋๊ตฌ๋ ๋ฌด์์ธ๊ฐ?
๊ฐ๋ฐ์ ๋๊ตฌ (DevTool) ๋? ๊ฐ๋ฐ์ ๋๊ตฌ๋ ๊ฐ๋ฐ์๋ค์ด ํํ์ด์ง๋ฅผ ์์ ํ๊ณ ๋ฐ์ํ ๋ฌธ์ ์ ์์ธ์ ์ฝ๊ฒ ํ์ ํ๊ธฐ ์ํด ๋ธ๋ผ์ฐ์ ์์ ์ ๊ณตํ๋ ๋๊ตฌ์ด๋ค. ์๋์ฐ๋ ๋งฅ์์ F12๋ฅผ ํด๋ฆญํ๋ฉด ์ด ์ ์์ผ๋ฉฐ, ์น ๊ฐ๋ฐ์๋ค์ ๋ณดํต ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ด์ด๋๊ณ ์์ ์ ํ๋ ๊ฒฝ์ฐ๊ฐ ๊ต์ฅํ ๋ง๊ธฐ ๋๋ฌธ์, ์น ๊ฐ๋ฐ์๊ฐ ๊ฐ๋ฐ์ ๋๊ตฌ์ ์ฌ์ฉ๋ฒ์ ์ ์๋ ๊ฒ์ ์ค์ํ๋ค. ๊ฐ๋ฐ์ ๋๊ตฌ์๋ ์ฌ๋ฌ ๊ฐ์ ํจ๋์ด ์กด์ฌํ๋ค. ์ด ๊ฐ ํจ๋์ ๊ธฐ๋ฅ์ ์ ์์งํ์ฌ ์ ์ ํ ์ํฉ์ ์๋ง์ ํจ๋์ ํ์ฉํ๋๋ก ํ์. ์ด๋ฒ์ ๊ฐ์ฅ ๋ง์ด ์ฐ๋ ํจ๋ 4๊ฐ์ ๊ธฐ๋ฅ์ ๋ํด ์ ๋ฆฌ๋ฅผ ํด๋ณด๊ณ ์ ํ๋ค. Elements ํจ๋ HTML๊ณผ CSS ์ฝ๋๋ฅผ ๋ถ์ํ๊ณ ์ค์๊ฐ์ผ๋ก ์ด๋ฅผ ์์ ํ ์ ์๋ ํจ๋์ด๋ค. ์ฌ์ดํธ์ ๊ตฌ์กฐ๋ฅผ ํ์ ํ๋ ๋ฐ ์ฉ์ดํ๋ค. (CSS ์ฝ๋๋ฅผ ํ์ธํ ์ ์..
์ฝ๋์จ(CodeSoom) ๋ฆฌ์ํธ 11๊ธฐ ๋ง์ง๋ง ํ๊ณ ๋ฐ ํ๊ธฐ.. (๋ถ์ : ๋๋ ์คํจํ๋ค)
๋ฌด๊ฑฐ์ด ๋ง์์ ๊ฐ๊ณ ๋ง์ง๋ง ์ฝ๋์จ ํ๊ณ ๋ฅผ ์จ๋ณด๋ ค ํ๋ค.๊ฒฐ๋ก ๋ถํฐ ๋งํ์๋ฉด.. ๋๋ 6์ฃผ์ฐจ์ ๋ฒฝ์ ๋๊ธฐ์ง ๋ชปํ๊ณ ํฌ๊ธฐํ๋ค. ์ฌ์ค ํฌ๊ธฐํ๋ค๋ ๊ฒ ์์ฒด๊ฐ ๋ง์ด ๋ถ๋๋ฝ๊ณ ์ฐฝํผํด์ ๊ทธ๋์ ํ๊ณ ๋ฅผ ์ฝ๊ฒ ์ฐ์ง ๋ชปํ๊ณ ์์๋ค.๊ทธ๋ฌ๋ค ์ฝ๋์จ ๋ฆฌ์ํธ ๋๊ธฐ ๋ถ๋ค ์ค ๊นํ๋ธ์์ ๋๋ฅผ ํ๋ก์ฐํ์ ํ ๋ถ์ด ์ผ๋ง ์ ์ธํํ์ ๊ฒ์ ๋ณด๊ณ ๋น๋ก ์ฐฝํผํ์ง๋ง ๋๋ง์น์ง ๋ง๊ณ ์ด๋ ๊ฒ ํ๊ธฐ๋ฅผ ์ ๊ณ ๊ณต์ ํ๋ ๊ฒ์ด์ฝ๋์จ์์ ๋๋ฅผ ์ง์ผ๋ด ์ค์ (์ธ์ ๊ฐ ์ด๋์์ ๋ ์ด๋ป๊ฒ ๋ต์ง ๋ชจ๋ฅผ) ์ฌ๋ฟ ๋ถ๋ค์๊ฒ๋๊ทธ๋ฆฌ๊ณ ์ด๋ฒ ์คํจ๋ฅผ ์์น๋ง์ด ์๋ ์ฑ์ฅ์ ๋ฐํ์ผ๋ก ์ผ๊ณ ์ถ์ ๋ ์์ ์๊ฒ๋์ข์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์ด ์ด๋ ต๊ฒ ๊ธ์ ์ด๋ค. ๋๋ ์น ๊ฐ๋ฐ์ ๊ดํ ๊ธฐ์ด ์ง์์ด ๋ง์ด ๋ถ์กฑํ ์ํ์์ง๋ง ๊ฐํ ์ด์ ์ ๊ฐ๊ณ ์ฝ๋์จ์ ์ ์ฒญํ๋ค.๋ฌผ๋ก 1์ฃผ์ฐจ๋ถํฐ ๋งค ์๊ฐ์ด ๊ณ ๋น์ ์ฐ์์ด์..
์ฃผ์์ฐฝ์ naver.com์ ์น๋ฉด ์ผ์ด๋๋ ์ผ์ ์ฝ๊ฒ ์ดํดํด๋ณด์
(์ด ํฌ์คํธ๋ velog ํ๋ซํผ์ ํฌ์คํ ํ๋ ๊ฒ์๊ธ์ ๊ทธ๋๋ก ๊ฐ์ ธ์จ ๊ฒ์ ๋๋ค. ๊ฐ์ฌํ๊ฒ๋, ๋น์ ์ด ๊ฒ์๊ธ์ด velog ์๊ฐ ํธ๋ ๋ฉ 1์์ ์ฌ๋์ต๋๋ค. ์ฝ์ด์ฃผ์ ๋ชจ๋ ๋ถ๊ป ์ด ์๋ฆด ๋น์ด ์ง์ฌ์ผ๋ก ๊ฐ์ฌ์ ๋ง์ ์ฌ๋ฆฝ๋๋ค.) ๐ ์๋ก ์คํฐ๋์์ ๋ฐํ๋ฅผ ์ค๋นํ๋ฉฐ, ๊ธฐ์ ๋ฉด์ ์ ๋จ๊ณจ ์ง๋ฌธ์ธ ์น ๋ธ๋ผ์ฐ์ ์ ๋์ ์๋ฆฌ์ ๋ํด ์ฒ์์ผ๋ก ๊ณต๋ถํ๊ฒ ๋์๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์ฃผ์ ๊ฐ ์ ๋จ๊ณจ ์ง๋ฌธ์ผ๋ก ๊ผฝํ๋์ง ์ดํดํ ์ ์์๋ค. ์ด ์ฃผ์ ๋ ๊น์ด ๋ค์ด๊ฐ๊ธฐ ์์ํ๋ฉด ์ ๋ง ๋์์ด ๋ค์ด๊ฐ ์ ์๋ ๋ด์ฉ์ธ ๊ฒ ๊ฐ์ ๋ณด์๋ค. ๊ทธ๋ ๊ธฐ์ ๋ฉด์ ๊ด์ด ๋ฉด์ ์์ ์ญ๋์ ํ์ ํ๋ ๋ฐ ์ด๋งํ ์ง๋ฌธ์ด ์๊ฒ ๊ตฌ๋ ์ถ์ ์๊ฐ์ด ๋ค์๋ค. ๋ง์ผ CS ์ง์์ด ๋ถ์กฑํ๋ค๋ฉด, ์ด ์ฃผ์ ๋ฅผ ์ฒ์ ๊ณต๋ถํ ๋ ์๋ง ๋ด์ฉ์ด ๋ง์ด ๋ฏ์ค๊ณ ์ด๋ ต์ง ์์๊น ์ถ๋ค. (์ฌ์ค ๋ด ์ด์ผ๊ธฐ๋ค.) ..