์๋ ํ์ธ์, ์ํ์ ๋๋ค.
2025๋ 3์๋ถ๋ก ์ธํ๋ฐ์์์ ์ง์๊ณต์ ์ ํ๋์ ๋ง๋ฌด๋ฆฌํ๊ณ ์๋ก์ด ์ถ๋ฐ์ ํฉ๋๋ค.
์์ผ๋ก๋ ์๋ ์ฌ์ดํธ์์ ์ ๊ฐ์์ ์ปจํ ์ธ ๋ค์ ๋ง๋๋ณด์ค ์ ์์ต๋๋ค.
์ํ์ด ๋ง๋ ํ๋ก ํธ์๋ ์ง์ ํฌํธ - FrontOverflow
Courses
Posts
Q&A
prevIsConfiromed ์ง๋ฌธ
์๋ ํ์ธ์, ์ํ์ ๋๋ค. useState() ํ ์ set ํจ์๋ฅผ ์ฌ์ฉํ ๋๋ ์ง์ ๊ฐ์ ๋ฃ๋ ๋ฐฉ๋ฒ๊ณผ, ํจ์๋ฅผ ๋ฃ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.๊ทธ๋ฆฌ๊ณ ํจ์๋ฅผ ๋ฃ๋ ๋ฐฉ๋ฒ์์๋ ํจ์์ ์ธ์๋ก ์ด์ ๊ฐ์ด ์ ๋ฌ๋ฉ๋๋ค.๋ ์์ธํ ๋ด์ฉ์ ์๋ ๊ณต์๋ฌธ์ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค!https://inf.run/Mnd9D ๊ฐ์ฌํฉ๋๋ค.
- 1
- 2
- 109
Q&A
chapter14 ์์ดํด๊ฐ ๋์ง์์ต๋๋ค..
์๋ ํ์ธ์, ์ํ์ ๋๋ค. ๋จผ์ ๊ฐ์์์ ๋ณด์ จ๋ค์ํผ Context๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋,์ด๋ค ์ปดํฌ๋ํธ๊ฐ ์ปดํฌ๋ํธ ํธ๋ฆฌ ์์ ์ด๋์ ์์นํด์๋ ์ง ๊ด๊ณ์์ด ํน์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๊ฒ ํ๊ธฐ ์ํจ์ ๋๋ค.์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ํํ Prop Drilling์ด๋ผ๊ณ ๋ถ๋ฅด๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ ์ค์ ํ๋์ด๊ธฐ๋ ํฉ๋๋ค.props๋ฅผ ํตํด์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๊ฒ ์์ฒด๋ ๋ฌธ์ ๊ฐ ์๋์ง๋ง, ๊ทธ ๊น์ด(depth)๊ฐ ๊น์ด์ง๋ฉด ์ปดํฌ๋ํธ ์ฝ๋๊ฐ ์ง์ ๋ถํด์ง๊ณ ๊ด๋ฆฌํ๊ธฐ ์ฝ์ง ์๊ฒ ๋ฉ๋๋ค.๊ทธ๋์ ์ผ๋ฐ์ ์ผ๋ก๋ Redux ๊ฐ์ ์ ์ญ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ฑฐ๋, ๊ฐ๋จํ๊ฒ๋ Context API๋ฅผ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค.ํ์ง๋ง Context API๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํด์ ๋ฌด์กฐ๊ฑด ๋ชจ๋ ์ปดํฌ๋ํธ๊ฐ ํด๋น ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋ ๊ฒ์ ์๋๋๋ค.๋๊ตฐ๊ฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณต(Provide)ํด์ค์ผ ํ๊ณ , ๊ทธ๋์ผ๋ง ๋๊ตฐ๊ฐ๊ฐ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ์๋น(Consume) ํ ์ ์์ต๋๋ค.์ฌ๊ธฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋ ์ญํ ์ ํ๋ ๊ฒ์ด ๋ฐ๋ก Context์ Provider์ปดํฌ๋ํธ์ด๊ณ , ์๋นํ๋ ๊ฒ์ด Provider์ปดํฌ๋ํธ์ ํ์์ ์๋ Consumer ์ปดํฌ๋ํธ ์ ๋๋ค.ํด๋์ค ์ปดํฌ๋ํธ๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ๋ ๊ณผ๊ฑฐ์๋ ์๋ ๋งํฌ์ ์๋ ๊ฒ๊ณผ ๊ฐ์ด Consumer ์ปดํฌ๋ํธ๋ฅผ ๋ณ๋๋ก ์ฌ์ฉํ๋๋ฐ, ํจ์ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ ์ง๊ธ์ useContext() ํ ์ ์ฌ์ฉํด์ Provider ์ปดํฌ๋ํธ๊ฐ ์ ๊ณตํ๋ ๊ฐ์ ์ ๊ทผํ ์ ์์ต๋๋ค.https://inf.run/ujSMj ์ ๋ฆฌํด๋ณด๋ฉด, Provider ์ปดํฌ๋ํธ๋ ์์ ์ ํ์ ์ปดํฌ๋ํธ์ value๋ผ๋ prop์ผ๋ก ์ ๋ฌ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๋ฌ์ฃผ๋ ์ญํ ์ ํ๋ค๋ผ๊ณ ํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ์ดํด๊ฐ ์ ๋๋ ๋ถ๋ถ์ ์ถ๊ฐ๋ก ์ง๋ฌธ ๋จ๊ฒจ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค~!๊ฐ์ฌํฉ๋๋ค.
- 1
- 2
- 99
Q&A
2025๋ 3์ ๋ฆฌ์กํธ๋ฒ์
์๋ ํ์ธ์, ์ํ์ ๋๋ค.์ด ๊ฐ์์์๋ ๋ฆฌ์กํธ ๊ธฐ์ด ๊ฐ๋ ์ ์ฃผ๋ก ๋ค๋ฃจ๊ธฐ ๋๋ฌธ์ ์ง๊ธ ์๊ฐํ์ ๋ ์ ํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค!๊ฐ์ฌํฉ๋๋ค.
- 1
- 2
- 160
Q&A
chapter_07 ์ฝ์๋ก๊ทธ ์ง๋ฌธ๋๋ ค์~!
์๋ ํ์ธ์, ์ํ์ ๋๋ค. 10๋ฒ์งธ์ ์ถ๊ฐ๋ก ๋ก๊ทธ๊ฐ ์ฐํ๋ ์ด์ ๋ setIsFull(count >= MAX_CAPACITY);์ ํตํด isFull์ ๊ฐ์ด true๋ก ๋ณ๊ฒฝ๋๋ฉด์ ๋ค์ ํ ๋ฒ ์์ชฝ์ ์๋ useEffect() ํ ์ effect ํจ์๊ฐ ์คํ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.9๋ฒ์งธ ๊น์ง๋ isFull์ ๊ฐ์ด ๊ณ์ false๋ก ๋์ผํ๊ธฐ ๋๋ฌธ์ ํธ์ถ๋์ง ์์ ๊ฒ์ด๊ตฌ์~import React, { useState, useEffect } from "react"; import useCounter from "./useCounter"; const MAX_CAPACITY = 10; function Accommodate(props) { const [isFull, setIsFull] = useState(false); const [count, increaseCount, decreaseCount] = useCounter(0); useEffect(() => { console.log("======================"); console.log("useEffect() is called."); console.log(`isFull: ${isFull}`); }); useEffect(() => { setIsFull(count >= MAX_CAPACITY); console.log(`Current count value: ${count}`); }, [count]); return ( {`์ด ${count}๋ช ์์ฉํ์ต๋๋ค.`} ์ ์ฅ ํด์ฅ {isFull && ์ ์์ด ๊ฐ๋์ฐผ์ต๋๋ค.} ); } export default Accommodate; ๊ฐ์ฌํฉ๋๋ค.
- 1
- 2
- 94
Q&A
์๋ ํ์ธ์ ๋ฏธ๋๋ธ๋ก๊ทธ ์ค์ต ์ง๋ฌธ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์, ์ํ์ ๋๋ค. ํน์ ์์ฑํ์ ์ฝ๋ ์ค์์ '๊ธ ์์ฑํ๊ธฐ' ๋ฒํผ์ด ์๋ ์ฝ๋๋ฅผ ์ฌ๋ ค์ฃผ์ค ์ ์์๊น์?์ฝ๋๋ฅผ ๋ด์ผ ์์ธ ํ์ ์ด ๊ฐ๋ฅํ ๊ฒ ๊ฐ์ต๋๋ค~! ๊ฐ์ฌํฉ๋๋ค.
- 1
- 3
- 120
Q&A
์๋ฌ๊ฐ ๋ ์
์๋ ํ์ธ์, ์ํ์ ๋๋ค. ์ฌ๋ ค์ฃผ์ ๋ก๊ทธ๋ง์ผ๋ก๋ ์ ํํ ์์ธ ํ์ ์ด ํ๋ ๋ฐ, ํ์ฌ ํฌํธ ๋ฒํธ๊ฐ 3001๋ก ๋์ด ์๋ค์~์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฌ ๋ฒ ์คํ์ํค์ ๊ฒ ๊ฐ์๋ฐ, ํ๋ก์ธ์ค๋ฅผ ๋ชจ๋ ์ข ๋ฃํ๊ฑฐ๋ PC ์ฌ๋ถํ ์ดํ์ ๋ค์ ์คํํ๊ณ 3000๋ฒ ํฌํธ๋ก ์ ์ํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค! ๊ฐ์ฌํฉ๋๋ค.
- 1
- 3
- 187
Q&A
Chapter6 ์ง๋ฌธ ๋๋ฆฝ๋๋ค
์๋ ํ์ธ์, ์ํ์ ๋๋ค. ํด๋น ๋ฉ์์ง๋ ๋ฆฌ์คํธ์ key๊ฐ ์์ด์ ๋์ค๋ ๋ฉ์์ง์ ๋๋ค.๋ฆฌ์กํธ์์๋ ๋ ๋๋ง ์ต์ ํ๋ฅผ ์ํด์ ๋ฆฌ์คํธ์ ๊ฐ ์์์ key ์์ฑ์ ๋ฃ์ด์ฃผ์ด์ผ ํ๋๋ฐ,key ์์ฑ์ด ์์ ๊ฒฝ์ฐ ์ง๊ธ ๊ฒช๊ณ ๊ณ์ ๊ฒ๊ณผ ๊ฐ์ ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค.์ดํ์ ๋์ค๋ ์น์ 11. List and Keys์์ ๊ด๋ จ ๋ด์ฉ์ ์ค๋ช ํ๊ณ ์์ผ๋ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค! ๊ฐ์ฌํฉ๋๋ค.
- 1
- 2
- 179
Q&A
์ค์ต ์ฝ๋ ์์๊น์?
์๋ ํ์ธ์, ์ํ์ ๋๋ค. ์๋ ์ฃผ์์์ ์์ค์ฝ๋๋ฅผ ํ์ธํ์ค ์ ์์ต๋๋ค.์ค์ต: https://github.com/soaple/first-met-react-practice-v18๋ฏธ๋ ํ๋ก์ ํธ: https://github.com/soaple/mini-blog ํน์ ์ ํด๊ฒฐ๋์ง ์๋ ๋ถ๋ถ์ด ์๋ค๋ฉด ์ธ์ ๋ ์ง ์ง๋ฌธ ๋จ๊ฒจ์ฃผ์ธ์!๊ฐ์ฌํฉ๋๋ค.
- 1
- 2
- 171
Q&A
์ํ๊ฐ ์ ๋ฐ์ดํธ๋ ๋ ์ปดํฌ๋ํธ ์ต์๋จ์ console.log ์ฝ๋๊ฐ ๋๋ฒ ์คํ๋๋ ์ด์ ๊ฐ ๊ถ๊ธํฉ๋๋ค.
์๋ ํ์ธ์, ์ํ์ ๋๋ค.์ฐ์ ํ์ฌ ๊ฒช๊ณ ๊ณ์ ์ํฉ์ ์์ธํ๊ฒ ์ค๋ช ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.AI๊ฐ ๋ต๋ณํด์ค StrictMode๋ ์ฒ์ ์ปดํฌ๋ํธ ๋ง์ดํธ ์์๋ง ํด๋น๋๋ ๋ด์ฉ์ด๊ธฐ ๋๋ฌธ์, ์ง๊ธ ์ง๋ฌธํด์ฃผ์ ๋ด์ฉ๊ณผ๋ ๋ค๋ฅด๋ค๋ ์ ์ ๋จผ์ ๋ง์๋๋ฆฝ๋๋ค. ์ํฉ์ ์ ๋ฆฌํด๋ณด๋ฉด count๊ฐ ๋ณ๊ฒฝ๋จ์ผ๋ก์จ ์ฌ๋ ๋๋ง์ด ๋ฐ์ํ๊ณ ,๊ทธ ์ดํ์ count๋ฅผ ์์กด์ฑ ๋ฐฐ์ด์ ๊ฐ๊ณ ์๋ useEffect() ํ ์์ ์๋์ ๊ฐ์ ์ฝ๋๊ฐ ์คํ๋ฉ๋๋ค.setIsFull(count >= MAX_CAPACITY);์ด ๋ isFull์ ๊ฐ์ด ๋ณ๊ฒฝ๋๋ฉด ์ฌ๋ ๋๋ง์ด ๋ฐ์ํ์ง๋ง, ๋ณ๊ฒฝ๋์ง ์๋๋ผ๋ ๋ด๋ถ์ ์ผ๋ก Virtual DOM Tree๋ฅผ ์์ฑํ๊ธฐ ์ํด ํจ์ ์ปดํฌ๋ํธ๊ฐ ํธ์ถ๋๋ฉด์ React element๋ฅผ ์๋ก ๋ง๋๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.๊ทธ๋์ ๊ทธ๋ฐ ๊ฒฝ์ฐ์ ๋ก๊ทธ๊ฐ ๋ ๋ฒ ์ถ๋ ฅ๋๋ ๊ฒ์ด๋ผ๊ณ ์ดํดํ์๋ฉด ๋ฉ๋๋ค. ์๋์ ๋ ๊ฐ๋จํ ์์์ฝ๋๋ฅผ ์ฒจ๋ถํด๋์์ผ๋ ํ ๋ฒ ํ ์คํธ ํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค.์ด ์ฝ๋์์๋ ๋์ผํ ๊ฐ์ ๋ฒํผ์ ๋๋ฅผ ๊ฒฝ์ฐ ์ฝ์ ๋ก๊ทธ๊ฐ ์ถ๋ ฅ๋์ง ์์ ๊ฒ์ผ๋ก ๊ธฐ๋๋์ง๋ง,์ผ๋ถ ์ํฉ์์๋ ์ฝ์ ๋ก๊ทธ๊ฐ ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.import { useState } from "react"; function MyComponent() { console.log("์ปดํฌ๋ํธ ๋ ๋๋ง!"); const [state, setState] = useState(false); return ( State: {state.toString()} setState(false)}>false๋ก ์ค์ setState(true)}>true๋ก ์ค์ ); } export default MyComponent; ํ์ง๋ง ์ฝ์ ๋ก๊ทธ๊ฐ ์ถ๋ ฅ(React element๊ฐ ์์ฑ)๋๋ค๋ ๊ฒ์ด ๋งค๋ฒ ํ๋ฉด์ด ๊ฐฑ์ ๋๋ค๋ ์๋ฏธ๋ ์๋๋๋ค.๋ฆฌ์กํธ๋ Virtual DOM์ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง์ ๊ณ์ฐํ๊ณ ์ ๋ฐ์ดํธํ๋๋ฐ, ์ด ๋ ์ํ ๊ฐ์ด ๋ณํ์ง ์์ผ๋ฉด ๋ฆฌ์กํธ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์๋ค๊ณ ํ๋จํ๊ณ ์ค์ DOM ์ ๋ฐ์ดํธ๋ฅผ ๊ฑด๋๋ฐ๊ฒ ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋์ค์๋ ์ฝ์ ๋ก๊ทธ๋ฅผ ์ฐ์ด์ ํ์ธํ๊ธฐ ๋ณด๋ค๋ React Devtools์ Profiler ๊ธฐ๋ฅ์ ์ฌ์ฉํด์ ๋ ์ ํํ๊ฒ ์ฌ๋ ๋๋ง์ด ๋ช ๋ฒ ๋ฐ์ํ๋์ง ํ์ธํด๋ณด์๋ฉด ์ข์ต๋๋ค! ๊ฐ์ฌํฉ๋๋ค.
- 1
- 2
- 182
Q&A
npx create-react-app my-app ๋ช ๋ น์ด ์ ๋ ฅ์ด ์๋ชป๋ ๊ฒ ๊ฐ์ต๋๋ค
์๋ ํ์ธ์, ์ํ์ ๋๋ค. ๊ถํ์ด ์์ด์ ๋ฐ์ํ๋ ๋ฌธ์ ๊ฐ์๋ฐ, ์ ๋ต๋ณ์ ์ฐธ๊ณ ํด์ ํ ๋ฒ ์งํํด๋ณด์๊ฒ ์ด์? ๊ฐ์ฌํฉ๋๋ค.
- 0
- 3
- 240




