2021-10 
๋งํฌ & ์ฝ์๊ฑฐ๋ฆฌ
SELF-PARKING CAR IN 500 LINES OF CODE

Self-Parking Car Evolution ํ๋ก์ ํธ๋ ์ ์ ์๊ณ ๋ฆฌ์ฆ(Genetic Algorithm)์ ๊ธฐ๋ณธ ์๋ ์๋ฆฌ๋ฅผ ํ์ตํ๊ธฐ ์ํ ๋ชฉ์ ์ ํ๋ก์ ํธ๋ค. ์ด๋ฅผ ์ํด ์๋์ฐจ์ ์์จ ์ฃผ์ฐจ ํ์ต ๊ณผ์ ์ ํตํด ์ ๊ทผํ๋ฉฐ, ์ด ๊ธ์ 500 ๋ผ์ธ์ ์ฝ๋๋ฅผ ํตํด ์์จ์ฃผ์ฐจ ํ์ต ๊ณผ์ ์ ๋จ๊ณ๋ณ๋ก ์ค๋ช ํ๋ค.
Self-Parking Car Evolution ์๋ฎฌ๋ ์ดํฐ๋ฅผ ํตํด ๋ธ๋ผ์ฐ์ ์์ ๊ณผ์ ์ ์๋ฎฌ๋ ์ด์ ํด ๋ณผ ์ ์๋ค.
Gatsby 4 Beta released

Gatsby๋ ๋ฆฌ์กํธ์ GraphQL ๊ธฐ๋ฐ์ ์ ์ ์น์ฌ์ดํธ๋ฅผ ์์ฑํ ์ ์๋ ํ๋ ์์ํฌ๋ก 4.0 ๋ฒ ํ ๋ฒ์ ์ด ๋ฆด๋ฆฌ์ฆ๋์๋ค.
๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ๋ค์ด ์ถ๊ฐ๋์๋ค.
- Server side rendering: ์ด์ Gatsby์์๋ ๋ฐํ์์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ณ ๋ ๋ ํ ์ ์๋ค.
- Deferred static generation: ๋ชจ๋ ํ์ด์ง๋ฅผ ๋น๋ ํ์์ ์์ฑํ์ง ์๊ณ , ์ด๋ค ํ์ด์ง๋ ๋น๋ ํ์์, ์ด๋ค ํ์ด์ง๋ ๋ฐํ์์ ์์ฑ๋๋๋ก ํ ์ ์๋ค.
- Parallel processing: ๋ฉํฐํ๋ก์ธ์ฑ์ ํจ์ผ๋ก์จ SSG(Static site generation) ๋น๋ ์๊ฐ์ ํ๊ธฐ์ ์ผ๋ก ์ค์๋ค.
Interactive Learning Tools For Front-End Developers

CSS, JavaScript, ๋ฆฌ์กํธ, ์ ๊ทํํ์, SQL ๋ฑ์ ๊ฒ์๊ฐ์ด ์ฌ๋ฐ๊ฒ ํ์ตํ ์ ์๋ ์น์ฌ์ดํธ๋ค์ ๋ชจ์๋์๋ค.
React ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ Zustand์ ์ฝ๋๋ฅผ ํํค์ณ๋ณด์
TOAST UI Calendar์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๋ค๋ฃจ๋ ์ํ ๊ด๋ฆฌ ๋๊ตฌ๋ฅผ ๋ง๋ค์ด ๋ณด๋ ค๋ ๊ณผ์ ์์ ์ฐพ๊ฒ ๋ Zustand์ ๋ํด์ ์์ธํ ์๋ ค์ค๋ค. ์ Zustand๋ฅผ ์ ํํ๊ฒ ๋์๊ณ , ๊ทธ๋ฆฌ๊ณ ๋ด๋ถ ๋์์๋ฆฌ๊น์ง ์ ์ค๋ช ํด ์ฃผ๊ณ ์๋ค.
Stop Using Atomic Design

