๐Ÿ“• ์ •๋ฆฌ๋…ธํŠธ

@๊น€๋Œ€์™„
์•ˆ๋…•ํ•˜์„ธ์š”

AboutGitHub

Workbox๋กœ ์˜คํ”„๋ผ์ธ ํŽ˜์ด์ง€ ์ฒ˜๋ฆฌ๋ฐฉ๋ฒ•
March 26, 2021

Workbox๋กœ ์˜คํ”„๋ผ์ธ ํŽ˜์ด์ง€ ์ฒ˜๋ฆฌ๋ฐฉ๋ฒ•

Workbox๋Š” Service worker ์„ค์ •์— ๋„์›€์„ ์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€ ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‚ด์šฉ์„ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. service worker์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์„ค๋ช… Workbox ์‹œ์ž‘ํ•˜๊ธฐ ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ์ด ์—†์„๋•Œ ์˜คํ”„๋ผ์ธ ํŽ˜์ด์ง€ ๋„์šฐ๊ธฐ Service Worker๋ž€โ“ ์„œ๋น„์Šค ์›Œ์ปค๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ ์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œโ€ฆ

2020๋…„ ํšŒ๊ณ ๋ก
January 11, 2021

2020๋…„ ํšŒ๊ณ ๋ก

ํšŒ๊ณ  ์ „ ์–ด์ˆ˜์„ ํ•œ 2020๋…„์ด ๊ฐ€๊ณ  2021๋…„์ด ์™”๋‹ค. 2020๋…„์„ ๋Œ์•„ ๋ณด๋ฉด์„œ ๋‚ด๊ฐ€ ํ–ˆ๋˜๊ฒƒ๋“ค, ์•„์‰ฌ์› ๋˜ ๊ฒƒ๋“ค์„ ์ •๋ฆฌํ•ด๋ณด๋ฉฐ ์ด๋ฒˆ๋…„๋„์˜ ๋ชฉ์ ์„ ์ •๋ฆฌํ•ด ๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์งˆ๊ฒƒ์ด๋‹ค. 1์›” ํ•œ์–‘๋Œ€ERCIA ๋กœ๋ด‡์œตํ•ฉํ•™๊ณผ์— ํ•ฉ๊ฒฉํ•˜์—ฌ 20ํ•™๋ณ€ ์‹ ์ž…์ƒ์ด ๋˜์—ˆ๋‹ค. ํŠน์„ฑํ™”๊ณ ๋ฅผ ์กธ์—…ํ•œ ๋‚˜๋Š” ๋ฏธ๋ถ„, ์ ๋ถ„์— ๋Œ€ํ•œ ๊ฐœ๋…์ด ์—†์–ด์„œ ํ‡ด๊ทผ ํ›„ ์—ด์‹ฌํžˆ ์ˆ˜ํ•™์„ ๊ณต๋ถ€ํ•˜๋˜ ๊ธฐ์–ต์ด ๋‚จ๋Š”๋‹ค. 2์›” โ€ฆ

December 27, 2020

Web๊ณผ Arduino๋ฅผ Bluetooth๋กœ ํ†ต์‹ ํ•˜๊ธฐ

Web Bluetooth API? ๋ธŒ๋ผ์šฐ์ €์—์„œ Bluetooth ํ†ต์‹ ์œผ๋กœ ์ฃผ๋ณ€์žฅ์น˜์™€ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์‹คํ—˜์  ๊ธฐ์ˆ ์ด๋ฉฐ ์ผ๋ถ€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง€์›ํ•˜๊ณ  HTTPS ํ™˜๊ฒฝ์—์„œ๋งŒ ์ž‘๋™๋ฉ๋‹ˆ๋‹ค. (Chrome, Edge) ๋งŒ์•ฝ ๋ธ”๋ฃจํˆฌ์Šค ํ†ต์‹ ์ด ํ•„์š”ํ•œ๋ฐ ์•ˆ๋“œ๋กœ์ด๋“œ๋‚˜ IOS์˜ ์ง€์‹์ด ๋ถ€์กฑํ•˜๋‹ค๋ฉด Web์„ ํ†ตํ•˜์—ฌ ํ†ต์‹ ํ•˜๋Š”๊ฒƒ์€ ์–ด๋–จ๊นŒ์š”? Bluetooth ๋ชจ๋“ˆ โ€ฆ

