
๐ ๋ฐฐํฌ๋งํฌ
# ํ๊ณ
์ข์ ๊ธฐํ๋ก ์๋์ด ๊ฐ๋ฐ์์ ํ์ ํ ๊ธฐํ๋ฅผ ๊ฐ์ก๋ค. ๋ฆฌ์กํธ์ javascript๋ฅผ ์ฌ์ฉํด ๊ฐ๋ฐํ๋ค. Udemy ๊ฐ์๋ฅผ ๋ค์ผ๋ฉฐ ํผ์ ๊ณต๋ถํด์ ์ด๋ป๊ฒ ๊ฐ๋ฐํด์ผํ๋์ง, ์ด๋ค ์๊ฐ์ ํ๋ฆ์ ๊ฐ์ ธ์ผ ํ๋์ง ๋ชฐ๋๋๋ฐ, ์ด๋ฒ ๊ฒฝํ์ ์ ๋ง ๊ฐ์ง ๊ฒฝํ์ด์๋ค. ์๋ฅผ๋ค์ด ํ๋ก๊ทธ๋๋จธ์ค ๋ฌธ์ ๋ฅผ ํ๊ณ ์๊ธด ํ์ง๋ง, ์ด๋ฅผ ์ฝ๋์ ์ธ์ ์ด๋ป๊ฒ ์ ์ฉํด์ผ ํ ์ง ๋ชฐ๋๋ค. ๊ทธ๋์ ๋งค๋ฒ hard coding ํ๊ณ ์์๋๋ฐ, ์๋์ด ๊ฐ๋ฐ์๋ถ๊ป์ '์ธ์ ์ด๋ค ๊ฒฝ์ฐ์ ์ด๋ฐ ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผ ํ๊ธฐ ๋๋ฌธ์ ํ๋ก๊ทธ๋๋จธ์ค๋ฅผ ํตํด javascript๋ฅผ ๊พธ์คํ ํ์ตํด์ผํ๋ค'๋ฉฐ ์กฐ์ธํด์ฃผ์ จ๋ค. ์ฌ์ค, ๋ค๋ค ํ๋ก๊ทธ๋๋จธ์ค ๋ฌธ์ ๋ฅผ ํ์ด์ผ ํ๋ค๊ธฐ์ ํ๊ธด ํ์ง๋ง, ๊ฐ๋ฐ์์๋ ์ด๋ป๊ฒ ์จ์ผ ํ๋์ง ์๋ฟ์ง๊ฐ ์์๋ค. ์ด๋ฒ ๊ฒฝํ์ ์ ๋ง ๋จธ๋ฆฌ๋ฅผ ํ ๋ ๋ง๋ ๊ธฐ๋ถ์ด์๋ค. ์ข ๋ ์ด์ฌํ ๋ฌธ์ ๋ฅผ ํ๋ฉฐ ๊ณต๋ถํ์ด์ผ ํ๋๋ฐ, ๋ฌธ์ ๋ฅผ ํธ๋ ์ด์ ๋ฅผ ๋ชจ๋ฅด๋ ์๋๋ ฅ์ด ์์ด ํ๋ก๊ทธ๋๋จธ์ค๋ฅผ ๋ฑํ์ ํ์๋ค. ์ด์ ์ด์ ๋ฅผ ์์์ผ๋, ๊พธ์คํ ๋ฌธ์ ๋ฅผ ํ๊ณ ์ด๋ฅผ ๊ฐ๋ฐ์ ์ ์ฉํ๊ณ ์ ๋ ธ๋ ฅํด์ผ๊ฒ ๋ค.
์ถ๊ฐ๋ก, ๋ธ๋ก๊น ์ ํ๋ฉฐ ๊พธ์คํ ๊ณต๋ถํด์๋๋ฐ, ๋ฐฐ์ด ๋ด์ฉ์ ์ฃผ๋์ ์ผ๋ก ์ฌ์ฉํ์ฌ ํ๋ก๋ํธ๋ฅผ ๊ฐ๋ฐํด๋ณด์ง ์์์ค๋ ๊ดด๋ฆฌ๊ฐ์ด ์ปธ๋ค. '๋ ์ง๊ธ๊น์ง ๋ญ ๊ณต๋ถํ๊ฑฐ์ง?'๋ผ๋ ์๊ฐ์ด ์ ๋ก ๋ค์์ผ๋ ๋ง์ด๋ค. ์ญ์, ๊ฐ๋ฐ์ ๋์ด ์๋๋ผ ์์ผ๋ก ํ๋ ๋ง์ด ํ๋ฆฌ์ง ์์๋ค. ์์ผ๋ก๋ ๋ฌด์ธ๊ฐ๋ฅผ ๋ฐฐ์ฐ๋ฉด ๊พธ์คํ ์์ผ๋ก ๊ฐ๋ฐํ๋ฉฐ ๋ณต์ตํ์ฌ ์ฒด๋ํ ์ ์๊ฒ ํด์ผ๊ฒ ๋ค.