์ปดํฌ๋ํธ ๊ธฐ๋ฐ์ ์น ๊ฐ๋ฐ์ ํ๋ฉด์ ๋ง์ ์ด์ผ๊ธฐ๊ฐ ์ด๋ฃจ์ด์ง๊ณ ์ฌ์ฉ๋๋ ๊ฐ๋ ์ค์ Atomic Design์ด ์๋ค.
์ด ๊ธ์์๋ ์๋์ ์ผ๋ก ์์ํ์ง ์๊ณ , ์ ์ฉํ์ง ์๋ค๋ Atomic Design์ ๋จ์ ์ ์ค๋ช ํ๋ฉด์ ๋ณ๊ฒฝ์ ์ ์ฐํ๊ฒ ๋์ํ ์ ์๋๋ก ์ปดํฌ๋ํธ๋ฅผ ์ค๊ณํด์ผ ํ๋ค๊ณ ๋งํ๊ณ ์๋ค. ๋ค์ ๊ธ์ธ ๋ณ๊ฒฝ์ ์ ์ฐํ ์ปดํฌ๋ํธ๋ก ์ด์ด์ง๋ค.
๋ณ๊ฒฝ์ ์ ์ฐํ ์ปดํฌ๋ํธ
์ฐ๋ฆฌ๊ฐ ์์ฑํ๋ ์ํํธ์จ์ด๋ ์ง์ ๊ฐ๋ฅํด์ผ ํ๋ค. ์์ฑํ๋ ์ฝ๋๋ ์์ํ ์ ์๋ ๋ณ๊ฒฝ์ ๊ทธ๋๋ง ์ ์ฐํ๊ฒ ๋์ํ ์ ์์ด์ผ ํ๋ค.
์ด ๊ธ์์๋ ๋ค์๊ณผ ๊ฐ์ ๋ณ๊ฒฝ์ ์ ์ฐํ ์ปดํฌ๋ํธ๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ๋ก ์ ์ ์ํ๋ค.
- ์ปดํฌ๋ํธ๋ ๋ฐ์ดํฐ์ ์ญํ ์ ์ค์ฌ์ผ๋ก ์ถ์ํํ๋ค.
- ์ผ๋ฐ์ ์ธ ์ธํฐํ์ด์ค๋ก ์ปดํฌ๋ํธ๋ฅผ ์ค๊ณํ๋ค.
Performance Monitoring in GraphQL - Sentry, Apollo Server
BFF์์ GraphQL์ ์ฌ์ฉ์ ์ํด ๋ง์ ์คํ ์์ค ์ค ํ๋์ธ Apollo Server๋ฅผ ๋ง์ด ์ ํํ๋ค. ๋, Sentry๋ ์๋ฌ ํธ๋ํน ์๋น์ค๋ก FE์ ๋ชจ๋ํฐ๋ง๋ฟ๋ง ์๋๋ผ BE์ ๋ชจ๋ํฐ๋ง๋ ๊ฐ๋ฅํ๋ค. ์ด ๊ธ์์๋ Apollo Server์ Plugin ๊ธฐ๋ฅ์ ์ด์ฉํด Sentry๋ฅผ ํตํด resolver ๋จ์๋ก ์ฑ๋ฅ์ ์ธก์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์๋ดํด ์ค๋ค.
How To Study Design Patterns as a Web Developer

๋๋ถ๋ถ ๋์์ธ ํจํด์ ๋ด์ฉ์ OOP ๊ธฐ๋ฐ ์ธ์ด์ ์ํฅ์ ๋ง์ด ๋ฐ์ ๊ทธ ์์ด๋์ด์ ๋ง์ด ์ ์ด์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์ธ์ด ๊ฐ๋ฐ์์ ๋นํด class ์ฌ์ฉ์ด ์ ์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ ๊ฑฐ์ ๋๋ถ๋ถ OOP ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋ ๋ฌธ์๋ค์ด ์ด์ํ๊ฒ ๋๊ปด์ง ์ ์๋ค. ์ด์ ๋ํด ์ ์๋ ํด๋์ค์ ๊ฐ์ฒด๋ ๋๊ตฌ์ผ ๋ฟ์ด๋ฉฐ ๋์์ธ ํจํด์ ๋ฌธ์ ์ ์๋ฃจ์ ์ ์ค๋ช ํ๋ค๋ ๊ฒ ๊ทธ ์์ฒด์์ ๊ฐ์กฐํ๋ฉด์, ํจํด์ ์ ์ฉํ๊ณ ํจ์ํ์ผ๋ก ๋ฐ์ ์ํค๋ ๊ณผ์ ์ ์์๋ก ์์ธํ๊ฒ ๋ณด์ฌ์ค๋ค.
Does for-loop Nesting Order Affect Performance?
์ค์ฒฉ for loop์์ ์์์ ๋ฐ๋ผ ์ฑ๋ฅ์ด ๋ฌ๋ผ์ง ์ ์์๊น? ๊ฒฐ๋ก ๋ถํฐ ๋งํ๋ฉด loop ํ์๊ฐ ๋ง์ for loop๋ฅผ ์์ชฝ์ ์์น์ํฌ์๋ก ์ฑ๋ฅ์ด ์ข๋ค๊ณ ํ๋ค. ์ค๋ฌด์์๋ ์ด๋ฐ ๊ฒฝ์ฐ๊ฐ ๊ฑฐ์ ๋ฐ์ํ์ง ์๊ฒ ์ง๋ง ์ฐธ๊ณ ์ฉ์ผ๋ก ๋ด๋๋ฉด ์ข์ ๋ฏํ๋ค.
ํํ ๋ฆฌ์ผ
The Super Tiny Compiler

