2020-07 
๋งํฌ & ์ฝ์๊ฑฐ๋ฆฌ
Off The Main Thread
JavaScript๋ "๋จ์ผ ์ค๋ ๋"๋ก ์คํ๋๋ฉฐ, ์ด๋ ๊ณง ํ ๊ฐ์ ์ฝ ์คํ(call stack)๊ณผ ํ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ(memory heap)์ด ์กด์ฌํจ์ ์๋ฏธํ๋ค.
๋ชจ๋ ์์ ์ด ๋ฉ์ธ ์ค๋ ๋์์ ์คํ๋๋ค๋ ๊ฒ์ ๋ง์น ๋์๋ก ํฅํ๋ ๋จ ํ๋์ ๊ธธ์ ํตํด ๋ชจ๋ ์ฐจ๋๋ค์ด ๊ทธ๊ณณ์ผ๋ก ๊ฐ๊ธฐ ์ํด ๊ธธ ์์์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ ๋ชจ์ต์ผ๋ก ๋น์ ๋ ์ ์๋ค. ์ด๋ฌํ ๋ณ๋ชฉํ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ผ๊น?
๋ฐ๋ก ๋ชจ๋ ์์ ์ ๋ฉ์ธ ์ค๋ ๋์์ ์คํํ์ง ์๋ ๊ฒ์ด๋ค. UI ๊ด๋ จ ์์ ์ด ์๋๋ผ๋ฉด, ๋ค์ดํฐ๋ธ ํ์ค API์ธ "Web Workers"๋ฅผ ์ฌ์ฉํด ๋ฉ์ธ ์ค๋ ๋ ๋ฐ์์ JavaScript๋ฅผ ์คํํ๊ณ , ๊ฐ๋ฅํ ํ ๋ชจ๋ ์ํฉ์์ ์ด๋ฅผ ์ ์ฉํ๋ ๊ฒ์ ๋ํ ํ์์ฑ์ ์ธ๊ธํ๋ ๋ด์ฉ์ ๊ธ์ด๋ค.
JavaScript Visualized
๋ค์์ 7๊ฐ ์ฃผ์ ๋ก ๊ตฌ๋ถ๋ ์ด ์๋ฆฌ์ฆ๋ ์๊ฐ์ ์ด๋ฏธ์ง์ ์ ๋๋ฉ์ด์ ์ ์ฌ์ฉํด JavaScript์ ์ธ์ด์ ํน์ฑ๊ณผ ํจ๊ป ํต์ฌ์ ์ธ ๊ฐ๋ ๋ค์ ์ฝ๊ฒ ์ดํดํ ์ ์๋๋ก ๋์์ค๋ค.
- Event Loop
- Hoisting
- Scope (Chain)
- JavaScript ์์ง
- Prototypal Inheritance
- Generators and Iterators
- Promises & Async/Await
์ด์์, SSR์ ์ฒ์์ด์ง? - ๋์ ํธ (1/3 ์งํ ์ค)
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ ์๋น์ค์ Node.js ๊ธฐ๋ฐ์ SSR์ ๋์ ํ ๊ฒฝํ๊ธฐ๋ฅผ ์๊ฐํ๋ ์ฒซ๋ฒ์งธ ๊ธ์ด๋ค.
์ด ๊ธ์ ์ด 3ํธ ์ค ์ฒซ๋ฒ์งธ "๋์ ํธ"์ผ๋ก Node.js ๊ธฐ๋ฐ์ SSR์ ๋ธ๋ก๊ทธ ์๋น์ค์ ๋์ ํ ์ด์ ์ ๋ฐฐ๊ฒฝ์ ๊ดํ ๊ธ์ด๋ค.
angular.js๋ฅผ ์ ํํ๊ณ , Full Stack Developer๋ฅผ ์งํฅํ๋ ๊ฐ๋ฐํ์ด ์? React๋ฅผ ์ ํํ๊ณ , FE ์ ๋ฌธ ์ธ๋ ฅ์ ์ก์ฑํ๊ฒ ๋์๋์ง๋ฅผ ์ค๋ช ํ๊ณ ์๋ค.
์ดํ ๋ค๋ฃฐ "๊ฐ๋ฐํธ", "์ด์ํธ"์์๋ ๋ํ๋ฏผ๊ตญ ๊ตญ๋ฏผ๋ค์ด ๋ชจ๋ ์ฌ์ฉํ๋ ๋ธ๋ก๊ทธ์ ํธ๋ํฝ์ ์ค๋นํ ๊ฒฝํ๊ณผ ์ด์ํ๋ ๋ด์ฉ์ ๋ค๋ฃฐ ์์ ์ด๋ผ ๋ค์ ํธ์ด ๋ ๊ธฐ๋๋๋ ๊ธ์ด๋ค.
Profiling React.js Performance
๋ฆฌ์กํธ์ Profiler API์ Interaction Tracing API, ๊ทธ๋ฆฌ๊ณ ๋ธ๋ผ์ฐ์ ์ User Timing API์ ์ด์ฉํ์ฌ ์ํ ์ฑ์ ๋๋๋ง ์๋์ ์ธํฐ๋์ ์๋๋ฅผ ์ด๋ป๊ฒ ์ธก์ ํ ์ ์๋์ง ์ค๋ช ํ๊ณ ์๋ค.
์ด ๊ธ์์ ๋ค๋ฃจ๋ API๋ฅผ ์ด์ฉํ๋ฉด ํ๋ฅญํ ํด๋ผ์ด์ธํธ ๋๋๋ง ๋ชจ๋ํฐ๋ง ํด๋ ์ถฉ๋ถํ ๊ตฌ์ถ ํ ์ ์๋ค.
React Production Performance Monitoring ์์๋ ์ด๋ฅผ ์ด์ฉํ Performance Monitoring ํด ๊ตฌ์ถ ์์ด๋์ด๋ฅผ ์ธ๊ธํ๊ณ ์๋ค.
CSS ์ ๋๋ฉ์ด์ ์ ์ฑ๋ฅ ์๋ ๋งํผ ์ข์์ ธ์!
Chrome DevTools์ ํตํด ์ ๋๋ฉ์ด์ ์ ์ ์ฉํ๋ CSS ์์ฑ์ ๋ฐ๋ผ ์ ๋๋ฉ์ด์ ์ด ์ด๋ป๊ฒ ์ฑ๋ฅ ์ฐจ์ด๊ฐ ๋๋์ง๋ฅผ ์์ ๋ฅผ ํตํด ๋ณด์ฌ์ฃผ๋ ๊ธ์ด๋ค.
์ด ๊ธ์ ํตํด ๊ฐ์ ์ ์ผ๋ก๋๋ง Chrome DevTools์์ ์ฑ๋ฅ์ ์ธก์ ํ๊ต ๋น๊ตํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์๋ค.
ํํ ๋ฆฌ์ผ
๋ฆฌ์กํธ ํ MVVM ์๋ฆฌ์ฆ ๊ธ (์งํ ์ค)
์ผ๋ฐ์ ์ธ ๋ฆฌ์กํธ ํ ์ ์ด์ฉํ ๊ฐ๋ฐ ํํ ๋ฆฌ์ผ์ด๊ธฐ๋ณด๋ค๋ ๋ฆฌ์กํธ์ ๋ชจ๋ธ-๋ ๋ ์์คํ ์ ์ดํดํ๊ณ ์ด๋ฅผ ์ด์ฉํ์ฌ MVVM ๋ชจ๋ธ๋ก ๊ตฌ์ถํด๋ณด๋ ํํ ๋ฆฌ์ผ ์ฑ๊ฒฉ์ ๊ธ์ด๋ค.
- 1๋ถ์์๋ ๋ฆฌ์กํธ์ ๋ชจ๋ธ-๋ ๋ ์์คํ ๊ณผ ์ฆ๋ถ ๋๋๋ง ์๊ฐ๋ฅผ ์์์ผ๋ก ๋ฆฌ์กํธ ํ ์ ๊ฐ๋ ์ ์ค๋ช ํ๊ณ ์๋ค.
- 2๋ถ์์๋ MVVM ๋ชจ๋ธ์ ๋ฐ์ธ๋๋ฅผ ๋ฆฌ์กํธ state๋ฅผ ํตํด ๊ตฌํํ๊ณ ์ปค๋งจ๋์ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์ด ๊ฐ๋ ๊ฒ์ ์ค๋ช ํ๊ณ ์๋ค.
- 3 ~ 4 ๋ถ์์๋ todo ์ฑ์ ๋ง๋ค์ด ๋ณด๋ฉด์ ๋ฆฌ์กํธ ํ ์ ๋ฏธ๋ฌํ ์ฐจ์ด์ ์ ์ดํด๋ณธ๋ค.

