Workbox๋ Service worker ์ค์ ์ ๋์์ ์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๋๋ค. ์ด ๊ธ ์์๋ ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ์ ํฌํจํ๊ณ ์์ต๋๋ค. service worker์ ๋ํ ๊ฐ๋ตํ ์ค๋ช Workbox ์์ํ๊ธฐ ์ธํฐ๋ท ์ฐ๊ฒฐ์ด ์์๋ ์คํ๋ผ์ธ ํ์ด์ง ๋์ฐ๊ธฐ Service Worker๋โ ์๋น์ค ์์ปค๋ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํํ๋ ์คํฌ๋ฆฝํธ ์ ๋๋ค. ์ด ๊ธ์์โฆ
ํ๊ณ ์ ์ด์์ ํ 2020๋ ์ด ๊ฐ๊ณ 2021๋ ์ด ์๋ค. 2020๋ ์ ๋์ ๋ณด๋ฉด์ ๋ด๊ฐ ํ๋๊ฒ๋ค, ์์ฌ์ ๋ ๊ฒ๋ค์ ์ ๋ฆฌํด๋ณด๋ฉฐ ์ด๋ฒ๋ ๋์ ๋ชฉ์ ์ ์ ๋ฆฌํด ๋ณด๋ ์๊ฐ์ ๊ฐ์ง๊ฒ์ด๋ค. 1์ ํ์๋ERCIA ๋ก๋ด์ตํฉํ๊ณผ์ ํฉ๊ฒฉํ์ฌ 20ํ๋ณ ์ ์ ์์ด ๋์๋ค. ํน์ฑํ๊ณ ๋ฅผ ์กธ์ ํ ๋๋ ๋ฏธ๋ถ, ์ ๋ถ์ ๋ํ ๊ฐ๋ ์ด ์์ด์ ํด๊ทผ ํ ์ด์ฌํ ์ํ์ ๊ณต๋ถํ๋ ๊ธฐ์ต์ด ๋จ๋๋ค. 2์ โฆ
Web Bluetooth API? ๋ธ๋ผ์ฐ์ ์์ Bluetooth ํต์ ์ผ๋ก ์ฃผ๋ณ์ฅ์น์ ์ํธ์์ฉ์ ํ ์ ์์ต๋๋ค. ์ด๋ ์คํ์ ๊ธฐ์ ์ด๋ฉฐ ์ผ๋ถ ๋ธ๋ผ์ฐ์ ์์ ์ง์ํ๊ณ HTTPS ํ๊ฒฝ์์๋ง ์๋๋ฉ๋๋ค. (Chrome, Edge) ๋ง์ฝ ๋ธ๋ฃจํฌ์ค ํต์ ์ด ํ์ํ๋ฐ ์๋๋ก์ด๋๋ IOS์ ์ง์์ด ๋ถ์กฑํ๋ค๋ฉด Web์ ํตํ์ฌ ํต์ ํ๋๊ฒ์ ์ด๋จ๊น์? Bluetooth ๋ชจ๋ โฆ
์น ์์ปค(Web worker)๋? ์น ์์ปค(Web worker)๋ ์คํฌ๋ฆฝํธ ์ฐ์ฐ์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฃผ ์คํ ์ค๋ ๋์ ๋ถ๋ฆฌ๋ ๋ณ๋์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ค๋ ๋์์ ์คํํ ์ ์๋ ๊ธฐ์ ์ ๋๋ค. ์น ์์ปค๋ฅผ ํตํด ๋ฌด๊ฑฐ์ด ์์ ์ ๋ถ๋ฆฌ๋ ์ค๋ ๋์์ ์ฒ๋ฆฌํ๋ฉด ์ฃผ ์ค๋ ๋๊ฐ ๋ฉ์ถ๊ฑฐ๋ ๋๋ ค์ง์ง ์๊ณ ๋์ํ ์ ์์ต๋๋ค. ์น ์์ปค๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ฑ๊ธ ์ค๋ ๋ ๋ฐฉ์์ผ๋ก๋ง ์๋ ํ ์โฆ
์ปดํฌ๋จผํธ์ ๋ก์ง์ ์ฌ์ฌ์ฉํ๊ธฐ ์ํด์ ๊ณ ์ฐจ ์ปดํฌ๋ํธ(Higher-Order Components)๋ฅผ ์ฌ์ฉํด์์ต๋๋ค. ํ์ง๋ง custom hook์ผ๋ก ๋ ๊ฐํธํ๊ฒ ์ํ๊ด๋ฆฌ ๋ก์ง์ ๊ณต์ ํ ์ ์์ต๋๋ค. ์1) React ๊ณต์๋ฌธ์ ์์ ์ ์ฝ๋๋ ์ธ๋ถ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ๋ ํ์ฌ ๋๊ธ๋ชฉ๋ก์ ๋ ๋๋งํ๋ CommentList ์ปดํฌ๋จผํธ ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ์๋ ๋ธ๋ก๊ทธ ํฌ์คํธโฆ
Javascript ๋๊ธฐ/๋น๋๊ธฐ ์๋ฐ์คํฌ๋ฆฝํธ๋ ํ๋์ callStack์ผ๋ก ์์ฒญ์ ์์ฐจ์ ์ผ๋ก ์งํํฉ๋๋ค. ํ์ง๋ง ์๋์ ๊ฐ์ ์ํฉ์ด ์์ต๋๋ค. setTimeout์ Web API์ ํ ์ข ๋ฅ๋ก ์ฝ๋๋ฅผ ์ผ์ ์๊ฐ ๋งํผ ๊ธฐ๋ค๋ ธ๋ค๊ฐ ๋ก์ง์ ์คํ์ํต๋๋ค. ๋ง์ฝ ์์ฐจ์ ์ผ๋ก๋ง ์งํ์ด ๋๋ค๋ฉด a -> b -> c ์์ผ๋ก ์คํ๋์ผ๋ง ํฉ๋๋ค. ํ์ง๋ง ๊ฒฐ๊ณผ๋ a -> c ->โฆ
Exhaustive-deps warning React Hook useEffect has a missing dependency: โxxxโ. Either include it or remove the dependency array react๋ก ๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด ํ๋ฒ์ฏค์ ๋ดค์๋ฒํ warning์ด๋ค. useEffect์ ๋๋ฝ๋ ์ข ์์ฑ์ด ์์ด ๋ฐฐ์ด์์ ์ข ์์ฑ์ ์ถ๊ฐโฆ
React์ Hook ์ค์ useCallback๊ณผ useMemo๋ฅผ ํ์ฉํ์ฌ ์ต์ ํ ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์๋ค. React๊ฐ ๋ ๋๋ง์ ์คํํ๋ ํ๋ Props๊ฐ ๋ณ๊ฒฝ๋์์ ๋ State๊ฐ ๋ณ๊ฒฝ๋์์ ๋ ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋์์ ๋ focueUpdate() ๋ฅผ ์คํํ์์ ๋ ์ฃผ๋ชฉํด์ผ ๋ ์ ์ ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋์์๋ ์์ ์ปดํฌ๋ํธ๊น์ง ๋ค์ ๋ ๋๋ง์ด โฆ
switch useReducer ์์ ๋ฅผ ๋ณด๋ ๋์ค switch case์ ํ์ ๋ฌธ์ฅ ์ฃผ์์ ์ค๊ดํธ๋ฅผ ๋ฃ๋ ๊ฒ์ ์๊ฒ๋์์ต๋๋ค. ๊ทธ๋ค์ง ๋ค๋ฅด์ง ์๊ณ ๋์ด ์ง์ง ์๋๋ก ์ง์ ์ ๋ break์ด๋ return๋์์ ์ฌ์ ํ ํ์ ํ์ง๋ง ์ค๊ดํธ๋ง์ ์ข์ ์ฅ์ ์ด ์์ต๋๋ค. ์ฅ์ ์ค๊ดํธ๋ ๋ธ๋ก scope๋ฅผ ๋ง๋ค๊ฒ ๋ฉ๋๋ค. ๊ทธ ๋ป์ ๊ฐ case ๋ง๋ค ๋ค๋ฅธ ๋ธ๋ก scopeโฆ
Vector ๋ฐฑํฐ๋ ํฌ๊ธฐ์ ๋ฐฉํฅ์ ๋์ํด ๋ํ๋ธ๋ค. ์๋ฅผ๋ค์ด ์๋์ฐจ๊ฐ ์์ 5mps๋ก ์์ง์ธ๋ค ํ๋ฉด ์ด ์ ๋ณด๋ ๋ฒกํฐ๊ฐ ์๋๋ค ์๋ํ๋ฉด ์๋์ฐจ๊ฐ ์ด๋ ํ ๋ฐฉํฅ์ผ๋ก ์์ง์๋์ง ์ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค ๋๋ฌธ์ ์ด ์ ๋ณด๋ ์ค์นผ๋ผ๊ฐ ๋๋ค. ์ด ๊ฐ์ด ๋ฒกํฐ๊ฐ ๋๊ธฐ ์ํด์ ๋ฐฉํฅ์ ์์์ผ๋๋ค ์๋ฅผ๋ค์ด ์๋์ฐจ๊ฐ ์์ 5mps๋ก ๋์ชฝ์ผ๋ก ์์ง์ธ๋ค. ์ด ์ ๋ณด๋ ๋ฒกํฐ๊ฐ ๋๋ค. ๊ทธ๋ํโฆ