mock service worker(msw) ์ฐ๋ฉด์ ๋๋ต์ ์ผ๋ก ์๊ณ ์๋ ์๋น์ค ์์ปค๋ฅผ ๋ณด๊ธฐ ์ํจ์ค๋ช ์ mdn https://developer.mozilla.org/ko/docs/Web/API/Service_Worker_APIํ๋ก์ ์๋ฒ ์ญํ๋คํธ์ํฌ๋ฅผ ๊ฐ๋ก์ฑ์
ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ ์ง์ฆ๋๋๊ฑด ์ํ๊ด๋ฆฌ ๋ถ๋ถ์ด๋ค.๋ช ๊ฐ์ง ์ข์ ๊ธ์ด ๋ง์์ ์์ฝ๊ฒธ ์ ๋ฆฌ๋ฅผ ํ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค ์๊ฐ์ด ๋ ๋ค.https://leerob.io/blog/react-state-management๋ฆฌ์กํธ ์ํ ๊ด๋ฆฌ์ ์ญ์ฌ๋ฅผ ๋ค๋ฃจ๋ ๊ธ์ํ์ ๋ถ๋ฅ๋ฒ์ ์ฌ๊ธฐ์
node์์ ui ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ง๋ค๋ ์ผ์ผํ index.js ๋ง๋ค๊ธฐ๊ฐ ์ฌ๊ฐ ๊ท์ฐฎ์๊ฒ ์๋๋ผ์, ์๋์ผ๋ก indexํ์ผ ๋ง๋๋ ๊ฑธ ์ฐพ์๋ดค๋ค.์ผ๋จ idxgen์ ๋ณ๋ก์ธ๊ฑธ๋กํ์ฌ ๋ด๊ฐ ์์ ํ๊ณ ์๋ ํด๋๊ตฌ์กฐ์ ๋ง๊ฒ ์ ํ ํ๊ณ ์ถ์๋ฐ idxgen์์ ์ค์ ํ๊ธฐ๊ฐ ํ๋ค๋ค.๋ง์ฝ ๋๋ ํ ๋ฆฌ
docuemnt์ navigator ๊ฐ์ ๋ธ๋ผ์ฐ์ ๊ฐ์ฒด ๋ฐฉ์ง๋ฅผ ์ ํด์ผ๋จ์๋ํ๋ฉด ์๋ฒ์์ ์๋์ ๊ฐ์์๋ ํ ์ ๋ง๋ค์ด์ ์ฌ์ฉํจ
์๋ฌ๋ฉด ์๋๊ฐ์ ํ์ ์ ์ฝ๊ฒ ๋ง๋ค ์ ์๋ค.์ข ๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ๋์ค์ ๊ณ ๋ฏผํ๋ฉด ์ข์ ๋ฏ
ํด๋ผ์ด์ธํธ JS ์ฑ์ SSR์ ํ์์ ๋๋ค. ์๋ฒ์์ JS๋ฅผ HTML๋ก ๋ ๋๋งํฉ๋๋ค. ์ด HTML์ ํด๋ผ์ด์ธํธ์ ์ ๊ณตํ์ฌ ๋น ๋ฅด๊ฒ ์์๋๋ ๊ฒ ์ฒ๋ผ ๋ณด์ ๋๋ค. ํ์ง๋ง ์ค์ ๋ก ์ ์ ๊ฐ ์ค์ ๋ก ์ํธ์์ฉ์ ํ๊ธฐ ์ํด์, ์ฆ ํ์ด๋๋ ์ด์ ์ด ๋์ผ์ง๋ง(hydration) ๋น์ ์ JS๊ฐ
์ผ์ด ๊ฐ๊ฒฉ์ผ๋ก ์ซ์ ์ถ๋ ฅํ๊ธฐ from์ ๋ช ์ํ ์ซ์๋ถํฐ to์ ๋ช ์ํ ์ซ์๊น์ง ์ถ๋ ฅํด์ฃผ๋ ํจ์ printNumbers(from, to)๋ฅผ ๋ง๋ค์ด๋ณด์ธ์. ์ซ์๋ ์ผ ์ด ๊ฐ๊ฒฉ์ผ๋ก ์ถ๋ ฅ๋์ด์ผ ํฉ๋๋ค. ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฌ์ฉํด ํจ์๋ฅผ ๋ง๋์ ์ผ ํฉ๋๋ค. 1.setInterva
function.name์ ํจ์์ ์ด๋ฆ์ ๋ํ๋ด๋ ํ๋กํผํฐ์ด๋ค.es6์ ์คํ์ด๋คdescriptor๋ ์๋์ ๊ฐ๋ค. ์ฝ๊ธฐ ์ ์ฉ์ด๊ณ ์ด๊ฑฐ๋์ง ์๋๋ค.๋ค๋ง ์ค์ ์ ๋ณ๊ฒฝํ ์ ์์ด์, ์ด๋ฆ์ ๋ณ๊ฒฝํ ์ ์๋ค.Function.prototype์ name์ Symbol.hasIn
https://blog.bitsrc.io/react-hook-form-vs-formik-form-builder-library-for-react-23ed559fdae ์ ๋ฆฌํจ๋๋ง ๋ถํธํ๋ค๊ณ ๋๋ผ๋๊ฒ ์๋์์.ํผ์ ๋ณด์ผ๋ฌํ๋ ์ดํธ๋ ๋ง์ด ํ์ํ๊ฑฐ์์์๊ฐ๋ณด๋ค ์ ์ฉํ ํจ
์ ์ด ๋ ์ ๋ ฅ์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋ชจ๋ ์ ๋ ฅ ๊ฐ์ ์ํ์ ์ ์ฅํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ชจ๋ ๊ฐ ๋ณ๊ฒฝ์ ๋ํ ํน์ ์กฐ๊ฑด์ ํ๊ฐํ๊ณ ๊ทธ์ ๋ฐ๋ผ ๋ฌด์ธ๊ฐ๋ฅผ ์ํ ํ ์ ์์ต๋๋ค. ์ด์ ์๋ ๋ฒํผ์ ๋นํ์ฑํํ๊ธฐ ๋งํ์ต๋๋ค.
https://goshakkk.name/y-no-field-level-validations/ ์ ๋ฆฌํจ์ ํ๋ ์์ค์ ๊ฒ์ฆ์ ํ์ง ์๋๊ฐ?์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ํ์.๋ง์ฝ ๋ฆฌ์กํธ์์ ์ ํจ์ฑ ๊ฒ์ฆ์ ํ ๋๊ฐ ์๋ค. ๋ณดํต ๊ทธ๋ด ๋ <Input isRequried />
https://goshakkk.name/turn-uncontrolled-into-controlled/ ์ ๋ฆฌ๋น์ ์ด ํผ์ผ๋ก ์์ํ์ด๋ ๊ด์ฐฎ๋ค. ๋ง์ฝ disabled submit, ์ฆ๊ฐ์ ์ธ ๊ฒ์ฆ์ด ํ์ํด์ก์ผ๋ฉด, ๋ณ๊ฒฝํ๋ฉด ๋๋ค.์์๋ ๊ฐ๋จํ๋ค. 1\. ๋ชจ๋ ํผ ์ ์ด
๋ง์ ๊ธ๋ค์์ setState vs. ref์ ์ฌ์ฉ์๋ํ ๋ฐ๋๋๋ ์ฃผ์ฅ๋ค์ด ์์ด์ ์ด๋ป๊ฒ์ด ์ณ์ ๋ฐฉ๋ฒ์ธ์ง ์ ํํ๊ธฐ ํ๋ค๊ฒ ํ๋ค.๋ ๋ฐฉ์์ ์ฅ์ ์ด ์๋ค. ๊ฐ๋จํ ํผ์ ๋ง๋ค ๋๋ ๋น์ ์ด๋ ์ ์ฉํ๋ค. ํ์ง๋ง ์ ์ด ๋ฐฉ์์ ์ฅ์ ๋ํ ์๋ค.๋น์ ์ด๋ pull๋ฐฉ์์ผ๋ก ํ์ํ ๋ ๋ฐ
๋ช ์ธ์ type conversion ์ ๋ํ ๋ด์ฉ์ด๋ค. > ECMAScript ์ธ์ด๋ ํ์์ ๋ฐ๋ผ* ์๋ ์ ํ ๋ณํ์ ์๋ฌต์ ์ผ๋ก ์ํ* ํ๋ค. ํน์ ๊ตฌ์กฐ์ ์๋ฏธ๋ก ์ ๋ช ํํ ํ๊ธฐ ์ํด์๋ ์ผ๋ จ์ ๋ณํ ์ถ์์ ์ฐ์ฐ์ ์ ์ํ๋ ๊ฒ์ด ์ ์ฉํ๋ค. ๋ณํ ์ถ์ ์ฐ์ฐ์ ํด๋ฆฌ๋ชจํฝ(๋ค
https://www.invisionapp.com/inside-design/guide-to-design-systems/ ๊ธ์ ์ ๋ฆฌํ์ต๋๋ค.๋์์ธ ์์คํ ์ด ๋ฌด์์ด๊ณ , ์ด๋ป๊ฒ ๊ตฌ์ถํ๋์ง ์ค๋ช ํ๊ณ ๊ธฐ์ ๋ค์ ์์๋ฅผ ์ดํด๋ณด๋ ๊ธ๋์์ธ ์์คํ ์ ๋ฐ๋ณต ๊ฐ๋ฅํ ์ปดํฌ๋ํธ๋ค์
https://www.futurelearn.com/info/blog/atomic-design-molecules-organisms ๊ธ์ ์ ๋ฆฌํจ์ํ ๋ฏน ๋์์ธ์ ๋๋ฆ ์ ์๋๋จ. ์ธํฐํ์ด์ค์ ๋ํ ์ดํด๋ฅผ ๊ตฌ์ถ, ๋ชจ๋์ ์์คํ ์ ์ ํํ์ฌ ๋์์ธ ์ธ์ด๋ฅผ ๋ฐ์ ์ํค๋ ๋ฐ
๋ค์๊ธ์ ์ ๋ฆฌํจ https://sebastienlorber.com/atomic-css-in-js ๊ฐ์๋ง ๋ฒ์ญ ์ต๊ทผ ํ์ด์ค๋ถ๊ณผ ํธ์ํฐ์ ํ๋ก๋์ ๋ฐฐํฌ๋ฌผ๋ค์ ๋ณด๋ฉด, atmoic CSS-in-JS๋ผ๋ ์๋ก์ด ํธ๋๋๊ฐ ์ฒ์ฒํ ์ฑ์ฅํ๊ณ ์๋ค๊ณ ์๊ฐํ๋ค. ์ด ํฌ์คํธ์์ , a
https://valhead.com/2016/05/05/how-fast-should-your-ui-animations-be/ ๋ฅผ ์์ฝํจ200ms๊ฐ ์ต์์ ํ์ด๋ฐ์ด๋ผ๊ณ ์ฌ๊ฒจ์ง์ง๋ง, ์ฌ์ค ๊ทธ๋ ๊ฒ ๋จ์ํ์ง ์๋ค.ํ์ด๋ฐ์ ์ข ๋ ๋ณต์กํ๋ค.200ms ~ 500ms๋ ์ธ
https://uxdesign.cc/10-rules-of-thumb-in-ui-design-aa5f91885444 ๋ฅผ ์ ๋ฆฌ๋จ์ํ ๋ฒ์น์ ์๋๊ณ ๊ฒฝํ์ ๋์์ธ ์์ ์ ๋์์ด ๋ ๋งํ ๊ท์น๋ค์ ์ ๋ฆฌํ๋ค.์ต์ํ์ง ์๋ ๊ฒฝ์ฐ ๋ฐ๋๋ ํ๋ฉด์ด๋ ppi 1์ธ์น ๋น ํฝ์ ์
์ง๋ ์ ๋ฐ์ดํธ๋ 2018๋ 7์ 26์ผ์ด๋ค. Nozzlie.io์์ , ์ฑ๋ฅ๊ณผ ์ ์ /๊ฐ๋ฐ์ ๊ฒฝํ์ ๋งค์ฐ ์ง์งํ๊ฒ ๊ณ ๋ คํฉ๋๋ค. ์ธ๊ณ์ ์ธ ๋ฌธ์ ๋ฅผ ํผ๋ค๊ณ ์ฃผ์ฅํ๋ ๋ค๋ฅธ ์ ์ ์ฌ์ดํธ ํด๋ค์ ์ฌ์ฉํด์ ๋ช ํค์ ์ฌ์ดํธ๋ค์ ์ถ์ํ์์ต๋๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๋ ์์ง๋ ์ฐ๋ฆฌ์ ๋์ ๊ฟ์ ๋ง