์ฝ๊ธฐ ์ฌ์ด JavaScript๋ก ์์ฑ๋ ํ๋ ์ปดํ์ผ๋ฌ์ ์ฃผ์ ๋ถ๋ถ๋ค์ ๋ํด ๋งค์ฐ ๊ฐ๋จํ๊ฒ ์์ฑ๋ ์์ ๋ค. ์ฝ๋์ ์ฝ๋ ๋ด์ ์ฃผ์์ ํตํด ํ๋ ์ปดํ์ผ๋ฌ๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง ํ์ตํ ์ ์๋ค.
์ค๋น๊ฐ ๋์๋ค๋ฉด, 1k ๋ผ์ธ์ ์ฝ๋๋ฅผ ํตํด ํ์ต์ ์์ํ ์ ์๋ค.
A JavaScript developerโs guide to browser cookies

๋ธ๋ผ์ฐ์ ์์ ์ฟ ํค ์๋ ๋ฐฉ์, ํด๋ผ์ด์ธํธ์ ์๋ฒ์์ ์ฟ ํค์ ์ก์ธ์คํ๊ณ ์กฐ์ํ ์ ์๋ ๋ฐฉ๋ฒ, ๋ธ๋ผ์ฐ์ ์ ์์ฑ์ ์ฌ์ฉํ์ฌ ์ฟ ํค์ ๊ฐ์์ฑ์ ์ ์ดํ๊ณ ์ฟ ํค๋ฅผ ๋ณด๋ค ์์ ํ๊ฒ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํ๋ค.
How to use React Context like a pro
๋ฆฌ์กํธ์ ๋ด์ฅ Context API๋ ํ์ฌ ๋งค์ฐ ์ ์ฉํ๊ฒ ์ฐ์ด๊ณ ์๋ค.
์ด ๊ธ์์๋ Context API๋ฅผ ํ๋ก์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ ์ฌ๋ฌ ํจํด์ ์ฝ๋์ ํจ๊ป ์ค๋ช ํ๋ค.
Event Bubbling and Event Catching in JavaScript and React โ A Beginner's Guide

์ด ํํ ๋ฆฌ์ผ์ JavaScript์ ๋ฆฌ์กํธ์์ ์ด๋ฒคํธ ์ ํ๊ฐ ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๋์ง ์ดํดํ๊ธฐ ์ฝ๊ฒ ์ค๋ช ํ ๊ธ์ด๋ค.
์ฝ๋์ ๋๊ตฌ
Partytown

