๐Ÿ› /Dev Tool 13

[ESLint] jsx-eslint/eslint-plugin-jsx-a11y A form label must be associated with a control

react ํ”„๋กœ์ ํŠธ์— ๊ด€๋ฆฌ์ž ๋Œ€์‹œ๋ณด๋“œ ํ…œํ”Œ๋ฆฟ์„ ํ•˜๋‚˜ ๊ฐ€์ง€๊ณ  ์™€์„œ ์ปค์Šคํ…€ํ•˜๋ ค๊ณ  ์ค€๋น„ ์ค‘์— ๋งŒ๋‚œ ESLint ์—๋Ÿฌ. tailwindCSS๋กœ ์Šคํƒ€์ผ๋ง๋„ ํ•˜๊ณ  ์žˆ๋‹ค. label-has-associated-control ํƒœ๊ทธ๊ฐ€ ํ…์ŠคํŠธ ๋ผ๋ฒจ + ๊ด€๋ จ ์žˆ๋Š” control๋กœ ๊ตฌ์„ฑ๋˜๋„๋ก ๊ฐ•์ œํ•˜๋Š” ๋ฃฐ์ด๋‹ค. ๋งŒ์ผ ์ด๊ฒŒ ๋˜์ง€ ์•Š์œผ๋ฉด, ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉํ–ฅ์€ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ์•ˆ์— control ํƒœ๊ทธ๋ฅผ ๊ฐ์‹ธ๋Š” ๋ฐฉ๋ฒ• ํƒœ๊ทธ ์•ˆ์— htmlFor ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ปจํŠธ๋กค ํƒœ๊ทธ์— DOM id๋ฅผ ๋ถ™์ด๋Š” ๋ฐฉ๋ฒ• ์œ„ ์˜ˆ์‹œ์—์„œ htmlFor์™€ id๋ฅผ ๋‘˜๋‹ค ์“ฐ๊ณ  ์žˆ๋‹ค. Reference eslint-plugin-jsx-a11y์—์„œ ๋” ์ž์„ธํ•œ ์„ค๋ช…์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ› /Dev Tool 2022.02.10

[storybook] ๋ฆฌ์•กํŠธ๋กœ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ์‹œ ์œ ์šฉํ•œ ์ปดํฌ๋„ŒํŠธ ๊ด€๋ฆฌ ๋„๊ตฌ, ์Šคํ† ๋ฆฌ๋ถ์„ ๋„์ž…ํ•ด๋ณด๊ธฐ - 3

๋ฆฌ์•กํŠธ๋กœ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ์‹œ ์œ ์šฉํ•œ ์ปดํฌ๋„ŒํŠธ ๊ด€๋ฆฌ ๋„๊ตฌ, ์Šคํ† ๋ฆฌ๋ถ์„ ๋„์ž…ํ•ด๋ณด๊ธฐ - 3 (CRA + TypeScript + Prettier + ESLint + husky + lint-staged + Storybook + chromatic) TypeScript๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” Create React App ์ค€๋น„๋Š” ์ฒซ ๋ฒˆ์งธ ์‹œ๋ฆฌ์ฆˆ์—์„œ ๋‹ค๋ค˜๊ณ , ESLiint์™€ Prettier๋Š” ๋‘ ๋ฒˆ์งธ ์‹œ๋ฆฌ์ฆˆ์—์„œ ๋‹ค๋ฃจ์—ˆ๋‹ค. 2022.01.28 - [๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ] - [Storybook] ๋ฆฌ์•กํŠธ๋กœ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ์‹œ ์œ ์šฉํ•œ ์ปดํฌ๋„ŒํŠธ ๊ด€๋ฆฌ ๋„๊ตฌ, ์Šคํ† ๋ฆฌ๋ถ์„ ๋„์ž…ํ•ด๋ณด๊ธฐ - 1 2022.02.04 - [๐Ÿ› /Dev Tool] - [storybook] ๋ฆฌ์•กํŠธ๋กœ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ์‹œ ์œ ์šฉํ•œ ์ปดํฌ๋„ŒํŠธ ๊ด€๋ฆฌ ๋„๊ตฌ, ์Šคํ† ๋ฆฌ๋ถ์„ ๋„์ž…ํ•ด๋ณด๊ธฐ - 2..

