Tiny Bunny
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€113

[CS/ IT์šฉ์–ด ์ •๋ฆฌ] ๋ธ”๋ก์ฒด์ธ ; NFT, ์ƒค๋”ฉ, ์ฐจ๋“ฑํ”„๋ผ์ด๋ฒ„์‹œ, ์Šคํ…Œ์ด๋ธ”์ฝ”์ธ ๋ธ”๋ก์ฒด์ธ: ์ค‘์•™ ์„œ๋ฒ„์—†์ด ๋„คํŠธ์›Œํฌ ์ฐธ์—ฌ์ž๋“ค ๊ฐ„์— ๊ฑฐ๋ž˜์ •๋ณด๋ฅผ ๊ณต์œ  & ๊ด€๋ฆฌํ•˜๋Š” ๋ถ„์‚ฐํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ์ˆ  (= ๋ถ„์‚ฐํ˜• DB๊ธฐ์ˆ  ) ๋ธ”๋ก ํ˜•ํƒœ๋กœ ๋ฌถ์–ด ์ฒด์ธ์ฒ˜๋Ÿผ ์—ฐ๊ฒฐํ•˜์—ฌ ๊ฐ ๋ธ”๋ก์€ ์ด์ „ ๋ธ”๋ก๊ณผ ์—ฐ๊ฒฐ๋จ.๋ณ€๊ฒฝ ๋ฐ ์œ„ ๋ณ€์กฐ๊ฐ€ ์–ด๋ ต๋„๋ก ์„ค๊ณ„๋จ.DID : ์ค‘์•™ ๊ธฐ๊ด€ ์—†์ด ๊ฐœ์ธ์˜ ์‹ ์›์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ์ˆ ์•”ํ˜ธํ™”ํ ์žฅ์ ์ค‘๊ฐœ์ž ์ œ๊ฑฐ๋กœ ์ธํ•œ ๋น„์šฉ ์ ˆ๊ฐ๋ณด์•ˆ์„ฑ(๋ณ€๊ฒฝ ๋ถˆ๊ฐ€) → ‘์ฒด์ธ ํ˜•ํƒœ’ ๊ฒฐํ•ฉ๊ฐ ๋ธ”๋ก์€ ์ด์ „ ๋ธ”๋ก์˜ ํ•ด์‹œ๊ฐ’์„ ํฌํ•จํ•˜๊ณ  ์žˆ์–ด์„œ,ํ•˜๋‚˜๋ผ๋„ ๋ณ€๊ฒฝ์‹œ ์ „์ฒด ์ฒด์ธ์ด ๊นจ์ง„๋‹ค.ํˆฌ๋ช…์„ฑ ๋‹จ์ ๊ฐœ์ธํ‚ค ํ•ดํ‚น ๋ฐ ๋ถ„์‹ค ์‹œ ํ•ด๊ฒฐ ์–ด๋ ค์›€๋ฐ์ดํ„ฐ ์ˆ˜์ • ์–ด๋ ค์›€๋Œ€์šฉ๋Ÿ‰ ์ €์žฅ ๊ณต๊ฐ„ ํ•„์š”์„ฑํ™•์žฅ์„ฑ ๋ฌธ์ œ ; ์ „์†ก๋˜๋Š” ๊ฑฐ๋ž˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์†๋„์˜ ์ €ํ•˜→ ๋น„ํŠธ์ฝ”์ธ๊ณผ ์ด๋”๋ฆฌ์›€์˜ ์ดˆ๋‹น ์ฒ˜๋ฆฌ๋Ÿ‰์€ ๊ฐ๊ฐ 7๊ฑด๊ณผ 30๊ฑด์œผ๋กœ,์ดˆ๋‹น ์ˆ˜ ์ฒœ๊ฑด์„ ์ฒ˜๋ฆฌํ•˜๋Š” visa ์นด๋“œ์— ๋น„ํ•˜๋ฉด ํ˜„์ €ํ•˜๊ฒŒ ์ฒ˜๋ฆฌ.. 2025. 6. 20.
[CS/ IT์šฉ์–ด ์ •๋ฆฌ] AI ; RAG, MCP, ์ œ๋กœ์ƒท- ์›์ƒท- ํ“จ์ƒท (IT์šฉ์–ด ์ •๋ฆฌ) MCP (Model-Context- Protocol)MCP : AI ๋ชจ๋ธ์ด ์‹œ์Šคํ…œ์˜ ์ค‘์‹ฌ์ด ๋˜๋Š” ๊ฐœ๋ฐœ ๋ฐฉ์‹๋ชจ๋ธ ์ค‘์‹ฌ (O) ๊ตฌ์กฐ ์ค‘์‹ฌ (X)๋ชจ๋ธ ์ •ํ™•๋„ ํ–ฅ์ƒ→ ํ”ผ๋“œ๋ฐฑ ๋ฃจํ”„ ๋“ฑ ํ™œ์šฉ ๊ฐ์ข… ๊ตฌ์กฐ๋ฅผ AI ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ ๊ฐœ์„ ์— ์ง‘์ค‘๋ชจ๋ธ ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง๋ชจ๋ธ ์‹คํ—˜, ์šด์˜ ํ™˜๊ฒฝ ๊ฐ„ ๊ฒฉ์ฐจ ์ค„์ด๊ธฐhttps://docs.anthropic.com/ko/docs/agents-and-tools/mcp ๋ชจ๋ธ ์ปจํ…์ŠคํŠธ ํ”„๋กœํ† ์ฝœ(MCP) - Anthropicํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ณ , ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋งŒ๋“  ๊ฒƒ๋“ค์„ ๋ฐœ๊ฒฌํ•ด๋ณด์„ธ์š”.docs.anthropic.com RAG(Retrieval Augmented Generation, ๊ฒ€์ƒ‰ ์ฆ๊ฐ•์ƒ์„ฑ) → ๊ฒ€์ƒ‰๋œ ๊ฒฐ๊ณผ๋กœ ์ƒ์„ฑํ˜• AI ๋ชจ๋ธ์„ ๋ณด์™„ํ•˜์—ฌ .. 2025. 6. 18.
[Vercel] Vercel๋กœ React ํ”„๋กœ์ ํŠธ ๋ฐฐํฌํ•˜๊ธฐ React๋กœ ๊ฐœ๋ฐœํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹ค์ œ ๋ฐฐํฌํ•˜์—ฌ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ, Vercel์€ ๋งค์šฐ ๊ฐ„ํŽธํ•˜๊ณ  ๊ฐ•๋ ฅํ•œ ๋ฐฐํฌ ํ”Œ๋žซํผ์ด๋‹ค. React ํ”„๋กœ์ ํŠธ๋ฅผ Vercel์„ ํ†ตํ•ด ๋ฐฐํฌํ•˜๋Š” ๊ณผ์ •์„ ๋‹จ๊ณ„๋ณ„๋กœ ์ •๋ฆฌํ•ด๋ณด์ž. ๐Ÿ’ป 1. Vercel์ด๋ž€?Vercel์€ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ์ •์  ์›น์‚ฌ์ดํŠธ๋ฅผ ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์ด๋‹ค.Next.js์˜ ์ œ์ž‘์‚ฌ์ธ Vercel์—์„œ ์šด์˜ํ•˜๋ฉฐ, GitHub์™€์˜ ์—ฐ๋™์„ ํ†ตํ•ด CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ์ž๋™์œผ๋กœ ๊ตฌ์„ฑํ•ด์ค€๋‹ค.์ฆ‰, SW์˜ ์ž๋™ํ™”๋œ ๊ฐœ๋ฐœ ๋ฐ ๋ฐฐํฌ ๋‹จ๊ณ„๋ฅผ ์ง„ํ–‰ํ•ด์คŒ! + ์„ ํƒ ์ด์œ 1. ๋ณ„๋„์˜ ์„œ๋ฒ„ ์„ค์ •์ด๋‚˜ ๋ณต์žกํ•œ ๋ฐฐํฌ ๊ณผ์ • ์—†์ด, ํšŒ์›๊ฐ€์ž… ํ›„ ์†์‰ฝ๊ฒŒ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•ด์„œ 2. ์ˆ˜์ •์‚ฌํ•ญ ์ƒ๊ธธ ์‹œ github์— push๋งŒ ํ•ด๋„ ์ž๋™๋ฐ˜์˜ ๋จ. 2. .. 2025. 6. 4.
[Server] Vercel vs. Tomcat vs. AWS Vercel, Tomcat, AWS๋Š” ๋ชจ๋‘ ์›น ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด์ง€๋งŒ, ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹๊ณผ ๋ชฉ์ , ๋ณต์žก๋„, ๋Œ€์ƒ ์‚ฌ์šฉ์ž์ธต์ด ๋‹ค๋ฅด๋‹ค. ๋‚˜๋Š” ์ด์ „์— Tomcat, AWS ๋ฅผ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐฐํฌํ•œ ๊ฒฝํ—˜์ด ์žˆ์—ˆ๋‹ค.์ตœ๊ทผ์— Vercel์„ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐฐํฌํ•˜๋ฉฐ ์„œ๋ฒ„๋“ค์— ๋Œ€ํ•ด ์ •๋ฆฌ๋ฅผ ํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋ณด๊ณ  ์‹ถ์–ด์กŒ๋‹ค.Aka. ํ”„๋กœ์ ํŠธ ๋ณ„ ์ตœ์ ์˜ ์„œ๋ฒ„๋ฅผ ์ฐพ์•„... ๊ฐ ์„œ๋ฒ„ ํ”Œ๋žซํผ์„ ๊ธฐ๋Šฅ, ํŽธ์˜์„ฑ, ์œ ์—ฐ์„ฑ, ์„ฑ๋Šฅ, ์‚ฌ์šฉ ์‚ฌ๋ก€ ์ธก๋ฉด์—์„œ ๋น„๊ตํ•ด๋ณด์ž โ˜บ๏ธ VercelํŠน์ง•: ์„œ๋ฒ„๋ฆฌ์Šค(Serverless) ๊ธฐ๋ฐ˜ ํ”Œ๋žซํผ. ์ •์  ์‚ฌ์ดํŠธ ๋ฐ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์— ์ตœ์ ํ™”.์žฅ์ :React, Next.js ํ”„๋กœ์ ํŠธ์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์ŒGitHub ์—ฐ๋™์œผ๋กœ ์ž๋™ ๋ฐฐํฌ (CI/CD ๋‚ด์žฅ)๋ฌด๋ฃŒ ํ”Œ๋žœ ์ œ๊ณต์„œ๋ฒ„ ์„ค์ • ์—†์ด ๋ฐฐํฌ ๊ฐ€๋Šฅ๋‹จ์ :.. 2025. 6. 4.
[Git/SourceTree] Sourcetree '์ž์‹ ์ปค๋ฐ‹ ์Œ๋ฐฉํ–ฅ ์žฌ๋ฐฐ์น˜(Interactive Rebase) ์•ˆ ๋œธ' ํ•ด๊ฒฐํ•˜๊ธฐ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด ์ž์‹์ปค๋ฐ‹์Œ๋ฐฉํ–ฅ ์žฌ๋ฐฐ์น˜ ๋ฅผ ํด๋ฆญํ–ˆ๋Š”๋ฐ ํ…… ๋น„์–ด์žˆ๋‹ค. . Sourcetree์—์„œ ์ž์‹์ปค๋ฐ‹ ์Œ๋ฐฉํ–ฅ ์žฌ๋ฐฐ์น˜(Interactive Rebase)๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š” ์ด์œ  1. ๋ธŒ๋žœ์น˜๊ฐ€ HEAD ์ƒํƒœ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ๋ฐ˜๋“œ์‹œ ๋กœ์ปฌ ๋ธŒ๋žœ์น˜์— ์ฒดํฌ์•„์›ƒ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.Detached HEAD ์ƒํƒœ์—์„œ๋Š” ํ•ด๋‹น ๋ฉ”๋‰ด๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋œ๋‹ค. → Sourcetree ์ƒ๋‹จ์—์„œ ํ˜„์žฌ ๋ธŒ๋žœ์น˜๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์„ ํƒ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค. 2. ํ˜„์žฌ ๋ธŒ๋žœ์น˜์— ์ปค๋ฐ‹ ์ˆ˜๊ฐ€ ๋ถ€์กฑํ•œ ๊ฒฝ์šฐ์Œ๋ฐฉํ–ฅ ์žฌ๋ฐฐ์น˜๋Š” ์ตœ์†Œ ๋‘ ๊ฐœ ์ด์ƒ์˜ ์ปค๋ฐ‹์ด ์กด์žฌํ•ด์•ผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.์ปค๋ฐ‹์ด 1๊ฐœ ์ดํ•˜์ผ ๊ฒฝ์šฐ, ๋ฉ”๋‰ด๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š”๋‹ค. 3. ๋ฉ”์ธ ๋ธŒ๋žœ์น˜(main/master)์—์„œ ์‹คํ–‰ํ•œ ๊ฒฝ์šฐ ์ผ๋ฐ˜์ ์œผ๋กœ rebase๋Š” ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜(featur.. 2025. 5. 30.
[Node.js] Node.js ์ดˆ๊ธฐ ์„ค์ •, ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •ํ•˜๊ธฐ Node.js๋Š” JavaScript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์ด๋‹ค. ๊ฐ„๊ฒฐํ•˜๊ณ  ์œ ์—ฐํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ฐ–์ถ”๊ธฐ ์œ„ํ•ด, ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ ์„ค์ •์€ ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค. Node.js ํ”„๋กœ์ ํŠธ๋ฅผ ์ฒ˜์Œ ์‹œ์ž‘ํ•  ๋•Œ ํ•„์ˆ˜์ ์œผ๋กœ ์ง„ํ–‰ํ•ด์•ผ ํ•  ์„ค์ • ๊ณผ์ •์„ ์ •๋ฆฌํ•ด๋ณด์žโ˜บ๏ธ 1. Node.js ์„ค์น˜Node.js๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ณต์‹ ์›น์‚ฌ์ดํŠธ์—์„œ ์„ค์น˜ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ฑฐ๋‚˜, nvm(Node Version Manager)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. nvm์„ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ๋ฒ„์ „์˜ Node.js๋ฅผ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.# nvm ์„ค์น˜ (Mac/Linux ๊ธฐ์ค€)curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash# ์›ํ•˜.. 2025. 5. 28.
[React] useMemo (ft. ์žฌ์—ฐ์‚ฐ ์ตœ์ ํ™”) ๐Ÿ’ก์ตœ์ ํ™” ์ฝ”ํ…Œ๋ฅผ ์ค€๋น„ํ•˜๋ฉด์„œ๋„, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ๋„ ํ•ญ์ƒ ์‹ ๊ฒฝ์จ์•ผํ•œ๋‹ค๊ณ  ๋ˆ„๋ˆ„ํžˆ ๋“ค์€ ์ฝ”๋“œ ์ตœ์ ํ™”.. ! ๋‘๋‘ฅ.. ๋ฆฌ์•กํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ๋•Œ ์—ญ์‹œ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. ๋ฆฌ์•กํŠธ์—์„œ๋Š” '๋ Œ๋”๋ง๊ณผ ์—ฐ์‚ฐ'์ด ์„ฑ๋Šฅ์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค.ํŠนํžˆ, ์ƒํƒœ( state) ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ๋ถˆํ•„์š”ํ•œ ์—ฐ์‚ฐ์ด๋‚˜ ๋ Œ๋”๋ง์ด ๋ฐ˜๋ณต๋˜๋ฉด ์ „์ฒด ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ๋‹ค. ๋ฆฌ์•กํŠธ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ์ง€์–‘ํ•ด์•ผํ•  ์š”์†Œ๋“ค์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 1. ๋ถˆํ•„์š”ํ•œ ๋ Œ๋”๋ง2. ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์˜ ๋ถˆํ•„์š”ํ•œ ์—ฐ์‚ฐ3. ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์˜ ๋ถˆํ•„์š”ํ•œ ํ•จ์ˆ˜ ์žฌ์ƒ์„ฑ ์ด์ค‘ useMemo ํ›…์€ React์˜ ๋ถˆํ•„์š”ํ•œ ์—ฐ์‚ฐ์„ ๋ง‰์•„ ์ตœ์ ํ™”ํ•œ๋‹ค. ๐Ÿ’กuseMemo : ํŠน์ • ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ”๋ชจ์ด์ œ์ด์…˜(memoization) ํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ์—ฐ์‚ฐ(์žฌ์—ฐ์‚ฐ)์„ ๋ฐฉ์ง€ํ•˜๋Š”.. 2025. 5. 28.
[React] React.memo์™€ useCallback (ft. ๋ฆฌ๋ Œ๋”๋ง ์ตœ์ ํ™”) ๋ชฉ์ฐจ1. React.memo ๋ฉ”์„œ๋“œ1-1. ์ปค์Šคํ…€ ๋น„๊ตํ•จ์ˆ˜2. useCallback ๐Ÿ’ก1. React.memo ๋ฉ”์„œ๋“œ์ €๋ฒˆ์— useMemo ํ›…์œผ๋กœ ๋ถˆํ•„์š”ํ•œ ์—ฐ์‚ฐ์„ ๋ง‰์•˜๋‹ค๋ฉด,React.memo๋Š” ๋ถˆํ•„์š”ํ•œ ๋ฆฌ๋ Œ๋”๋ง์„ ๋ง‰์•„์ฃผ๋Š” ๋‚ด์žฅํ•จ์ˆ˜์ด๋‹ค. : ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฉ”๋ชจ์ด์ œ์ด์…˜(memoization) ํ•˜์—ฌ, props๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์œผ๋ฉด ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฆฌ๋ Œ๋”๋งํ•˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๊ธฐ๋ณธํ˜•ํƒœ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Œ.import { memo } from 'react';const MyComponent = (props) => { // ...};export default memo(MyComponent); props๊ฐ€ ์–•์€ ๋น„๊ต(shallow comparison)๋กœ ๋™์ผํ•œ ๊ฒฝ์šฐ ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋Š” ๋ฆฌ๋ Œ๋”๋ง๋˜์ง€ ์•Š๋Š”๋‹ค. .. 2025. 5. 27.
[React] useReducer React์—์„œ '์ƒํƒœ๊ด€๋ฆฌ'์— ์‚ฌ์šฉ๋˜๋Š” hook์—๋Š” useState์™€ useReducer๊ฐ€ ์žˆ๋‹ค.useState๋Š” ๊ฐ„๋‹จํ•œ ์ƒํƒœ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋˜์ง€๋งŒ,๋ณต์žกํ•œ ๋กœ์ง์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” useReducer๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ๊ตฌ์กฐ์ ์ด๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฝ๋‹ค. useReducer์˜ ๊ฐœ๋…๊ณผ ์ ์šฉํ•œ ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•ด๋ณด์ž ! ๐Ÿ’กuseReducer ๋ž€?useReducer ๋Š” ์ƒํƒœ(state)์˜ ๋ณ€๊ฒฝ ๋กœ์ง์„ ์ปดํฌ๋„ŒํŠธ ๋ฐ–์œผ๋กœ ๋ถ„๋ฆฌํ•ด์คŒ์œผ๋กœ์จ ๋ณด๋‹ค ๋ช…ํ™•ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๋Š” Hook์ด๋‹ค. → ์ปดํฌ๋„ŒํŠธ ์™ธ๋ถ€์— ์ƒํƒœ ๊ด€๋ฆฌ ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌex.function reducer(){ //...}function App(){ const [todos, dispatch] = useReducer(reducer); //...} ๊ธฐ๋ณธ์ ์ธ ์‚ฌ์šฉ ํ˜•ํƒœco.. 2025. 5. 26.
[React] useEffect (๋ผ์ดํ”„์‚ฌ์ดํด, Dependency array) ๐Ÿ’กuseEffect๋ž€?- React์—์„œ ์ปดํฌ๋„ŒํŠธ์˜ ๋ผ์ดํ”„์‚ฌ์ดํด์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ๋Œ€ํ‘œ์ ์ธ Hook์ด๋‹ค.- ์ƒ๋ช… ์ฃผ๊ธฐ ๋ณ„ ํŠน์ • ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค.- ์ „ํ†ต์ ์ธ ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋˜ componentDidMount, componentDidUpdate, componentWillUnmount๋ฅผ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” Hook์ž„ = ์ฃผ๊ธฐ๋ณ„ ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ(side effect)๋ฅผ ์ œ์–ดํ•œ๋‹ค. * ๋ฆฌ์•กํŠธ ๋ผ์ดํ”„์‚ฌ์ดํด ( life-cycle ): Mount(ํƒ„์ƒ)- Update(๋ณ€ํ™”)- Unmount(์ฃฝ์Œ) ์œผ๋กœ ๊ตฌ์„ฑ ์•„๋ž˜์˜ ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด useEffect๋ฅผ ์ •๋ฆฌํ•ด๋ณด์ž.// App.jsximport './App.css'import Viewer from "./com.. 2025. 5. 22.
[React] Props ์ „๋‹ฌ ์‹œ {} ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  / map() ํ•จ์ˆ˜ TodoList ์•ฑ ๊ฐœ๋ฐœ ์ค‘ ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๋ฉด ์ข‹์„ ๋‚ด์šฉ์ด ์ƒ๊ฒจ ์ •๋ฆฌํ•˜๊ธฐ:) ๋ชฉ์ฐจ1. Props์— {} ์ „๋‹ฌํ•˜๋Š”์ด์œ 2. map() ํ•จ์ˆ˜ 1. Props์— {} ์ „๋‹ฌ ํ•˜๋Š” ์ด์œ  ์ผ๋‹จ Props ๋ž€ ๋ฆฌ์•กํŠธ์—์„œ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ์ด๋‹ค. ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๋กœ๋ถ€ํ„ฐ props ๋ฅผ ์ „๋‹ฌ๋ฐ›์„ ๋•Œ ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ๋‹ค. 1. Props ์ „์ฒด๋ฅผ ๋ฐ›์Œ const List = (props) => { console.log(props.todos); // ์ ‘๊ทผํ•˜๋ ค๋ฉด props.todos} ๊ตฌ์กฐ๋ถ„ํ•ดํ• ๋‹น์„ ํ•˜์ง€ ์•Š๊ณ  ์ „๋‹ฌ props๋ฅผ ์ „๋‹ฌ ๋ฐ›์œผ๋ฉด, ๊ฐ์ฒด ํ˜•ํƒœ(object)๋กœ ์ „๋‹ฌ๋œ๋‹ค. { todos : [...] } ํ˜•ํƒœ๋กœ ์ „๋‹ฌ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.๊ฐ์ฒด(object)๋Š” key- value ์Œ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด .. 2025. 5. 19.
[React] React Hook๊ณผ Custom Hook ๋ชฉ์ฐจ1. React Hook2. custom Hook 1. React Hook๐Ÿ’กHook์ด๋ž€? Hook์€ React์˜ ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ƒํƒœ๊ด€๋ฆฌ์™€ ์ƒ๋ช…์ฃผ๊ธฐ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜.๊ธฐ์กด์—๋Š” ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋งŒ ๊ฐ€๋Šฅํ–ˆ๋˜ ๊ธฐ๋Šฅ๋“ค์„ ํ•จ์ˆ˜ํ˜•์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ค€ ๋ฆฌ์•กํŠธ์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ด๋‹ค. Hook์€ React 16.8์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ์ด๋ฉฐ,Hook์€ class๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ state์™€ ๋‹ค๋ฅธ React์˜ ๊ธฐ๋Šฅ๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค๊ณ  ํ•œ๋‹ค. โš™๏ธ ๋Œ€ํ‘œ์ ์ธ Hook ์ข…๋ฅ˜useState: ์ปดํฌ๋„ŒํŠธ์˜ ์ƒํƒœ๊ฐ’(state)์„ ์ €์žฅํ•˜๊ณ  ๋ณ€๊ฒฝuseEffect: ์ปดํฌ๋„ŒํŠธ์˜ ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ (๋งˆ์šดํŠธ, ์—…๋ฐ์ดํŠธ, ์–ธ๋งˆ์šดํŠธ ๋“ฑ) useRef, useContext, useReducer, us.. 2025. 5. 14.

TOP

Designed by ํ‹ฐ์Šคํ† ๋ฆฌ