์คํ์ ๋๊ตฌ์ธ Partytown์ AngularJS๋ฅผ ๊ฐ๋ฐํ๋ Miลกko Hevery๊ฐ CTO๋ก ์ผํ๊ณ ์๋ Builder.io์์ ๊ฐ๋ฐํ lazy ๋ก๋ฉ๋๋ 6kb์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ๋ฆฌ์์ค๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ์คํฌ๋ฆฝํธ(๋๋ ์๋ํํฐ)๋ฅผ web worker์ ์ฌ๋ฐฐ์นํด ๋ฉ์ธ ์ค๋ ๋ ๋ถ๋ด์ ๋์ด์ฃผ๊ณ ์ฌ๋ฌ๋ถ์ ์ฝ๋๊ฐ ๋น ๋ฅด๊ฒ ์คํ๋ ์ ์๋๋ก ๋ง๋ค์ด ์ค ์ ์๋ค.
์ด๋ป๊ฒ ๋์ํ ๊น?
- ์คํฌ๋ฆฝํธ๋ค์ ๋ฉ์ธ ์ค๋ ๋์์ ์คํ๋์ง ์๋๋ก
type="text/partytown"
์ผ๋ก ์ค์ - Service Worker์
onfetch
ํธ๋ค๋ฌ ์ค์ ์ ํตํด ํน์ ์์ฒญ์ ๊ฐ๋ก์ฑ๊ฒ ํ๋ค. - Worker ์ค๋ ๋ ๋ด์์ ์คํ๋ ์คํฌ๋ฆฝํธ๊ฐ Web Worker์๊ฒ ์ ๋ฌ
- Web Worker๋ JavaScript Proxy๋ค์ ์์ฑํด ๋ฉ์ธ ์ค๋ ๋ API(DOM ์กฐ์ ๋ฑ์) ํธ์ถ์ ๋ณต์ ํ๊ณ ์ ๋ฌํ๋ค.
- JS ํ๋ก์์ ๋ํ ์์ฒญ์ ๋๊ธฐ XHR ํธ์ถ์ ์ฌ์ฉ
- Service Worker๋ ์์ฒญ์ ๊ฐ๋ก์ฑ ๋ค์, ๋ฉ์ธ ์ค๋ ๋์ ๋น๋๊ธฐ ํต์ ์ ํ๋ค.
- ์ดํ, Service Worker๊ฐ ๋ฉ์ธ ์ค๋ ๋๋ก๋ถํฐ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฌ๋ฐ์ Web Worker ์์ฒญ์ ์๋ตํ๋ค.
- Web Worker์์ ์คํ๋๋ ์ฝ๋ ๊ด์ ์์ ๋ณธ๋ค๋ฉด, ๋ชจ๋ ๊ฒ์ ๋๊ธฐํ๋์๊ณ , ๊ทธ๋ฆฌ๊ณ ๊ฐ๊ฐ์ document ํธ์ถ์ ์ฐจ๋จ๋์๋ค.
๋ณด๋ค ์์ธํ ๋ด์ฉ์ ๋ค์ ๋งํฌ๋ค์ ์ฐธ๊ณ ํ๋ผ.
Theatre.js

์น์์ ์ฌ์ฉํ ์ ์๋ ๋ชจ์ ๋์์ธ ์๋ํฐ๋ก ํ๋ก๊ทธ๋จ์ ์ผ๋ก ๋๋ ์๊ฐ์ ๋๊ตฌ๋ฅผ ํตํด ํธ์งํ ์ ์๋ค.
์จ๋ผ์ธ ๋ฐ๋ชจ ์ข์ธก ํ๋จ์ ๋ฒํผ์ ํด๋ฆญํด ๋น์ฃผ์ผ ํธ์ง ๋๊ตฌ๋ฅผ ์ด ์ ์๋ค.
Ackee: A Self-Hosted, Node-Based Web Analytics Tool

Ackee๋ Node.js ๊ธฐ๋ฐ์ ์น์ฌ์ดํธ์ ํธ๋ํฝ์ ๋ถ์ํ๊ณ ์ ์ฉํ ํต๊ณ๋ฅผ ์ ๊ณตํด์ฃผ๋ ๋๊ตฌ๋ค.
์ง์ ํธ์คํ ํ ์ ์์ผ๋ฉฐ ์ฌ๋ฌ ํ๊ฒฝ์์ ์ค์นํ ์ ์๋ ๊ฐ์ด๋๋ฅผ ์ ๊ณตํ๊ณ ์๋ค.
Tasuku (ใฟในใฏ): A Minimal Task Runner for Node

Tasuku๋ Node.js๋ฅผ ์ํ ํ์คํฌ ๋ฌ๋๋ค.
ํ์คํฌ๋ฅผ ๋ผ๋ฒจ๋ง ํ ์ ์๊ณ , ์ฑ๊ณต, ์คํจ, ๋ก๋ฉ ์ค ๋ฑ์ ์ํ๋ฅผ ํฐ๋ฏธ๋์ ํ์ํ ์ ์๋ค.