๐Ÿ› /Dev Tool 2022.02.04

[Storybook] ๋ฆฌ์•กํŠธ๋กœ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ์‹œ ์œ ์šฉํ•œ ์ปดํฌ๋„ŒํŠธ ๊ด€๋ฆฌ ๋„๊ตฌ, ์Šคํ† ๋ฆฌ๋ถ์„ ๋„์ž…ํ•ด๋ณด๊ธฐ - 2

๋ฆฌ์•กํŠธ๋กœ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ์‹œ ์œ ์šฉํ•œ ์ปดํฌ๋„ŒํŠธ ๊ด€๋ฆฌ ๋„๊ตฌ, ์Šคํ† ๋ฆฌ๋ถ์„ ๋„์ž…ํ•ด๋ณด๊ธฐ (CRA + Prettier + ESLint + TypeScript + Storybook + chromatic) 2022.01.28 - [๐Ÿ› /Dev Tool] - [Storybook] ๋ฆฌ์•กํŠธ๋กœ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ์‹œ ์œ ์šฉํ•œ ์ปดํฌ๋„ŒํŠธ ๊ด€๋ฆฌ ๋„๊ตฌ, ์Šคํ† ๋ฆฌ๋ถ์„ ๋„์ž…ํ•ด๋ณด๊ธฐ - 1 [Storybook] ๋ฆฌ์•กํŠธ๋กœ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ์‹œ ์œ ์šฉํ•œ ์ปดํฌ๋„ŒํŠธ ๊ด€๋ฆฌ ๋„๊ตฌ, ์Šคํ† ๋ฆฌ๋ถ์„ ๋„์ž…ํ•ด๋ณด๊ธฐ - 1 ๋ฆฌ์•กํŠธ๋กœ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ์‹œ ์œ ์šฉํ•œ ์ปดํฌ๋„ŒํŠธ ๊ด€๋ฆฌ ๋„๊ตฌ, ์Šคํ† ๋ฆฌ๋ถ์„ ๋„์ž…ํ•ด๋ณด๊ธฐ (CRA + ESLint + TypeScript + Storybook + chromatic) ์˜ˆ์ „ ํ”„๋กœ์ ํŠธ์—์„œ ๋””์ž์ธ์ด ์ˆ˜์‹œ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”๋ฐ, ๋””์ž์ธ ๋ฒ„์ „ ๊ด€๋ฆฌ uiyoji-jou..

๐Ÿ› /Dev Tool 2022.02.04

[ESLint] Prop spreading is forbiddeneslintreact/jsx-props-no-spreading

์•„๋ž˜์ฒ˜๋Ÿผ props๋ฅผ ํŽผ์นจ์—ฐ์‚ฐ์ž(spread operator)๋ฅผ ์“ฐ๋Š” ๊ฒƒ๋„ ESLint์—์„œ ๊ถŒ์žฅํ•˜๋Š” ํŒจํ„ด์€ ์•„๋‹ˆ๋‹ค. ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ค prop์„ ๋‚ด๋ ค์ฃผ๊ณ  ์žˆ๋Š”์ง€ ์ผ์ผ์ด ๋ช…์‹œํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. Disallow JSX props spreading (react/jsx-props-no-spreading) Enforces that there is no spreading props for any JSX attribute. This enhances readability of code by being more explicit about what props are received by the component. It is also good for maintainability by avoiding p..

๐Ÿ› /Dev Tool 2022.01.31

[ESLint] react/no-unstable-nested-components

์•„๋ž˜ ๊ฐ™์€ ํŒจํ„ด์˜ ์ฝ”๋“œ๋Š” no-unstable-nested-components ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋œ๋‹ค. Creating components inside components without memoization leads to unstable components. The nested component and all its children are recreated during each re-render. Given stateful children of the nested component will lose their state on each re-render. function Component() { function UnstableNestedCOmponent() { return } return ( ) } ์ด๋Ÿฐ ํŒจ..

๐Ÿ› /Dev Tool 2022.01.31

