Transparent White Star

๐Ÿ“Œ ์ „์ฒด ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก

Zustand๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ์ธ ์ƒํƒœ์™€ ์œ ์ € ์ •๋ณด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋ ค๋Š” ๊ณ ๋ฏผTaskify ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ, ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ธ์ฆ ์ƒํƒœ ๊ด€๋ฆฌ๊ฐ€ ์ ์  ๋ณต์žกํ•ด์ง€๋ฉฐ ์ฝ”๋“œ๊ฐ€ ์ค‘๋ณต๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.์ธ์ฆ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ๊ฐ ์ปดํฌ๋„ŒํŠธ์— ๋ถ„์‚ฐ๋˜์–ด ์žˆ์–ด ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ค์›Œ์ง€๊ณ , ์ธ์ฆ ๊ด€๋ จ ๋กœ์ง์„ ์ˆ˜์ •ํ•  ๋•Œ๋งˆ๋‹ค ์—ฌ๋Ÿฌ ๊ณณ์„ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด์„œ Zustand๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ ์ƒํƒœ๋ฅผ ์ „์—ญ์ ์œผ๋กœ ๊ด€๋ฆฌ, ์ธ์ฆ ๊ด€๋ จ ๋กœ์ง์„ authStore ๋ผ๋Š” ๋ณ„๋„์˜ ์ƒํƒœ ๊ด€๋ฆฌ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ  ํšจ์œจ์ ์ธ ๋ฐฉ์‹์œผ๋กœ ๊ฐœ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ด ๊ณผ์ •์„ ๊ณต์œ ํ•˜๋ฉฐ, Zustand๋ฅผ ์ด์šฉํ•œ ์ธ์ฆ ์ƒํƒœ ๊ด€๋ฆฌ ๋ฐฉ๋ฒ•๊ณผ ์ฝ”๋“œ ์ค‘๋ณต์„ ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒฝํ—˜์— ๋Œ€ํ•ด์„œ ์ž‘์„ฑํ•ด๋ณด๊ฒ ์Šต..
์งœ์ž” ๐ŸŽ‰โ–ผ Lighthouse Performance ๋ถ„์„ [web] Lighthouse ์›นํŽ˜์ด์ง€ ์„ฑ๋Šฅ๋ถ„์„ (Performance)ํ—ˆ๊ฒ์ง€๊ฒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ผ์ •์— ์ซ“๊ฒจ ๋””์ž์ธ์„ ๋”ฐ๋ผํ•˜๊ธฐ์— ๊ธ‰๊ธ‰ํ•ด ์„ฑ๋Šฅ๋”ฐ์œ„ ๋ฌด์‹œํ–ˆ๋˜ ์‹ ์ž… 1๋…„.. ์ตœ๊ทผ ๊ฐœ๋ฐœ์— ๋งŽ์ด ์ต์ˆ™ํ•ด์ง€๋ฉด์„œ ์„ฑ๋Šฅ ๋ฐ ์ตœ์ ํ™”์— ํฅ๋ฏธ๊ฐ€ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. ๊ทธ์ค‘ ์ œ์ผ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ• phrygia.github.io ๐Ÿ•Š๏ธ ๋งˆ๋ฌด๋ฆฌ : 2์ฃผ๊ฐ„์˜ ์ค‘๊ธ‰ ํ”„๋กœ์ ํŠธ ํšŒ๊ณ Taskify ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•œ ์ง€ ์–ผ๋งˆ ์•ˆ ๋œ ๊ฒƒ ๊ฐ™์€๋ฐ, ๋ฒŒ์จ 2์ฃผ๊ฐ„์˜ ์—ฌ์ •์ด ๋งˆ๋ฌด๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๐ŸŽ‰ํ”„๋กœ์ ํŠธ ๋ฐœํ‘œ๋„ ๋ฌด์‚ฌํžˆ ๋๋ƒˆ๊ณ , ์ง€๊ธˆ์€ ํ”„๋กœ์ ํŠธ๊ฐ€ ์™„๋ฃŒ๋œ ํ›„ ์ตœ์ข… ํšŒ๊ณ  ํฌ์ŠคํŒ…์„ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ˜Š์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด ๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์šฐ๊ณ , ํŒ€์›๋“ค๊ณผ ํ•จ๊ป˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด๊ฐ€๋ฉฐ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ์‹œ๊ฐ„์ด์—ˆ์–ด์š”. ๊ทธ๋Ÿผ Ta..
๐Ÿ‚ 10์›” ์ค‘์ˆœ, ํŒ€ ํ”„๋กœ์ ํŠธ ์ฒซ๋‚  ๊ธฐ๋ก - ์‹œ์ž‘์˜ค๋Š˜์€ ์ค‘๊ธ‰ ํ”„๋กœ์ ํŠธ์˜ ์ฒซ๋‚ ์ด๋‹ค. ๋“œ๋””์–ด Part 3 ํŒ€์›๋“ค๊ณผ ํ•จ๊ป˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ, ์šฐ๋ฆฌํŒ€์€ ์ฒซ ํšŒ์˜๋ฅผ ํ†ตํ•ด ํ˜‘์—… ํˆด๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ • ๊ด€๋ฆฌ ์‹œ์Šคํ…œ “Taskify”๋ผ๋Š” ์ฃผ์ œ๋ฅผ ์„ ์ •ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๐Ÿ’ก ์ฃผ์ œ ์„ ์ • ์ด์œ Taskify๋ฅผ ์ฃผ์ œ๋กœ ๊ณ ๋ฅธ ์ด์œ ๋Š” ์•„์ฃผ ๊ฐ„๋‹จํ•˜๋‹ค ใ…Žใ…Ž! ์ผ์ • ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์€ ์ผ์ƒ์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์„œ๋น„์Šค์ธ ๋งŒํผ, ์‚ฌ์šฉ์ž์˜ ํŽธ์˜๋ฅผ ๊ณ ๋ คํ•œ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์•˜๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ํ”„๋กœ์ ํŠธ์˜ ๊ทœ๋ชจ๊ฐ€ ์ปค์„œ ๋‹ค์–‘ํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋Š” ์ข‹์€ ๊ธฐํšŒ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ํŒ€์›๋“ค๋„ ๋ชจ๋‘ ๋™์˜ํ•ด์ฃผ์–ด ๊ธฐ๋ถ„ ์ข‹๊ฒŒ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๐Ÿ˜Š ๐Ÿ› ๏ธ ํ”„๋กœ์ ํŠธ ์„ธํŒ… ๊ณผ์ •์ฒซ๊ฑธ์Œ์œผ๋กœ, ๊นƒํ—ˆ๋ธŒ์— ํ”„๋กœ์ ํŠธ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ  ํŒ€์›๋“ค์„ ์ดˆ๋Œ€ํ–ˆ..
๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ์—์„œ ์ฒ˜์Œ์œผ๋กœ Jotai๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์•˜๊ณ , ๊ทธ ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ Jotai์˜ ์žฅ์ ๊ณผ ๋‹จ์ ์„ Context์™€ Zutand๋ฅผ ๋น„๊ตํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. Jotai ์‚ฌ์šฉ ํ›„ Context์™€ Zustand์™€์˜ ๋น„๊ต ๐Ÿ’ซ ๐Ÿ“Œ Jotai ์‚ฌ์šฉ ์˜ˆ์ œimport React from 'react';import { atom, useAtom } from 'jotai';// atom ์ •์˜const countAtom = atom(0);function Counter() { const [count, setCount] = useAtom(countAtom); return ( ์นด์šดํŠธ: {count} setCount(count + 1)}>์ฆ๊ฐ€ );}export default function ..
๐Ÿ”ฎ ํ”„๋กœ์ ํŠธ ํšŒ๊ณ ๐Ÿ’ซ ๋ฐฐ์šด ์ ํŒ€์›Œํฌ์˜ ์ค‘์š”์„ฑ: ๊ฐ์ž์˜ ๊ฐ•์ ์„ ์‚ด๋ ค ํ˜‘๋ ฅํ•˜๋Š” ๊ฒƒ์ด ํ”„๋กœ์ ํŠธ ์„ฑ๊ณต์˜ ์—ด์‡ ๋ผ๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ์„œ๋กœ์˜ ์˜๊ฒฌ์„ ์กด์ค‘ํ•˜๊ณ  ์กฐ์œจํ•˜๋Š” ๊ณผ์ •์—์„œ ๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค.React์˜ ๊นŠ์ด ์žˆ๋Š” ์ดํ•ด: React์˜ ์ƒ๋ช…์ฃผ๊ธฐ ๋ฐ ์ƒํƒœ ๊ด€๋ฆฌ์— ๋Œ€ํ•ด ๋”์šฑ ๊นŠ์ด ์ดํ•ดํ•˜๊ฒŒ ๋˜์—ˆ๊ณ , ์‹ค๋ฌด์—์„œ ์ž์ฃผ ์“ฐ์ด๋Š” ํŒจํ„ด์„ ์ตํž ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ: ๊ฐœ๋ฐœ ์ค‘ ๋ฐœ์ƒํ•œ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ณผ์ •์—์„œ ๋…ผ๋ฆฌ์  ์‚ฌ๊ณ ์™€ ์ฐฝ์˜์ ์ธ ์ ‘๊ทผ๋ฒ•์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋Š๊ผˆ์Šต๋‹ˆ๋‹ค.๋˜ํ•œ, Jotai๋ฅผ ์ฒ˜์Œ ์‚ฌ์šฉํ•ด ๋ณด์•˜๋Š”๋ฐ, ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ๊ฐ„์†Œํ™”ํ•  ์ˆ˜ ์žˆ์–ด ๋งค์šฐ ์œ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์— zustand๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•ด ์™”์ง€๋งŒ, Jotai๊ฐ€ ๋ณด๋‹ค ์ง๊ด€์ ์œผ๋กœ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.Jotai๋Š” ์ง๊ด€์ ์ธ ์ƒํƒœ ๊ด€๋ฆฌ ์†”๋ฃจ์…˜์œผ๋กœ, Rea..
์—ฌ๋ž์งธ ๋‚ ์€ '๋‹ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ' ์ด๋ผ๋Š” ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.์ด ๊ธ€์—์„œ๋Š” ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ–ˆ๋Š”์ง€, ๊ฒช์—ˆ๋˜ ์–ด๋ ค์›€, ๊ทธ๋ฆฌ๊ณ  ๋ฐฐ์šด ์ ์„ ํšŒ๊ณ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ž‘์„ฑํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ˜Š๋ฌธ์ œ ์„ค๋ช…์–€์—์„œ๋Š” ๋งค๋…„ ๋‹ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ๊ฐ€ ์—ด๋ฆฝ๋‹ˆ๋‹ค. ํ•ด์„ค์ง„๋“ค์€ ์„ ์ˆ˜๋“ค์ด ์ž๊ธฐ ๋ฐ”๋กœ ์•ž์˜ ์„ ์ˆ˜๋ฅผ ์ถ”์›”ํ•  ๋•Œ ์ถ”์›”ํ•œ ์„ ์ˆ˜์˜ ์ด๋ฆ„์„ ๋ถ€๋ฆ…๋‹ˆ๋‹ค.์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„์ด 1๋“ฑ๋ถ€ํ„ฐ ํ˜„์žฌ ๋“ฑ์ˆ˜ ์ˆœ์„œ๋Œ€๋กœ ๋‹ด๊ธด ๋ฌธ์ž์—ด ๋ฐฐ์—ด players์™€ ํ•ด์„ค์ง„์ด ๋ถ€๋ฅธ ์ด๋ฆ„์„ ๋‹ด์€ ๋ฌธ์ž์—ด ๋ฐฐ์—ด callings๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๊ฒฝ์ฃผ๊ฐ€ ๋๋‚ฌ์„ ๋•Œ ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„์„ 1๋“ฑ๋ถ€ํ„ฐ ๋“ฑ์ˆ˜ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.(์ž…์ถœ๋ ฅ์˜ ์˜ˆ)playerscallingsresult["mumu", "soe", "poe", "kai", "mine"][..
yyezzzy
'๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (3 Page)