September 15, 2020

์›น ์›Œ์ปค(Web worker)๋กœ DOM ์—…๋ฐ์ดํŠธ ๊ฐœ์„ 

์›น ์›Œ์ปค(Web worker)๋ž€? ์›น ์›Œ์ปค(Web worker)๋Š” ์Šคํฌ๋ฆฝํŠธ ์—ฐ์‚ฐ์„ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ฃผ ์‹คํ–‰ ์Šค๋ ˆ๋“œ์™€ ๋ถ„๋ฆฌ๋œ ๋ณ„๋„์˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์Šค๋ ˆ๋“œ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์›น ์›Œ์ปค๋ฅผ ํ†ตํ•ด ๋ฌด๊ฑฐ์šด ์ž‘์—…์„ ๋ถ„๋ฆฌ๋œ ์Šค๋ ˆ๋“œ์—์„œ ์ฒ˜๋ฆฌํ•˜๋ฉด ์ฃผ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ฉˆ์ถ”๊ฑฐ๋‚˜ ๋Š๋ ค์ง€์ง€ ์•Š๊ณ  ๋™์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›น ์›Œ์ปค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ๋ฐฉ์‹์œผ๋กœ๋งŒ ์ž‘๋™ ํ•  ์ˆ˜โ€ฆ

December 23, 2019

react - custom hook ์‚ฌ์šฉํ•˜๊ธฐ

์ปดํฌ๋จผํŠธ์˜ ๋กœ์ง์„ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ณ ์ฐจ ์ปดํฌ๋„ŒํŠธ(Higher-Order Components)๋ฅผ ์‚ฌ์šฉํ•ด์™”์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ custom hook์œผ๋กœ ๋” ๊ฐ„ํŽธํ•˜๊ฒŒ ์ƒํƒœ๊ด€๋ฆฌ ๋กœ์ง์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ1) React ๊ณต์‹๋ฌธ์„œ ์˜ˆ์ œ ์œ„ ์ฝ”๋“œ๋Š” ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ๋…ํ•˜์—ฌ ๋Œ“๊ธ€๋ชฉ๋ก์„ ๋ Œ๋”๋งํ•˜๋Š” CommentList ์ปดํฌ๋จผํŠธ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐ‘์—๋Š” ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŠธโ€ฆ

December 22, 2019

javascript - ๋™๊ธฐ/๋น„๋™๊ธฐ

Javascript ๋™๊ธฐ/๋น„๋™๊ธฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํ•˜๋‚˜์˜ callStack์œผ๋กœ ์š”์ฒญ์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์•„๋ž˜์™€ ๊ฐ™์€ ์ƒํ™ฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค. setTimeout์€ Web API์˜ ํ•œ ์ข…๋ฅ˜๋กœ ์ฝ”๋“œ๋ฅผ ์ผ์ •์‹œ๊ฐ„ ๋งŒํผ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ๋กœ์ง์„ ์‹คํ–‰์‹œํ‚ต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ˆœ์ฐจ์ ์œผ๋กœ๋งŒ ์ง„ํ–‰์ด ๋œ๋‹ค๋ฉด a -> b -> c ์ˆœ์œผ๋กœ ์‹คํ–‰๋˜์•ผ๋งŒ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฒฐ๊ณผ๋Š” a -> c ->โ€ฆ

December 19, 2019

React - exhaustive-deps warning ํ•ด๊ฒฐ๋ฒ•

Exhaustive-deps warning React Hook useEffect has a missing dependency: โ€˜xxxโ€™. Either include it or remove the dependency array react๋กœ ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋ฉด ํ•œ๋ฒˆ์ฏค์€ ๋ดค์„๋ฒ•ํ•œ warning์ด๋‹ค. useEffect์— ๋ˆ„๋ฝ๋œ ์ข…์†์„ฑ์ด ์žˆ์–ด ๋ฐฐ์—ด์•ˆ์— ์ข…์†์„ฑ์„ ์ถ”๊ฐ€โ€ฆ