[Storybook] ๋ฆฌ์•กํŠธ๋กœ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ์‹œ ์œ ์šฉํ•œ ์ปดํฌ๋„ŒํŠธ ๊ด€๋ฆฌ ๋„๊ตฌ, ์Šคํ† ๋ฆฌ๋ถ์„ ๋„์ž…ํ•ด๋ณด๊ธฐ - 1

๋ฆฌ์•กํŠธ๋กœ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ์‹œ ์œ ์šฉํ•œ ์ปดํฌ๋„ŒํŠธ ๊ด€๋ฆฌ ๋„๊ตฌ, ์Šคํ† ๋ฆฌ๋ถ์„ ๋„์ž…ํ•ด๋ณด๊ธฐ (CRA + ESLint + TypeScript + Storybook + chromatic) ์˜ˆ์ „ ํ”„๋กœ์ ํŠธ์—์„œ ๋””์ž์ธ์ด ์ˆ˜์‹œ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”๋ฐ, ๋””์ž์ธ ๋ฒ„์ „ ๊ด€๋ฆฌ ์ฒด๊ณ„๋„ ์ œ๋Œ€๋กœ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์•„์„œ ์–ด๋Š ๊ฒƒ์ด ์ตœ์‹  ๋ฒ„์ „์ธ์ง€, ์œ ํšจํ•œ ๋””์ž์ธ์ธ์ง€ ํ™•์ธํ•˜๊ธฐ ์–ด๋ ค์› ๋‹ค. Theme์ด ์„ธ ๊ฐ€์ง€๋‚˜ ๋‹ค๋ฅธ ๋””์ž์ธ์— ๋Œ€ํ•ด ๊ฐ๊ฐ ์ปดํฌ๋„ŒํŠธ์™€ ํŽ˜์ด์ง€๋ฅผ ๋‹ค๋ฃจ๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ๋‚œ๊ฐํ–ˆ๋‹ค. ์ž‘์„ฑํ•˜๊ณ  ์žˆ๋Š” ์ปดํฌ๋„ŒํŠธ๋Š” ์žฌ์‚ฌ์šฉ์„ ์œ„ํ•œ๋‹ค๊ณ  ๊ฐ€๋ฉด, ๋„ˆ๋ฌด ๋งŽ์€ prop์ด ๊ฑธ๋ ค์„œ ๋ฒˆ๋ฒˆํžˆ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋„ ์—†๋Š” ์™€์ค‘์— ๋””๋ฒ„๊น… ํ•˜๊ธฐ๊ฐ€ ํž˜๋“ค์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋””์ž์ด๋„ˆ์™€ ํ˜‘์—… ํšจ์œจ๋„ ๋†’์ด๊ณ , ์‹œ๊ฐ์ ์œผ๋กœ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ๋”ฐ๋กœ ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ฐœ๋ฐœํ•ด์„œ bottom-up ๋ฐฉ์‹์œผ..

๐Ÿ› /Dev Tool 2022.01.28

[VSCode] VSCode์—์„œ ํ„ฐ๋ฏธ๋„ ํ† ๊ธ€ (MacOS)

