๋ชฉ๋กโŒจ๏ธ Web Front-End/ETC (4)

๐Ÿ˜† My name is Ez : ์‰ฝ๋‹ค ์‰ฌ์›Œ ๊ฐœ๋ฐœlife

[ETC] : ๊ณตํ†ต์ปดํฌ๋„ŒํŠธ? ์•„?

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” ๊ฐ€์žฅ ์ž‘์€ ์•„ํ†ฐํ˜•์‹์˜ ์ปดํฌ๋„ŒํŠธ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐ ๊ฐ™์€ ๊ณตํ†ต์ปดํฌ๋„ŒํŠธ๋ฅผ ๋จผ์ € ํ•˜๋‚˜ ๋งŒ๋“ค์–ด๋ณด๊ณ  ๋ฆฌ๋ทฐํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ์˜ค๋Š˜๊นŒ์ง€ ์ž‘์—…์€ ํ–ˆ๊ณ  ๋‚ด์ผ ๊ฐ™์ด ๋ชจ์—ฌ์„œ ๋ฆฌ๋ทฐ๋ฅผ ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์—์„œ ์•„์ฃผ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” Input์„ ๋จผ์ € ๋งŒ๋“ค๊ธฐ๋กœ ํ–ˆ๋Š”๋ฐ, InputBasic์ด๋ผ๊ณ  ์ •ํ–ˆ๋‹ค. ๋‹จ์ˆœ ํ…์ŠคํŠธ๋ฟ ์•„๋‹ˆ๋ผ , ์ˆซ์ž, ์Œ์ˆ˜, ์†Œ์ˆ˜์ , ๊ณ„์ขŒ๋ฒˆํ˜ธ, ์˜จ๋„, ์ „ํ™”๋ฒˆํ˜ธ ๋“ฑ.. ๋‹ค์–‘ํ•œ ํ˜•ํƒœ์˜ ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ  ์ปจํŠธ๋กคํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ธํ’‹ ๋‚ด๋ถ€ ๋ผ๋ฒจ(๋‹จ์œ„ ํ‘œ๊ธฐ), ๊ฒ€์ƒ‰์ฐฝ์˜ ๋‹๋ณด๊ธฐ ๋“ฑ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์„œ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ์ง€ ๊ณ ๋ฏผ์„ ๋งŽ์ด ํ–ˆ๋‹ค. ์ผ๋‹จ CSS ๊ด€๋ จ๋œ ๋ถ€๋ถ„์€ ํผ๋ธ”๋ฆฌ์‹ฑ์ด ๋‚˜์˜ค๋ฉด ์ ์šฉํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ๊ฐ๊ฐ์˜ ์œ„์น˜๋ฅผ ๋จผ์ € ์žก์•˜๋‹ค. Prop๋กœ๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ value, setValue, classNam..

[Day.js] : Moment.js (Day.js๋กœ ๋ณ€๊ฒฝ)

์ƒˆ๋กญ๊ฒŒ ๋‹ค์‹œ ์ง„ํ–‰ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ๋Š” Moment.js๋ฅผ ๋ฒ„๋ฆฌ๊ณ  Day.js๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ์ข‹๊ฒ ๋‹ค๊ณ  ํ–ˆ๋‹ค. ๋” ์ด์ƒ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ง„ํ–‰๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค... (์ด ๋ถ€๋ถ„์€ ๋งค์šฐ ๋ถˆ์•ˆ๐Ÿ˜ฅ) Moment.js ํ™ˆํŽ˜์ด์ง€์—๋งŒ ๊ฐ€๋„ ๋ฉ”์ธ ๋ฐฐ๋„ˆ์˜†์— ์ด๋Ÿฐ ๊ธ€์ด ์ ํ˜€์žˆ๋‹ค. (๋‹ค๋ฅธ ๊ถŒ์žฅ ์‚ฌํ•ญ๋“ค์„ ์•ˆ๋‚ด) Moment์—์„œ ์ถ”์ฒœํ•ด ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‹ค์šด๋กœ๋“œ ํ˜„ํ™ฉ์ด๋‹ค. ๊ทธ์ค‘์—์„œ Day.js๋ฅผ ์„ ํƒํ•œ ๊ฑด ์‚ฌ์šฉ๋ฐฉ๋ฒ•์ด Moment.js์™€ ๋™์ผํ•˜๊ณ  ๊ฐ€๋ฒผ์šด ์šฉ๋Ÿ‰ ๋•Œ๋ฌธ์ด๋‹ค. ์ผ๋‹จ ๋ณ€๊ฒฝํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ๊ต‰์žฅํžˆ ํŽธ๋ฆฌํ•˜๋‹ค. ์„ค์น˜๋ฐฉ๋ฒ• npm install dayjs --save ์‚ฌ์šฉ๋ฐฉ๋ฒ• (๊ฐ„๋‹จํ•œ ์‚ฌ์šฉ๋ฒ•๋งŒ ์†Œ๊ฐœ) /** 1. ๋‚ ์งœ ๊ฐ์ฒด ์ƒ์„ฑํ•˜๊ธฐ */ //ํ˜„์žฌ ๋‚ ์งœ ๊ฐ์ฒด ์ƒ์„ฑ dayjs(); // ์›ํ•˜๋Š” ๋‚ ์งœ ๊ฐ์ฒด ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ• dayjs('2023-07-24');..