December 16, 2019

react - useCallback, memo re-render ์ตœ์ ํ™”

React์˜ Hook ์ค‘์— useCallback๊ณผ useMemo๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ตœ์ ํ™” ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์•˜๋‹ค. React๊ฐ€ ๋ Œ๋”๋ง์„ ์‹คํ–‰ํ•˜๋Š” ํ–‰๋™ Props๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ State๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง ๋˜์—ˆ์„ ๋•Œ focueUpdate() ๋ฅผ ์‹คํ–‰ํ•˜์˜€์„ ๋•Œ ์ฃผ๋ชฉํ•ด์•ผ ๋  ์ ์€ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง ๋˜์—ˆ์„๋•Œ ์ž์‹ ์ปดํฌ๋„ŒํŠธ๊นŒ์ง€ ๋‹ค์‹œ ๋ Œ๋”๋ง์ด โ€ฆ

December 13, 2019

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ switch ๊ตฌ๋ฌธ

switch useReducer ์˜ˆ์ œ๋ฅผ ๋ณด๋˜ ๋„์ค‘ switch case์ ˆ ํ›„์— ๋ฌธ์žฅ ์ฃผ์œ„์— ์ค‘๊ด„ํ˜ธ๋ฅผ ๋„ฃ๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋‹ค์ง€ ๋‹ค๋ฅด์ง€ ์•Š๊ณ  ๋„˜์–ด ์ง€์ง€ ์•Š๋„๋ก ์ง„์ˆ ์˜ ๋ break์ด๋‚˜ return๋์—์„œ ์—ฌ์ „ํžˆ ํ•„์š” ํ•˜์ง€๋งŒ ์ค‘๊ด„ํ˜ธ๋งŒ์— ์ข‹์€ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์žฅ์  ์ค‘๊ด„ํ˜ธ๋Š” ๋ธ”๋ก scope๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ ๋œป์€ ๊ฐ case ๋งˆ๋‹ค ๋‹ค๋ฅธ ๋ธ”๋ก scopeโ€ฆ

December 09, 2019

์„ ํ˜•๋Œ€์ˆ˜ํ•™ - ๋ฒกํ„ฐ์˜ ๊ธฐ๋ณธ

Vector ๋ฐฑํ„ฐ๋Š” ํฌ๊ธฐ์™€ ๋ฐฉํ–ฅ์„ ๋™์‹œํ•ด ๋‚˜ํƒ€๋‚ธ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด ์ž๋™์ฐจ๊ฐ€ ์‹œ์† 5mps๋กœ ์›€์ง์ธ๋‹ค ํ•˜๋ฉด ์ด ์ •๋ณด๋Š” ๋ฒกํ„ฐ๊ฐ€ ์•„๋‹ˆ๋‹ค ์™œ๋ƒํ•˜๋ฉด ์ž๋™์ฐจ๊ฐ€ ์–ด๋– ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ์›€์ง์˜€๋Š”์ง€ ์•Œ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค ๋•Œ๋ฌธ์— ์ด ์ •๋ณด๋Š” ์Šค์นผ๋ผ๊ฐ€ ๋œ๋‹ค. ์ด ๊ฐ’์ด ๋ฒกํ„ฐ๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด์„  ๋ฐฉํ–ฅ์„ ์•Œ์•„์•ผ๋œ๋‹ค ์˜ˆ๋ฅผ๋“ค์–ด ์ž๋™์ฐจ๊ฐ€ ์‹œ์† 5mps๋กœ ๋™์ชฝ์œผ๋กœ ์›€์ง์ธ๋‹ค. ์ด ์ •๋ณด๋Š” ๋ฒกํ„ฐ๊ฐ€ ๋œ๋‹ค. ๊ทธ๋ž˜ํ”„โ€ฆ