ํ๋ก ํธ์๋ ๊ฐ๋ฐ
42
JSX์ ๋ํ ๊ฐ๋จํ ์ค์ต
1. ๊ฐ์ ์ง๊ธ๊น์ง JSX์ ๋ํ ์ด๋ก ์ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํ์๋ค. ์ด์ JSX ๋ฌธ๋ฒ์ ์ด์ฉํ ๊ฐ๋จํ ์ค์ต์ ํ๊ณ ์ ํ๋ค. create-react-app ์ ์ด์ฉํ์ฌ, react์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ์ค์ผ๋ ํค ์ฝ๋๋ฅผ ๋ฐ๊ณ ๊ทธ src ํด๋ ๋ฐ์ Chapter_03์ด๋ผ๋ ํด๋๋ฅผ ํ๋ ๋ง๋ ๋ค. ๊ทธ๋ฆฌ๊ณ ์์ ๊ฐ์ด Book.jsx ์ Library.jsx ํ์ผ์ ํ๋์ฉ ๋ง๋ค๊ฒ ๋ค. 2. Book.jsx import React from "react"; function Book (props) { return ( {`์ด ์ฑ
์ ์ด๋ฆ์ ${props.name} ์
๋๋ค.`} {`์ด ์ฑ
์ ์ด ${props.numOfPage}ํ์ด์ง๋ก ์ด๋ค์ ธ ์์ต๋๋ค.`} ); } export default Book; ์ฝ๋์ ๋ํ ์ค๋ช
์ ํ๊ฒ ๋ค. Book์ด..
2024.01.13
ํ๋ก ํธ์๋ ๊ฐ๋ฐ/React - ์ด๋ก
JSX์ ์ฅ์ ๋ฐ ์ฌ์ฉ๋ฒ
1. JSX์ ์ฅ์ โ ๊ฐ๊ฒฐํด์ง ์ฝ๋ > ๋์ ๊ฐ๋
์ฑ > ์ค๋ฅ ์ก๊ธฐ ์ฌ์ ์ ๋ฒ ํฌ์คํ
์์ ๋งํ๋ฏ์ด, JSX๋ฅผ ์ฐ๋ฉด ํ๋์ JSX ์ฝ๋ ๋ด์์ JS์ HTML ์ฝ๋๋ฅผ ํผ์ฉํด์ ์ฌ์ฉํ ์ ์์๋ค. ์ด๋, JS ๋ก์ง๊ณผ ๊ทธ๊ฒ์ ์ฐ๊ฒฐํ๋ ค๊ณ ํ๋ HTML ์์๋ฅผ ํน์ ํ๋ ๋ก์ง์ ํ๋ฒ ๋ ์์ฑํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ฝ๋๊ฐ ์งง์์ง๊ณ , ๊ฐ๊ฒฐํด์ง๋ค. ์ด๋ ์์ฒญ๋ ์ฅ์ ์ด๋ค. โ Injection attack ํดํน ๋ฐฉ์ด์ ์ฉ์ด ์ด๊ฑด ๊ทธ๋ ๊ฒ ์๋ฟ๋ ๋ด์ฉ์ด ์๋๋ผ์ ๊น๊ฒ ๋ฃ์ง๋ ์์๋ค. JSX๋ฅผ ์ฐ๋ฉด ํด๋น ์ฃผ์
์ฑ ๊ณต๊ฒฉ์ ๋ฐฉ์ดํ๊ธฐ ๋ ์ฉ์ดํ๋ค๊ณ ํ๋ค. 2. JSX ์ฌ์ฉ๋ฒ โ HTML ์์๋ฅผ ํ๋์ JS ๋ณ์๋ก ์ฌ์ฉํ๋ค. const element1 = Hello World!! ์๋ ๊ฒ ํ๋์ ์์๋ฅผ ๋ณ์๋ก ํน์ ์ด ๊ฐ๋ฅํ๋ค. ๋น์ฐํ ํด..
2024.01.13
ํ๋ก ํธ์๋ ๊ฐ๋ฐ/React - ์ด๋ก
JSX์ ์ ์์ ์๋ฆฌ์ ๋ํ์ฌ
1. JSX์ ์ ์ ์๋ ํ๋ก ํธ ์ฝ๋๋ ํ๋ฉด์ ๋์ฐ๋ HTML, ๊ทธ HTML์ ๊พธ๋ฏธ๋ CSS, ํ๋ฆฌ์ ํ
์ด์
๋ก์ง์ ๋ด๋นํ๋ JS ์ด 3๊ฐ์ง๋ก ๋๋๋ค. ์ด๋ ๊ฒ ์์ญ์ ๊ตฌ๋ถํ์ฌ ์์ฑํ๋ ๊ฒ์ ๋๋๋ก, ํผ๋ก๊ฐ์ ์ ๋ฐํ๋ค. ์๋ํ๋ฉด, JS๋ก ๋ง๋ ๋ชจ๋(ํน์ ๊ธฐ๋ฅ์ ํ๋ ์ฝ๋)์ ์ฐ๊ฒฐํ ํน์ HTML ์์(elements)์ ์ฐ๊ฒฐํ๋ ์์
์ ํญ์ ํด์ค์ผํ๊ธฐ ๋๋ฌธ์ด๋ค. ํด๋น ์์
์ ์ํด ๋ฐ๋ก ์ฝ๋๋ฅผ ์์ฑํด์ผ ํ๊ธฐ์ ๊ฐ๋
์ฑ์ด ๋์ฑ ์ ์ข์์ง๋ค. JSX๋ JavaScript & XML/HTML์ ์ฝ์๋ก, ์์์ ๋ณด์ฌ์ง ํ๋ก ํธ ์๋ ์ ๋ฐ์ ์ฝ์ ์ ๋ณด์ํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ๊ฐ๋
์ด๋ค. JSX์์๋ Javascript ์ฝ๋ ์์์ HTML ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค. ๋ฐ๋ผ์ ๋ฐ๊ณผ ๊ฐ์ ์ฝ๋ ์์ฑ์ด ๊ฐ๋ฅํด์ง๋ค. const e..
2024.01.13
ํ๋ก ํธ์๋ ๊ฐ๋ฐ/React - ์ด๋ก
[HTML ์ฌํ] div ํ๊ทธ์ ์ฉ๋์ ๋ฐ๋ฅธ ์ด๋ฆ.
์ ๋ชจ๋ div ํ๊ทธ์ ๊ธฐ๋ฅ์ด ๋์ผํ๊ณ ์ด๋ฆ๋ง ๋ค๋ฅผ ๋ฟ์ด๋ค. ์๋ฌด ๊ธฐ๋ฅ๋ ์๋ ํด๋น ํ๊ทธ๋ค์ div ๋์ ์ฐ๋ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ๋ค. 1. div๋ฅผ ๋จ๋ฐํ ์, ๊ฐ๋
์ฑ์ด ๋จ์ด์ ธ ์ ์ง๋ณด์๊ฐ ์ด๋ ต๋ค. 2. ํด๋น ํ๊ทธ๋ค์ ์ฐ๋ฉด ๊ฒ์์์ง์ด ์ ๋ณด์ ์ข
๋ฅ๋ฅผ ํ์
ํ ๋ ๋์์ด ๋๋ค. 3. ์คํฌ๋ฆฐ ๋ฆฌ๋๋ก ์ฝ๋ ๋ถ๋ค์ด ์ฝ๊ธฐ ํจ์ฌ ์์ํด ์ง๋ค. ๊ทธ๋ผ ๊ฐ ํ๊ทธ๋ค์ด ์ด๋จ ๋ ์ฐ์ด๋ ์ง ์์๋ณด์. ํ์ด์ง ์ ์ฒด๋ ํน์ ๊ตฌํ์ ์ ๋ชฉ ์ญํ ์ ํ๋ ์์๋ค์ ๋๋๋ฐ ์ฌ์ฉ๋๋ค. ex- ๋ก๊ณ , ์ ๋ชฉ, ๊ฒ์์ฐฝ ๋งํฌ๊ฐ ๋ค์ด๊ฐ๋ ์์๊ฐ ๋ค์ด๊ฐ๋ ํ๊ทธ ex- ์์ธ, ํ์ด์ง ๋ฉ๋ด๋ค ํ์ด์ง ์ ์ฒด์์ ํน์ ํน์ ๊ตฌํ์ ์ตํ๋จ์ ๋ญ ์ ์ ๋ ํด๋น ํ๊ทธ๋ฅผ ์ด์ฉํจ ex- ํ์ด์ง์ ์ฃผ์ ๋ด์ฉ์ด ๋ค์ด๊ฐ๋ ๊ณณ์ผ๋ก ํ์ด์ง๋ง๋ค ๊ผญ ํ๋์ฌ์ผ๋ง ํ๋ค. ์ฌ์ด๋ ๋ฐ ๊ฐ์ ๊ฑฐ..
2023.03.11
ํ๋ก ํธ์๋ ๊ฐ๋ฐ/HTML, CSS - ์ด๋ก
[HTML ์ฌํ] ๋ชจ๋๊ฐ ์ด์ฉํ ์ ์๋ ์น์ฌ์ดํธ
๋ชจ๋๊ฐ ์ด์ฉํ ์ ์๋ ์น์ฌ์ดํธ๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค. ๋ชจ๋๊ฐ ์ด์ฉํ ์ ์๋ค๋ ์๋ฆฌ๋ ์ ์๋ ฅ ์๊ฐ ์ฅ์ ์ธ, ์ง์ฒด ์ฅ์ ์ธ ๋ถ๋ค๋ ์ด์ฉํ๊ธฐ๊ฐ ์์ํด์ผํ๋ค๋ ๊ฒ์ด๋ค. ์๊ฐ ์ฅ์ ์ธ ๋ถ๋ค์ ์คํฌ๋ฆฐ์ ๋ด์ฉ์ ์ฝ์๋ ์คํฌ๋ฆฐ ๋ฆฌ๋๊ธฐ๋ฅผ ์ฌ์ฉํ๋ค. 1. ์ด๋ฏธ์ง์ ๋ํ ์ฃผ์์ alt๋ก ๋ฌ์๋์. (1) ์ฃผ์์ด ์งง์ ๋ ์คํฌ๋ฆฐ ๋ฆฌ๋๊ธฐ๋ก ์ฝํ ๋ด์ฉ์ ํด๋น ํ๊ทธ์ ์์ฑ alt๋ฅผ ๋ง๋ถ์ฌ์ ๊ฐ๋ฐ์๊ฐ ์ค์ ํ ์ ์๋ค. ๊ทธ๋ฅ ์๋ฏธ ์๊ฑฐ๋, ์ฝ์ ํ์๊ฐ ์๋ ์ด๋ฏธ์ง์๋ alt๋ฅผ ์จ์ค์ผ ํ๋ค. ์๋ํ๋ฉด alt๊ฐ ์๋ค๋ฉด ์คํฌ๋ฆฐ ๋ฆฌ๋๊ฐ ์ด๋ฏธ์ง ์์ค ์ด๋ฆ์ ๊ทธ๋๋ก ์ฝ์ด๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋๋ ์๋ฌด ์๋ฏธ ์๋ ๋ด์ฉ์ด๋ฏ๋ก alt์ ๊ณต๋ฐฑ์ ์ด๋ค. ๊ทธ๋ฌ๋ฉด ์คํฌ๋ฆฐ ๋ฆฌ๋๋ ์ ์ฝ๊ณ ์ง๋๊ฐ๋ค. (2) ์ฃผ์์ด ๊ธธ๋ ์ด๋ฏธ์ง์ ๋ํ ์ฃผ์์ด ๊ธธ ๋๋ ์ฃผ์ ๋ด์ฉ์ ์ผ๋ฐ..
2023.03.09
ํ๋ก ํธ์๋ ๊ฐ๋ฐ/HTML, CSS - ์ด๋ก
[HTML ์ฌํ] ์๋จ์ ํ๊ทธ๋ค ๋ฏ์ด๋ณด๊ธฐ
์ฐ๋ฆฌ๊ฐ vs code ์์ html ์ ์์ฑํ ๋, ์ฒ์์ !์น๊ณ tab ๋๋ฅด๋ฉด ๋จ๋ ๋ด์ฉ๋ค์ด ์๋ค. ์ฐ๋ฆฌ๋ ํญ์ body ๋ด๋ถ๋ฅผ ์ฑ์ฐ๋๋ฐ ์ง์คํ์๋๋ฐ, ์ด๋ฒ์๋ ์์ ๋จ๋ ๋ฉํ ๋ฐ์ดํฐ๋ค์ด ๋ฌด์จ ๋ป์ ํ๋์ง ์์๋ณด๊ฒ ๋ค. 1. ๊ธฐ๋ณธ ๋ฉํ๋ฐ์ดํฐ (1) ํด๋น html ๋ฌธ์๊ฐ ์ต์ ๋ฒ์ ์ html์ธ HTML5๋ฅผ ์ฐ๊ณ ์์์ ๋ํ๋. (2) Head ํ๊ทธ๋ค (1) charset="UTF-8"์ ํด๋น html์ ์ด๋ค ํด๋
๊ธฐ๋ก ๋ฒ์ญํด์ผ ํ๋์ง ๋ธ๋ผ์ฐ์ ์๊ฒ ์๋ ค์ฃผ๋ ๊ฒ์ด๋ค. utf-8๋ก ์ธ์ฝ๋ฉ ๋ ๋ฌธ์๋ฅผ ๋ค๋ฅธ ํด๋
๊ธฐ๋ก ๋ฒ์ญํ๋ฉด ๋ฌธ์๊ฐ ๋ค ๊นจ์ ธ์ ๋์จ๋ค. (2) ๋๋ฒ์งธ ์ค ๋ด์ฉ์ ํน์ ์๋์ฐ ์ต์คํ๋ก๋ฌ๋ก ์ด๋์ ์ด๋ค ๋ชจ๋๋ก ์คํํ ๊ฒ์ธ์ง์ ๋ํ ๋ด์ฉ์ด๋ค. (3) 3๋ฒ์งธ ์ค์ viewport ๊ด๋ จ ๋ด์ฉ์ด๋ค. viewpor..
2023.03.09
ํ๋ก ํธ์๋ ๊ฐ๋ฐ/HTML, CSS - ์ด๋ก
[CSS] Flex layout
1. ๋ถ๋ชจ์์์์ ์ค์ ํด์ค์ผ ํ ๊ฒ display: flex; /* ๋ถ๋ชจ์์์ flex๋ก ์ค์ ํ๋ฉด, ์์ ์์๋ค์ ํฌ๊ธฐ ์์น๋ฅผ ์์ ์์ฌ๋ก ๋ฐ๊ฟ ์ ์๊ฒ ๋๋ค. ์์ ์์ ์ฌ์ฉ์ ๋ํ ์ ์ฐ์ฑ์ด ์ฃผ์ด์ง๋ค. */ flex-direction: row /*column, row-reverse,column-reverse*/ /* ์์ ์์๋ค์ด ๋ฐฐ์ด๋ ๊ธฐ์ค์ ์ ํ๋ค. row๋ก ํ๋ฉด, ์ผ์์์ ์ค๋ฅธ์ชฝ์ผ๋ก(๊ฐ๋ก์ถ) ์ญ ๋์ด, column์ผ๋ก ํ๋ฉด ์์์ ์๋๋ก(์ธ๋ก์ถ) ์ญ ๋์ด reverse๋ ๊ฐ๊ฐ ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ, ์๋์์ ์๋ก ์ฌ๊ธฐ์ main ์ถ์ ํด๋น ์์๊ฐ ์ ํ ๊ธฐ์ค์ด๊ณ , ์์ง ์ถ์ ๊ทธ์ ๋ฐ๋๋๋ ์ถ์ด๋ค. ์๋ฅผ ๋ค์ด row์ด๋ฉด main ์ถ์ ๊ฐ๋ก์ด๊ณ ์์ง ์ถ์ column์ด๋ค.*/ flex-wrap: wrap or..
2023.03.02
ํ๋ก ํธ์๋ ๊ฐ๋ฐ/HTML, CSS - ์ด๋ก
[CSS] ์์ ๊ฐ์ถ๋ ๋ฐฉ๋ฒ
1. ์ปค์ cursor: auto; /* auto: ์ํฉ์ ๋ง๊ฒ ์๋ ๋ณํ ๊ทผ๋ฐ ์ด๊ฒ ๋ด๊ฐ ์ํ์ง ์๋ ๊ฒ์ผ ์ ์์ ์ฃผ์ default: ๊ทธ๋ฅ ๋ฌด์กฐ๊ฑด ํ์ดํ none: ์ปค์ ์ ๋ณด์ zoom-in: ๋๋ณด๊ธฐ pointer: ์๊ฐ๋ฝ์ผ๋ก ๋ฐ๋. not-allowed: ๊ธ์ง ํ์ ๋์ด. ๊ทธ ์ธ more... mdn ๋ฌธ์ ํ์ธ ๋ฐ๋ */ 2. ์์ ๊ฐ์ถ๋ ๋ฒ opacity: 1; visibility: hidden; display: none; /* opacity: ๋ถํฌ๋ช
๋ 1 == ์ ๋ณด์ (100%), 0 == ์ ๋ณด์ (0%) opacity: 0; ์ด ๋๋ฉด ๋ชจ์ต๋ง ๊ฐ์ถ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ํด๋น ํ๊ทธ์ ์ปค์คํฐ๋ง์ด์ง ํ๋ ์ปค์ ๋ชจ์ ๋ฐ๋, ํด๋ฆญ, ํฌ์ปค์ค(input ์์๊ฐ ์ ํ๋ ๊ฒ) ์ ๋ถ ๋ค ๋จ. visibility..
2023.02.28
ํ๋ก ํธ์๋ ๊ฐ๋ฐ/HTML, CSS - ์ด๋ก