๋งฅ์œผ๋กœ ๊ฐœ๋ฐœ์„ ํ•˜๊ธฐ ์‹œ์ž‘ํ•œ ์ง€ ๋ช‡ ๋‹ฌ์€ ๋œ ๊ฒƒ ๊ฐ™์€๋ฐ, ์•„์ง ํ„ฐ๋ฏธ๋„ ํ† ๊ธ€ ๋‹จ์ถ•ํ‚ค๋ฅผ ์•ˆ ๋งŒ๋“ค์–ด๋‘๊ณ  ์žˆ์–ด์„œ, ๋ถˆํŽธํ•˜๋˜ ์ฐจ์— ์˜ˆ์ „์— ์ผ๋˜ ๊ธ€์ด ์ƒ๊ฐ๋‚˜ ๊ฒ€์ƒ‰ํ–ˆ๋”๋‹ˆ, ๊ด€๋ จ ํฌ์ŠคํŒ…์„ ํ•œ ์ ์ด ์—†์—ˆ๋‹ค. ์—ฌ๋Ÿฌ ํ„ฐ๋ฏธ๋„์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋‹จ์ถ•ํ‚ค ์„ค๋ช…๋งŒ ์žˆ๊ธธ๋ž˜ ์ƒˆ๋กœ ํฌ์ŠคํŒ…์„ ํ•œ๋‹ค. https://uiyoji-journal.tistory.com/32 [VSCode] VSCode์—์„œ ํ„ฐ๋ฏธ๋„ ์—ฌ๋Ÿฌ ๊ฐœ ์‚ฌ์šฉํ•˜๊ธฐ/๋””ํดํŠธ ํ„ฐ๋ฏธ๋„ ์„ค์ •ํ•˜๊ธฐ ์‚ฝ์งˆ ๋ช‡ ๋ฒˆ ๋์— ๋“œ๋””์–ด ๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค ์ฝ”๋“œ ๋‚ด์—์„œ external ๋ฐฉ์‹์ด ์•„๋‹Œ integrated ๋ฐฉ์‹์˜ ๋‹ค์ค‘ ํ„ฐ๋ฏธ๋„ ์‚ฌ์šฉ ์„ธํŒ…์„ ์™„๋ฃŒํ–ˆ๋‹ค. ๋๋‚ด๊ณ  ๋‚˜๋‹ˆ ๋ณ„ ์–ด๋ ค์šด ๊ฒŒ ์•„๋‹ˆ์—ˆ๋Š”๋ฐ, argument ์„ค์ •์—์„œ ๊ธธ์„ ์žƒ์—ˆ uiyoji-journal.tistory.com 1. VSCode๋ฅผ ์—ด๊ณ  C..

๐Ÿ› /Dev Tool 2022.01.17

[Github] ๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต ๊ณ„์ •์œผ๋กœ GIthub ๊ต์œก์šฉ ๋ฌด๋ฃŒ ๋ผ์ด์„ผ์Šค ๋“ฑ๋กํ•˜๊ธฐ

2022.01.10 - [๐Ÿ› /Dev Tool] - [JetBrains] ๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต ๊ณ„์ •์œผ๋กœ JetBrains ๊ต์œก์šฉ ๋ฌด๋ฃŒ ๋ผ์ด์„ผ์Šค ๋“ฑ๋กํ•˜๊ธฐ [JetBrains] ๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต ๊ณ„์ •์œผ๋กœ JetBrains ๊ต์œก์šฉ ๋ฌด๋ฃŒ ๋ผ์ด์„ผ์Šค ๋“ฑ๋กํ•˜๊ธฐ ์ž‘๋…„ ๊ฐ€์„ํ•™๊ธฐ์— ์ฒ˜์Œ ๋“ฑ๋กํ•ด์„œ ์ด์ œ ๋‘ ๋ฒˆ์งธ ํ•™๊ธฐ๋ฅผ ์•ž๋‘๊ณ  ์žˆ๋‹ค. ๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต ์žฌํ•™์ƒ์ผ ๋•Œ ๋ˆ„๋ฆด ์ˆ˜ ์žˆ๋Š” ๋งŽ์€ ๊ฒƒ๋“ค์ด ์žˆ๋Š”๋ฐ, ๋‚ด๊ฐ€ ํ•™์ƒ์ด๋ผ๋Š” ์ž๊ฐ์ด ๊ณ„์† ์•ˆ ๋“ค์–ด์„œ, ๋ฒˆ๋ฒˆํžˆ ๋†“์น˜๊ณค ํ•œ๋‹ค. uiyoji-journal.tistory.com ๋ฐฉํ†ต๋Œ€ ๊ณ„์ •์œผ๋กœ JetBrains IDE๋ฅผ ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ ˆ์ฐจ๋ฅผ ๋“ฑ๋กํ•œ ๋’ค, ๋‚ด์นœ๊น€์— Github Pro๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. GIthub์€ ์›๋ž˜ ๋ฌด๋ฃŒ ๊ณ„์ •์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋˜ ๊ฐœ์ธ ๊ณ„์ •์ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์—ฌ๊ธฐ์— ํ•™์ƒ ๊ณ„์ •์„ ..