์ฌ๋ฏธ์๋ ์ ์ ์ด ๊ธ์์๋ ๋ฆฌ์กํธ ํจ์ํ ์ปดํฌ๋ํธ์ ํ ์ฌ์ฉ์ผ๋ก ์ธํด ๋ฐ์ํ๋ ๋ฏธ๋ฌํ ์ฐจ์ด๋ฅผ ์ ์์ ๋ ํนํ ์๊ฐ๊ณผ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ๊ณ ์๋ค. ๋ฆฌ์กํธ๋ฅผ ์ด์ฉํ์ฌ MVVM์ ๊ตฌํํ๋ ๊ฒ๋ณด๋ค ์ด ํํ ๋ฆฌ์ผ์ ํตํด ๋ฆฌ์กํธ๋ฅผ ๋ ์ ์ดํดํ ์ ์๋ ๊ณ๊ธฐ๊ฐ ๋๋ฉด ์ข๊ฒ ๋ค.
์ด ๊ธ ์ธ์ ๋ฆฌ์กํธ ํ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์๊ณ ์ถ๋ค๋ฉด ๋ค์ ๊ธ์ ์ฐธ์กฐํด ๋ณด๊ธธ ๋ฐ๋๋ค.
- A Complete Guide to useEffect [ํ๊ตญ์ด] [์์ด]
- 33 line React
API ๊ณตํตํ ๊ด๋ จ ๊ธ
- ๋ฆฌ์กํธ ์ฑ์์์ ์ค์ ์ง์ค์ API ์๋ฌ ํธ๋ค๋ง [ํ๊ตญ์ด] [์์ด]
- useFetch โ A Custom React Hook
์ฒซ๋ฒ์งธ ๊ธ์ "API ์ค๋ฅ๋ฅผ ์ด๋ป๊ฒ ์ค์์์ ๊ด๋ฆฌํ๋๊ฐ?"์ ๋ํ ๋ฌธ์ ๋ฅผ ์ค์ฌ์ผ๋ก ํ์ด๊ฐ๋ ๊ธ์ด๋ผ๋ฉด ๋๋ฒ์งธ ๊ธ์ "React Custom Hook์ ์ด๋ป๊ฒ ๋ง๋๋๊ฐ?"์ ๋ํ ๊ธ์ด๋ค.
๋ ๊ธ์ ๋ชฉ์ ์ด ๋ค๋ฅด์ง๋ง API๋ฅผ ๊ณตํตํํด๊ฐ๋ ๊ณผ์ ์ ๋ ๊ธ ๋ชจ๋ ์ธ์ ๊น๋ค.
์ฝ๋์ ๋๊ตฌ
127 Useful JavaScript Snippets You can understand in 30 seconds
127 ๊ฐ์ ์ ์ฉํ JavaScript ์ฝ๋ ์กฐ๊ฐ ๋ชจ์.
127 ๊ฐ๋ผ ๊ธด ๊ธ์ผ๊ฑฐ๋ผ ์๊ฐํ๊ฒ ์ง๋ง. ์ฝ๊ฒ ์ดํด ํ ์ ์๋ ์๊ธดํ๊ณ ๊ฐ๋จํ ์ฝ๋ ์กฐ๊ฐ๋ค์ด๋ค.
One Div iPad Pro
CSS๋ง์ผ๋ก ๊ทธ๋ฆฐ iPad Pro ์์ ์ฝ๋
audiomass.co
์๋ฒ ๊ธฐ์ ์์ด ๋ธ๋ผ์ฐ์ ์น ๊ธฐ์ ๋ง์ผ๋ก ์์ฑ์ ํธ์งํ ์ ์๋ ์น ์์ฑ ํธ์ง๊ธฐ.
Web Audio API์ WebAssembly๋ฅผ ์ด์ฉํ์ฌ ์ค๋์ค ํจ๊ณผ ์ ์ฉ๊ณผ ํธ์ง์ ๊ตฌํํ๊ณ ์๋ค.

