์ปดํฌ๋„ŒํŠธ

๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๋‹ค๋ณด๋ฉด, ์ปดํฌ๋„ŒํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ถ„๋ฆฌํ•ด์•ผํ•  ๊ฒƒ์ธ๊ฐ€๋ฅผ ๋งŽ์ด ๊ณ ๋ฏผํ•œ๋‹ค.๋˜, ๋ถ„๋ฆฌํ•˜์—ฌ ์–ด๋– ํ•œ ํŒจํ„ด์„ ์ด์šฉํ•˜์—ฌ ์ž‘์„ฑํ• ์ง€๋„ ๊ณ ๋ฏผํ•œ๋‹ค. ์šฐ์„  ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ๊ธฐ์ค€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ๐Ÿฆด ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ1. โ™ป๏ธ ์žฌ์‚ฌ์šฉ์„ฑ (Resualbility)๐Ÿ‘‰๐Ÿป ๋™์ผํ•œ UI๋‚˜ ๊ธฐ๋Šฅ์„ ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์‚ฌ์šฉํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถ„๋ฆฌํ•œ๋‹ค.๐Ÿ‘‰๐Ÿป ex. Button, Modal, Card, Input ์ฝ”๋“œ ์ข€ ๋” ์ดํ•ดํ•˜๊ธฐ >> ์œ ํ‹ธํ•จ์ˆ˜ cn(tailwind-merge) tailwind-mergeMerge Tailwind CSS classes without style conflicts. Latest version: 3.1.0, last published: 3 days ago. Start using ta..
์ƒ๋‹จ ๋‚ด์šฉ ์ž‘์„ฑ ์˜ˆ์ •  ( 2025-01-31 ~ ) 2025. 02. 02 ์ถ”๊ฐ€โˆ™ useControllableState() ๊ณต๋ถ€โˆ™ ReactNode, ReactChild, ReactElement ๊ณต๋ถ€ ํ›„, ์žฌ์ž‘์„ฑ ๋  ์˜ˆ์ • (์•„๋งˆ ์ฝ”๋“œ ๋˜ํ•œ ๋ณ€๊ฒฝ๋  ์˜ˆ์ •)   ํ•ฉ์„ฑ ์ปดํฌ๋„ŒํŠธ์˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค 1. Header, Body, Footer๋ฅผ ๋ชจ๋‘ ํ˜ธ์ถœํ•œ ๊ฒฝ์šฐ2. Body์™€ Footer๋งŒ ํ˜ธ์ถœํ•œ ๊ฒฝ์šฐ3. Body๋งŒ ํ˜ธ์ถœํ•˜๊ณ  Body์— ์Šคํƒ€์ผ๋ง์„ ๋ฎ์–ด์”Œ์šด ๊ฒฝ์šฐ์‚ฌ์šฉ์ž๊ฐ€ ํ•„์š”ํ•œ ์ปดํฌ๋„ŒํŠธ๋งŒ์„ ํ˜ธ์ถœํ•จ์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ๋ชจ์–‘์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.๋˜ํ•œ ๊ฐ ์ปดํฌ๋„ŒํŠธ์— className(tailwindCSS), style์„ props๋กœ ๋„˜๊ฒจ์ฃผ์–ด ๋””์ž์ธ์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ“„ App.tsx (ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํŽผ์ณ์„œ ๋ณด๊ธฐ)๋”๋ณด๊ธฐim..
์ฐธ๊ณ ์‚ฌ์ดํŠธโ€ข ์นด์นด์˜ค - FE ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ / ์ปดํฌ๋„ŒํŠธ ์ถ”์ƒํ™”โ€ข velog - jinoo.io / ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ ˆ๊ณ ์ฒ˜๋Ÿผ ์Œ“์•„๋ณด์ž!  *์ถ”์ƒํ™”: ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์‚ฌ๋ฌผ์ด๋‚˜ ๊ฐœ๋…์—์„œ ๊ณตํ†ต๋˜๋Š” ํŠน์„ฑ์ด๋‚˜ ์†์„ฑ ๋”ฐ์œ„๋ฅผ ์ถ”์ถœํ•˜์—ฌ ํŒŒ์•…ํ•˜๋Š” ์ž‘์šฉ  ๐Ÿ’€ ์ปดํฌ๋„ŒํŠธ์˜ ์ถ”์ƒํ™”ํ˜„๋Œ€ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์€ ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์˜ ํ”„๋ ˆ์ž„์›Œํฌ(ํ˜น์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๊ฒŒ ๋œ๋‹ค.์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„์˜ ๊ฐœ๋ฐœ๋กœ ์žฅ์ ์€ ๋ฌด์—‡์ผ๊นŒ? ๐Ÿ‘๐Ÿป ์žฅ์ 1. ์žฌ์‚ฌ์šฉ์„ฑ: ์ปดํฌ๋„ŒํŠธ๋Š” ๋…๋ฆฝ์ ์ด๊ณ  ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ ๋ธ”๋ก์œผ๋กœ, ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ๋™์ผํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.์ด๋Š” ์ฝ”๋“œ์˜ ์ค‘๋ณต์„ ์ค„์ด๊ณ  ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•œ๋‹ค.2. ์œ ์ง€๋ณด์ˆ˜ ์šฉ์ด์„ฑ: ์ปดํฌ๋„ŒํŠธ๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ๊ด€๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • ๊ธฐ๋Šฅ์ด๋‚˜ UI ์š”์†Œ๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋งŒ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ๋œ๋‹ค.์ด๋Š” ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ..
์ฐธ๊ณ ์‚ฌ์ดํŠธ* ์นด์นด์˜ค FE ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ ์•„ํ† ๋ฏน ๋””์ž์ธ์„ ํ™œ์šฉํ•œ ๋””์ž์ธ ์‹œ์Šคํ…œ ๋„์ž…๊ธฐ | ์นด์นด์˜ค์—”ํ„ฐํ…Œ์ธ๋จผํŠธ FE ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ์ •ํ˜ธ์ผ(harry) ์นด์นด์˜คํŽ˜์ด์ง€์—์„œ ์›น ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ง‘๋ณด๋‹ค ๋ฐ–์— ๋Œ์•„๋‹ค๋‹ˆ๋Š” ๊ฑธ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.fe-developers.kakaoent.comํ•ด๋‹น ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ์œผ๋ฉฐ, ๋จธ๋ฆฟ์†์— ๋‹ด๊ธฐ ์œ„ํ•ด ์ ์–ด๊ฐ€๋ฉด์„œ ๊ณต๋ถ€ (๋„์ .. ๋„์ ..)  ๐Ÿงฉ ์ปดํฌ๋„ŒํŠธ์˜ ํŒŒํŽธํ™”๋น„์Šทํ•œ ๋ชจ์–‘ ๋ฐ ๊ธฐ๋Šฅ์„ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž.์ด๊ฑธ ๊ฐ๊ธฐ ํ•˜๋‚˜ ํ•˜๋‚˜ ๋‹ค ๋งŒ๋“ค์–ด๋‚ด๋Š” ๊ฒƒ์— ๋Œ€ํ•ด์„œ๋Š” ๊ตฌํ˜„ํ•˜๋ฉด ์ปดํฌ๋„ŒํŠธ ํŒŒํŽธํ™”๋ผ๋Š” ์ œ ๊ฐ๊ฐ์˜ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.๊ทธ๋Ÿผ ์œ ์ง€๋ณด์ˆ˜ ํ•  ๋•Œ, ๊ฐ๊ฐ์˜ ํŒŒํŽธํ™”๋œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ฐพ์•„์„œ ๊ณ ์ณ์•ผํ•˜๋Š” ๋ฌธ์ œ์ ์ด ๋ฐœ์ƒํ•œ๋‹ค. โ“ ์™œ ์“ฐ๋Š”๊ฑด๋ฐ?๋””์ž์ธ ์‹œ์Šคํ…œ๋‚ด์—์„œ ์ˆ˜ ๋งŽ์€ ์ˆ˜์ • ์ž‘์—…๋“ค์ด ์ผ์–ด๋‚œ..