๐Ÿ› /Dev Tool 2022.01.10

[JetBrains] ๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต ๊ณ„์ •์œผ๋กœ JetBrains ๊ต์œก์šฉ ๋ฌด๋ฃŒ ๋ผ์ด์„ผ์Šค ๋“ฑ๋กํ•˜๊ธฐ

์ž‘๋…„ ๊ฐ€์„ํ•™๊ธฐ์— ์ฒ˜์Œ ๋“ฑ๋กํ•ด์„œ ์ด์ œ ๋‘ ๋ฒˆ์งธ ํ•™๊ธฐ๋ฅผ ์•ž๋‘๊ณ  ์žˆ๋‹ค. ๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต ์žฌํ•™์ƒ์ผ ๋•Œ ๋ˆ„๋ฆด ์ˆ˜ ์žˆ๋Š” ๋งŽ์€ ๊ฒƒ๋“ค์ด ์žˆ๋Š”๋ฐ, ๋‚ด๊ฐ€ ํ•™์ƒ์ด๋ผ๋Š” ์ž๊ฐ์ด ๊ณ„์† ์•ˆ ๋“ค์–ด์„œ, ๋ฒˆ๋ฒˆํžˆ ๋†“์น˜๊ณค ํ•œ๋‹ค. ๊ทธ ์ค‘ ํ•˜๋‚˜๋Š” ํ•ด์•ผ์ง€ ์ƒ๊ฐ๋งŒ ํ•˜๋‹ค๊ฐ€ ๋ฏธ๋ฃฌ JetBrains ๋ฌด๋ฃŒ ๊ต์œก์šฉ ๋ผ์ด์„ผ์Šค ํ”Œ๋žœ์„ ๋“ฑ๋กํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์•„๋ž˜๋Š” ์ ฏ๋ธŒ๋ ˆ์ธ ํ™ˆํŽ˜์ด์ง€ JetBrains: Essential tools for software developers and teams JetBrains is a cutting-edge software vendor specializing in the creation of intelligent development tools, including IntelliJ IDEA – the leading Java IDE, an..

๐Ÿ› /Dev Tool 2022.01.10

[vscode] Live Server Extension https ์—ฐ๊ฒฐํ•˜๊ธฐ w/openssl

์‹œ์ž‘ํ•˜๋ฉฐ PWA ์—ฐ์Šต์„ ์œ„ํ•ด์„œ ๊ฐ„๋‹จํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ–ˆ๋‹ค. 192, 512px ์‚ฌ์ด์ฆˆ์˜ ๋‘ ๋กœ๊ณ ์™€ src ํด๋”์—๋Š” index.html, index.js, master.css, manifest.json ์ด๋ ‡๊ฒŒ ํŒŒ์ผ์„ ๋‘๊ณ  ์žˆ๋‹ค. lighthouse๋ฅผ ํ†ตํ•ด pwa ๋ฆฌํฌํŠธ๋ฅผ ์ถœ๋ ฅํ•˜๋Š”๋ฐ https ๋ถ€๋ถ„์„ ํ•ด๊ฒฐํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์•„์„œ, Live Server ์„ค์ •์„ ์†๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ๋ฌธ์ œ ์ƒํ™ฉ Live Server extension์— ๋“ค์–ด๊ฐ€ ์„ค๋ช…์„ ๋ณด๋‹ˆ ๋‹คํ–‰ํžˆ https๋ฅผ ์ง€์›ํ•œ๋‹ค. ๊ณต์šฉ ์‚ฌ์ดํŠธ๊ฐ€ ์•„๋‹Œ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•จ์ด๋‹ˆ ์ž์ฒด ์„œ๋ช…์„ ํ†ตํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ Open SSL์„ ์ด์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. Open SSL์€ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ํ†ต์‹ ์— ์“ฐ์ด๋Š” ๋‘ ํ”„๋กœํ† ์ฝœ TLS, SSL์˜ ์˜คํ”ˆ ์†Œ์Šค ๋ฒ„์ „์ด๋ฉฐ, ์ด ๋งํฌ์—์„œ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜ ์žˆ..

๐Ÿ› /Dev Tool 2021.03.16