[StoryBook] : ์Šคํ† ๋ฆฌ๋ถ์ด ๋ญ์ง€?

Atomic Design Pattern์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•˜๊ณ  ์ง€๊ธˆ ํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ Storybook์„ ์ ์šฉํ•ด์„œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. 2023.07.20 - [โŒจ๏ธ Web Front-End/NextJs] - [Design Pattern] : Atomic Design (์•„ํ† ๋ฏน ๋””์ž์ธ) ์‚ฌ์‹ค ์ฒ˜์Œ ๋ฆฌ์•กํŠธ๋ฅผ ๋ฐฐ์› ์„ Storybook์— ๋Œ€ํ•ด์„œ ๋“ค์—ˆ์ง€๋งŒ ๊ทธ๋•Œ๋Š” ๋ฆฌ์•กํŠธ์กฐ์ฐจ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ ์ƒํƒœ๋ผ์„œ ๊ทธ๋ƒฅ ๋“ฃ๊ณ  ๋„˜๊ฒผ๋Š”๋ฐ ๊ฐ‘์ž๊ธฐ ๋– ์˜ฌ๋ž๋‹ค. ์‹œ๋‹ˆ์–ด๋ถ„์—๊ฒŒ ์ ์šฉํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ๋ง์”€์„ ๋“œ๋ ธ๋Š”๋ฐ... ์‚ฌ์‹ค ๋ญ˜ ํ•  ์ค„ ์•Œ์•„์•ผ ์ ์šฉํ•  ํ…๋ฐ.. ๊ทธ๋ž˜์„œ ๋ฉฐ์น  ์ „๋ถ€ํ„ฐ ์‹œ๊ฐ„ ๋  ๋•Œ๋งˆ๋‹ค ๊ณต์‹๋ฌธ์„œ์™€ ๋ธ”๋กœ๊ทธ๋“ค์„ ์ฐธ๊ณ ํ•ด์„œ ๊ธฐ๋ณธ ์„ธํŒ…๊ณผ ๋ฒ„ํŠผ ์ •๋„ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ๊นŒ์ง€ ํ•ด๋ณด์•˜๋‹ค. 1. StoryBook์ด๋ž€? StoryB..

[Performance] : Debouncing(๋””๋ฐ”์šด์‹ฑ),Throttling(์“ฐ๋กœํ‹€๋ง)

๐Ÿคฆ๐Ÿป‍โ™‚๏ธ ๋ชจ๋ฅด๋Š” ๊ฒŒ ๋„ˆ๋ฌด๋‚˜๋„ ๋งŽ๋‹ค... ์˜ค๋Š˜์€ ์•„์นจ Front๊ฐœ๋ฐœ์ž ํšŒ์˜๋ฅผ ํ•˜๋‹ค. ๋ฐฑ์•ค๋“œ ์‹œ๋‹ˆ์–ด๋ถ„๊ป˜์„œ input์— ํƒ€์ดํ•‘๋งŒ ํ•ด๋„ ๋ชจ๋“  ํ™”๋ฉด์—์„œ ๋žœ๋”๋ง์ด ๋œ๋‹ค๊ณ  ํ•ด์„œ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋ฉด ์ข‹์„์ง€ ํ”„๋ก ํŠธ ์‹œ๋‹ˆ์–ด๋ถ„๊ป˜ ์งˆ๋ฌธ์„ ํ•˜์…จ๋‹ค. ๊ทธ๋•Œ ํ•˜์‹  ๋ง์”€์ด lodash - Debouncing์„ ์‚ฌ์šฉํ•˜๋ฉด ์ข€ ์ค„์–ด๋“ค ๊ฑฐ๋ผ๊ณ  ํ•˜์…จ๋Š”๋ฐ ๋‚œ ๋ฌด์Šจ ๋ง์ธ์ง€ ๋ชฐ๋ผ์„œ ใ…Žใ…Ž ๋ฉ”๋ชจ์žฅ์— ๊ฐœ๋…๋งŒ ์จ๋‘์—ˆ๋‹ค. ์ •๋ง ๋ชจ๋ฅด๋Š” ๊ฒŒ ๋„ˆ๋ฌด๋‚˜๋„ ๋งŽ๋‹ค... (๊ฐœ๋…์€ ๊ฐ€๋ณ๊ฒŒ ์ตํžˆ๊ณ  ์‹ค์ œ๋กœ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ •๋„ ์ž‘์„ฑํ•ด๋ณผ๊นŒ ํ•œ๋‹ค.) - lodash ์‚ฌ์šฉ ์˜ˆ์ • 1. Debouncing(๋””๋ฐ”์šด์‹ฑ) ๋””๋ฐ”์šด์‹ฑ์ด๋ž€? ์œ ์ €๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ์ผ์ •ํ•œ ์‹œ๊ฐ„๊ฒฉ์ฐจ๋ฅผ ๋‘๊ณ , ์—ฐ์†์—์„œ ๋ฐœ์ƒํ•œ ์ด๋ฒคํŠธ๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด์„œ, ์ฒ˜์Œ์ด๋‚˜ ๋งˆ์ง€๋ง‰ ํ•œ ๋ฒˆ์— ํ•ด๋‹น ์š”์ฒญ(์ด๋ฒคํŠธ)์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค. ..