์ฐ์ํํ ํฌ์ฝ์ค ์ฝ๋ ๋ฆฌ๋ทฐ ๋ชจ์ ๋ธ๋ก๊ทธ
์ฐ์ํ ํ์ ๋ค์ "์ฐ์ํํ
ํฌ์ฝ์ค" ์ฝ๋๋ฆฌ๋ทฐ ๋ด์ฉ์ ์ ๋ฆฌํ์ฌ ๊ณต๊ฐํ ์ฌ์ดํธ.
FrontEnd์ ์ง์ ์ ์ธ ๊ด๋ จ์ ์์ง๋ง ์ฝ๋๋ฅผ ๋ฐ๋ผ๋ณด๋ ๊ฐ๋ฐ์๋ก์ ์ฐธ๊ณ ํ๋ฉด ์ข์ ์ด์ผ๊ธฐ๋ค๋ก ๊ฐ๋ํ๋ค.
Draw.io VS Code Integration
๋ค์ด์ด๊ทธ๋จ์ ๊ทธ๋ฆฌ๊ณ ์ฝ๊ฒ ๊ณต์ ํ ์ ์๋ ๋๊ตฌ์ธ draw.io์ VS Code Extension.
๊ฐ๋ฐ๊ณผ ํจ๊ป ์ค๊ณ๋ ์ด์ VS Code ๋ด์์ ์์ ๋กญ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