๋ฉํ ๋ ๊ฐ์ฌํฉ๋๋ค
## Feedback
- File tree
: App์ ์ ์ธํ ํ์ด์ง์ ํ์ผํธ๋ฆฌ๋ ๋ถ๋ช ํ๊ฒ ํ ๊ฒ
: ์ผ๋ฐ์ ์ผ๋ก ํ์ด์ง ๋จ์๋ views ํน์ pages ํด๋ ๋ด์ ์ ๋ฆฌ
- component
: ์ปดํฌ๋ํธ๋ช ์ ์๋ฏธ๊ฐ ๋ถ๋ช ํ๊ฒ ์์ฑํ ๊ฒ
: src/components ํด๋์๋ ๊ธฐ๋ฅ ์ปดํฌ๋ํธ ๋ฃ๊ธฐ
: ์ปดํฌ๋ํธ ํด๋ ์ญ์ ์ฉ๋์ ๋ฐ๋ผ ํ์ผํธ๋ฆฌ๋ฅผ ๋ถ๋ช ํ๊ฒ ํ ๊ฒ
: ๋ฆฌ์กํธ ์ปดํฌ๋ํธ๋ ์นด๋ฉ์ผ์ด์ค๋ก ์์ฑ
- variable
: staticํ string ๊ฐ์ ์์๋ก ์ ์ธํด ์ฌ์ฉํ๊ธฐ
const introDescription = `~~~\n~~~\n~~~`;
function Intro() {
return (
<>
<section className={styles.sectionWrapper}>
<p className={styles.introDescription}>{introDescription}</p>
</section>
</>
);
}
- map()
: ๋ฐ๋ณต ํํ๋ฅผ ์ง๋๋ ๊ฒฝ์ฐ, map()์ ์ฌ์ฉํด๋ณด๊ธฐ
const items = [{title: ~~, content: ~~}, ...]
function FAQ() {
return (
<section className={styles.frame}>
<Accordion>
{faqItems.map((faqItem, index) => (
<Accordion.Item eventKey={index} key={index}>
<Accordion.Header>{faqItem.title}</Accordion.Header>
<Accordion.Body>{faqItem.description}</Accordion.Body>
</Accordion.Item>
))}
</Accordion>
</section>
);
}
How to map images in reactjs
So in a Reactjs class component, I have an array in my state like this: myArray: [ { number: 1, title: 'Users', image: '../../../assets/images/website/homepage/users.png' }, { number: 2, tit...
stackoverflow.com
- sementic tag์ ์ค์์ฑ์ ๋ํด ํ์ตํ๊ธฐ
: h ํ๊ทธ๋ ๊ธ์จ ํฌ๊ธฐ๋ฅผ ์ ํ๋๋ฐ ์ฌ์ฉํ์ง ๋ง ๊ฒ
: ์ผ๋ฐ txt๋ span, div, p ํ๊ทธ๋ฅผ ์ฌ์ฉํด ์คํ์ผ๋ง ์กฐ์
reference)
hํ๊ทธ๊ฐ ์ค์ํ ์ด์ ์ ์ฌ๋ฐ๋ฅธ ์ฌ์ฉ๋ฒ(๊ตฌ๊ธ SEO)
hํ๊ทธ์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ๊ตฌ๊ธ ๋ ธ์ถ์ ์ํด hํ๊ทธ๊ฐ ์ค์ํ ์ด์ ์ ๋ํด ์์๋ณด์์ต๋๋ค. ์ด์ ํจ๊ป hํ๊ทธ์ ์ฌ๋ฐ๋ฅผ ์ฌ์ฉ๋ฒ๊ณผ ์ฌ์ฉ์ ์ฃผ์์ฌํญ, ๋ง์ง๋ง์ผ๋ก hํ๊ทธ๋ณ ๊ธ์ ํฌ๊ธฐ๋ฅผ ์ธํ ํด ๋๋ ๋ฐฉ๋ฒ๊ณผ
write-down1.tistory.com
- className
: tag๋ช ๊ณผ className ๋ช ์ ์ ๋ ๋์ผํ๊ฒ ์์ฑํ์ง ๋ง ๊ฒ
: wrapper: ์ ์ฒด๋ฅผ ๊ฐ์ ๋ ์ฌ์ฉ
'๊ฐ๋ฐ ๊ณต๋ถ > Projects' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Practice) vite-plugin-svgr - SVG๋ฅผ ReactComponent๋ก ์ฌ์ฉํ๊ธฐ (0) | 2023.04.13 |
---|---|
Practice) To do List (0) | 2023.02.26 |
React) Porfolio page (0) | 2022.12.17 |
React) Movie App (0) | 2022.11.14 |
Practice) Calculator (0) | 2022.11.13 |