2024-01 
๐ ๋งํฌ & ์ฝ์ ๊ฑฐ๋ฆฌ
Frontend predictions for 2024

'23๋ ์ Front-end ๋ถ์ผ์์ ์ฃผ๋ชฉํ ๋งํ ํ ํด์๋ค.
SSR ์์ฅ์ ์ ์ ํ๊ณ ๋ฐ๋ช ํ๋ ค๋ ๊ณจ๋๋ฌ์, AI๋ฅผ Front-end ๊ฐ๋ฐ ์ํฌํ๋ก์ ์ผ๋ถ๋ก ํ์ฉํ๊ณ ์ ํ๋ ๋ค์ํ ์๋์ ํจ๊ป ๋ฐ๋๋ก AI๊ฐ ์ผ์๋ฆฌ๋ฅผ ๋นผ์์ง ์์๊น ํ๋ ๊ฑฑ์ , ์๋ก์ด ๋ธ๋ผ์ฐ์ (Ladybird)์ JavaScript๋ก ์์ฑ๋ Shadow ๋ธ๋ผ์ฐ์ ์์ง์ ๋ฑ์ฅ๊ณผ ๊ฐ์ด ์๋ก์ด ์๋๋ค์ด ์ด์ด์ก๋ค.
ํฌ๋ก์ค ํ๋ซํผ ์์ญ์์๋ React Native ๊ฐ์ธ(Flutter ๋ณด๋ค ์ผ์๋ฆฌ๊ฐ 6๋ฐฐ๋ ๋ง๋ค๋ ๊ฒฐ๊ณผ๋ ์๋ค)๊ฐ ์ด์ด์ก๋ค.
์ด ๊ธ์ ํตํด '23๋ Front-end ์ํ๊ณ์ ๋ณํ์ ํจ๊ป, '24๋ ์ ์ ๋ง์ ์ดํด๋ณด๊ธฐ ๋ฐ๋๋ค.
It takes 23 mins to recover after an interruption

ํ๋ฃจ ๋์ ์ผ์ ํ๋ฉด์ ์๋ง์ ์ปจํ ์คํธ ์ ํ์ด ๋ฐ์ํ๋ค. ์ฐ๊ตฌ ๊ฒฐ๊ณผ์์ ์ค๋จ๋ ์์ ์ 82%๊ฐ ๊ฐ์ ๋ ๋ค์ ์ฌ๊ฐ๋์ง๋ง, ์ด์ ์์ ์ผ๋ก ๋ณต๊ทํ๋ ๋ฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ํ๊ท 23๋ถ์ด ์์๋๋ค๊ณ ํ๋ค.
์ด๋ ์์ฐ์ฑ ๊ด์ ์์ ํฐ ์์ค์ ์ผ๊ธฐํ ์ ์๋ค. ๊ทธ๋ฌ๋ ๋ ๋ค๋ฅธ ํ ์ถ์ผ๋ก ์ปจํ
์คํธ ์ ํ์ด ๊ผญ ๋์ ๊ฒ๋ง์ ์๋๋ผ๋ ๊ฒ์ด๋ค.
์ด ๊ธ์์ ์ปจํ
์คํธ ์ ํ์ ์ฅ๋จ์ ๊ณผ, ์ด๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ช ๊ฐ์ง ์ ๋ต์ ์๊ฐํ๋ค.
What Every Developer Should Know About GPU Computing
๋๋ถ๋ถ์ ๊ฐ๋ฐ์๋ CPU ์ฉ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด์ ์๋๊ธฐ ๋๋ฌธ์ CPU์ ์์ฐจ์ ํ๋ก๊ทธ๋๋ฐ์ ๋ํด ์ ์๊ณ ์์ง๋ง, GPU์ ๋ด๋ถ ์๋ ๋ฐฉ์๊ณผ ๊ทธ ํน๋ณํ ๊ธฐ๋ฅ์ ๋ํด์๋ ์ ๋ชจ๋ฅด๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ์ง๋ 10๋ ๋์ GPU๋ ๋ฅ ๋ฌ๋์ ๋๋ฆฌ ์ฌ์ฉ๋๋ฉด์ ๊ทธ ์ค์์ฑ์ด ์์ฒญ๋๊ฒ ์ปค์ก๋ค. ์ด ๊ธ์ GPU์ ์๋ ์๋ฆฌ์ ๋ํ ๋ฐฐ๊ฒฝ์ง์์ ์ฝ์ด ๋ณผ ์ ์๋ค.
์ฐ์์ฝ 2023
์ง๋ 11์ 15์ผ ์งํ๋์๋ ์ฐ์ํํ ํฌ์ฝํผ๋ฐ์ค 2023์ ์ ์ฒด ๋ฐํ ์์์ด ๊ณต๊ฐ๋์๋ค.
- ์ฐํ์ ์๋ก์ด ๋ฐฑ์๋ ๊ฐ๋ฐ ํ์ค
- ์๋ก์ด ๋ฐฑ์๋ ํ์ค์ผ๋ก TS + NestJS ๊ฐ๋ฐ ํ๊ฒฝ์ ์ถ๊ฐํ๊ฒ ๋ ์ด์ ๋ฅผ ์๊ฐํ๋ค.
- ์ฐ์ํํ์ ๋ค์ ์๋ก์ด ๋์์ธ ์์คํ
'์ฐ์ํ๊ณต๋ฐฉ'์ ์๊ฐํฉ๋๋ค: ๊ฐ๋ฐ ํธ
- ์๋กญ๊ฒ ๋จ์ฅํ ๋์์ธ ์์คํ ์ ๊ณ์ธต ๊ตฌ์กฐ์ ์ด๋ฅผ ์ปดํฌ๋ํธ๋ก ๋น์ด๋ธ ๊ณผ์ ์ ์๊ฐํ๋ค.
- ํ๋ก ํธ์๋ ์ํ๊ด๋ฆฌ ์ค์ ํธ with React Query & Zustand
- ์ํ ๊ด๋ฆฌ์ ๋ํ ๊ณ ๋ฏผ์ React Query, Zustand๋ฅผ ์ด์ฉํด ์ด๋ป๊ฒ ํ์๋์ง ์๊ฐํ๋ค.
Database Fundamentals
์ ์๋ ํ๋ก์ ํธ์์ ์ฌ์ฉํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ํํ๋ ๊ณผ์ ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐจ์ด์ ์ ์ ๋ชจ๋ฅธ๋ค๋ ๊ฒ์ ์ค์ค๋ก ๊นจ๋ฌ์๊ณ , ๋ ๊น์ ์ดํด๋ฅผ ์ํด ๊ด๋ จ ์ฑ ๋ค์ธ Database Internals์ Designing Data-Intensive Applications์ ์ฝ๊ฒ ๋์๋ค๊ณ ํ๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ์ด๋ ํธ๊ธฐ์ฌ์ ์๊ทนํด dbeel์ด๋ผ๋ ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ง์ ๋ง๋๋ ๊ฒ์ผ๋ก ์ด์ด์ก๊ณ , ์ด ๊ธ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฝ์๋ ์ฑ ์ ๋ํ ๊ฐ๋ตํ ์์ฝ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ๊ตฌํ์ ์ค๋ช ํ๋ค.
State of Node.js Performance 2023
[๊ทธ๋ฆผ] ๋ฐฑ๋ง ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์์ผฐ์ ๋์ ๊ฒฐ๊ณผ
์ง๋ 4์, Node.js 20์ด ์ถ์๋์๊ณ , ๋ง์ ๊ฐ์ ์ด ์ด๋ค์ก๋ค. ์ด ๊ธ์ 3๊ฐ์ ์์ญ์์ ์ด์ ๋ฒ์ ๊ณผ์ ๋น๊ต ๋ฒค์น๋งํฌ๋ฅผ ํตํด ์ผ๋ง๋งํผ์ ์ฑ๋ฅ ํฅ์์ด ์ด๋ค์ก๋์ง๋ฅผ ํ ์คํธํ๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก , Node.js 20์ ์ด์ ๋ฒ์ ๊ณผ ๋น๊ตํด ํฐ ์ฑ๋ฅ ํฅ์์ ๋ณด์ฌ์ฃผ์๋ค.
[์ฐธ๊ณ ] ๊ธ์์ ์ฌ์ฉ๋ ๋ฒค์น๋งํฌ์ ์์ ๋ฐ์ดํฐ๋ ๋ค์ ์ ์ฅ์์์ ํ์ธํ ์ ์๋ค.
- https://github.com/RafaelGSS/state-of-nodejs-performance-2023
Germany & Switzerland IT Job Market Report
์ค์์ค์์ ์์๋์ด ๋ ์ผ๋ก ํ์ฅ๋ IT ์ฑ์ฉ ์ฌ์ดํธ์ธ SwissDevJobs.ch/GermanTechJobs.de์์ ๊ณต๊ฐํ ๋ ์ผ๊ณผ ์ค์์ค์ IT ์ฑ์ฉ ์์ฅ์ ๋ํ ๋ณด๊ณ ์๋ค.
6,300๊ฐ ์ด์์ ๊ธ์ฌ ๋ฐ์ดํฐ์ 12,500๊ฐ์ ์ค๋ฌธ์กฐ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ฆฌ๋์ด ์์ผ๋ฉฐ, ์ ํธ ๊ทผ๋ฌดํํ, ๊ฒฝ๋ ฅ์ ๋ฐ๋ฅธ ๊ธ์ฌ ์ ๋ณด ๋ฑ ๊ผญ ํด๋น ๊ตญ๊ฐ์ ๊ตญํํด ์ดํด๋ณด์ง ์๋๋ผ๋ ์ ๋ฐ์ ์ธ ๊ธฐ์ ์ง๊ตฐ์ ํํฉ๊ณผ ๋ค์ํ ์ ๋ณด๋ฅผ ์ป์ ์ ์๋ค.
CSS Wrapped: 2023
2023๋ ์ CSS ์์ญ์์๋ ๋ฉ์ง ํ ํด์๋ค. ์ด์ ๋ชจ๋ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ containers queries, subgrid, :has() ์ ํ์, ์๋ก์ด ์ ๊ณต๊ฐ๊ณผ ํจ์ ์ง์ ๋ฑ์ด ๊ฐ๋ฅํด์ก๋ค.
์ง๋ ํ ํด ๋์์ ๋ณํ๋ค๊ณผ ์ธ๋ถ ๋ด์ฉ๋ค์ ํ ๋ฒ์ ์ดํด๋ณผ ์ ์๋ค.
npm malware
Socket.dev์์ ์ด์ํ๋ X(๊ตฌ twitter) ๊ณ์ ์ผ๋ก, ์ค์๊ฐ์ผ๋ก NPM ๋ ์ง์คํธ๋ฆฌ์์ ํ์ง๋ ์ ์ฑ ํจํค์ง์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณตํด ์ค๋ค.
Developer essentials: JavaScript console methods
Front-end ๊ฐ๋ฐ์๋ผ๋ฉด ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ํตํ Console API๋ฅผ ์ฌ์ฉํ ๋๋ฒ๊น
์ ์ต์ํ ๊ฒ์ด๋ค.
Console API๋ console.log()
์ธ์๋ ๋ค์ํ๊ณ ์ ์ฉํ ๋ฉ์๋๋ค์ ์ ๊ณตํ๋ค. ์ด๋ค ๊ฒ๋ค์ด ์๋์ง ๊ฐ๋ณ๊ณ ๋น ๋ฅด๊ฒ ํ์ธํด ๋ณด์.
A list of JavaScript engines, runtimes, interpreters
JavaScript ์์ง๊ณผ ๋ฐํ์์ ๋ช ๊ฐ๊ฐ ์์๊น?
์ ์๊ณ ์๋ Node.js, Deno, Bun, V8, Spider Monkey, JavaScriptCore, ChakraCore ... ๋ ์๊ณ ์๋ ๊ฒ์ด ์๋๊ฐ?
TC39 - FAQ
์ปค๋ฎค๋ํฐ ๋๋ ๋ค์ํ ํ ๋ก ํ๋ซํผ์ ํตํด ๊ธฐ์ ์์ํ์ ์ ๊ธฐ๋๋ JavaScript ์ธ์ด ๊ฐ๋ฐ์ ๊ดํ FAQ ๋ฌธ์์ด๋ค.
์๋ฅผ ๋ค๋ฉด, wasm์ด JavaScript๋ฅผ ๋์ฒดํ ๊ฒ์ธ๊ฐ?, ์๋ก์ด ๋ฒ์ ์ ์ถ๊ฐํ๊ณ ๋ชจ๋ ์ค๋ฅ๋ฅผ ์์ ํ๋ ๊ฒ์ ์ด๋ค๊ฐ?, JSX ํ๊ธฐ๋ฒ์ด JavaScript์ ์ถ๊ฐ๋ ๊ฒ์ธ๊ฐ? ๋ฑ์ด ๊ทธ๋ฌํ๋ค.
Load Balancing
์๋น์ค๊ฐ ์ฑ์ฅํ๊ฒ ๋๋ฉด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ฉ์ฑ๊ณผ ํ์ฅ์ฑ์ ํ์๋ก ํ๊ฒ ๋๋ฉฐ, ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์์ธ์ ์ฌ๋ฌ ์๋ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๊ณ , ์์ฒญ๋ค์ ๋ถ์ฐ์ํจ๋ค. ์๋น์ค์ ๊ท๋ชจ์ ๋ฐ๋ผ ๋ถํ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ ์์ฒ ๋์ ์๋ฒ๊ฐ ํ์ํ ์๋ ์๋ค.
์ด ๊ธ์ ๋จ์ผ ๋ก๋ ๋ฐธ๋ฐ์๊ฐ ์ฌ๋ฌ ์๋ฒ์ HTTP ์์ฒญ์ ๋ถ์ฐํ๋ ๊ธฐ์ด์ ์ธ ๋ฐฉ๋ฒ๋ถํฐ ์ต์ ๋ก๋ ๋ฐธ๋ฐ์ฑ ์๊ณ ๋ฆฌ์ฆ๊น์ง๋ฅผ ์๊ฐ์ ์ผ๋ก ์ค๋ช ํ๋ค. ๊ฐ๋จํ ํ๋ ์ด๊ทธ๋ผ์ด๋๋ ์ ๊ณตํด, ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ ์ด๋ป๊ฒ ์์ฒญ์ด ๋ถ์ฐ๋๋์ง ์ง์ ํ์ธํด ๋ณผ ์ ์๋ค.
Web Development History
๊ฐ๋ฐ์์ ๊ด์ ์์ ์น์ ์ฃผ์ํ ์ญ์ฌ์ ๋ณ๊ณก์ ์ ์ ๋ฆฌํ ์ฌ์ดํธ๋ค.
์์ฝ๊ฒ๋ 22๋
๋ถํฐ๋ ๋ ์ด์ ์
๋ฐ์ดํธ๋์ง ์์ง๋ง, ๊ธฐ์ ์ ์ผ๋ก ํธ๊ธฐ์ฌ์ด ๋ง์์ด๋ค์๊ฒ๋ ์ ์ตํ ์ ๋ณด๋ฅผ ์ฝ์ด ๋ณผ ์ ์๋ค.
The Developer Experience Book
'๊ฐ๋ฐ์ ๊ฒฝํ'(DX)์ ์ข์ UX์ ๋น์ทํ์ง๋ง ๊ฐ๋ฐ์๋ฅผ ์ํ ๊ฒ์ผ๋ก, ์์ฐ์ฑ์ ํฅ์์ํฌ ๋ฟ๋ง ์๋๋ผ ๋ง์กฑ๋์ ์ญ๋ ๊ฐํ๋ฅผ ์ด์งํ๋ ๋๊ตฌ, API ๋ฐ ์๋น์ค๋ฅผ ๋ง๋๋ ๊ฒ์ด๋ค.
์ ์๋ Google์์ DX์ ๋ํด ๊ณ ๋ฏผํ ๊ฒฝํ์ ๋ฑํ์ผ๋ก, ์ฝ 100ํ์ด์ง ๋ถ๋์ ํตํด ๊ฐ๋ฐ์์ ์ถ์ ๋ ์ฝ๊ณ ์์ฐ์ ์ผ๋ก ๋ง๋๋ ๊ฐ๋ฐ์ ๊ฒฝํ(DX)์ ๋ณธ์ง๊ณผ DX์ ์ข์ UX ์ฌ์ด์ ์ค์ํ ๊ด๊ณ์ ๋ํด์ ์ค๋ช ํ๋ค.
๐น ํํ ๋ฆฌ์ผ
Learning Cryptography with Javascript
์๊ณ๊ฐ ์๋ช (Threshold signatures), secret sharing, KZG polynomial commitments, ์๋ ์๋ช (blind signatures), ring signatures, merkle trees, ๊ฒ์ฆ ๊ฐ๋ฅํ ๋๋ค ํจ์(verifiable random function), oblivious transfer ๋ฑ์ JavaScript ๊ตฌํ์ ํ์ต์์ฉ์ผ๋ก ์ ๊ณตํ๋ค.
SVG Tutorial
25์ผ ๋์ ํ๋ฃจ์ ํ ๊ฐ์ฉ ๊ฐ๋จํ ์ด๋ฏธ์ง๋ฅผ SVG๋ก ๋ง๋ค์ด ๋ณผ ์ ์๋ step-by-step ํํ ๋ฆฌ์ผ์ ์ ๊ณตํ๋ค.
Vue design patterns
๋ค๋ฅธ ๋ชจ๋๋ฆฌ์ ํ๋ ์์ํฌ์ ๋ฌ๋ฆฌ Vue๋ ์ ์ง์ ์ผ๋ก ์ฑํํ ์ ์๋๋ก ์ค๊ณ๋์ด ์๋ค.
์ฆ, jQuery ๋งํผ ์ฝ๊ฒ ์์ํ ์ ์์ ๋ฟ๋ง ์๋๋ผ ์ต์ ๋๊ตฌ ๋ฐ ์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํจ๊ป ์ฌ์ฉํ๋ฉด ์ ๊ตํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ๋ํ ์ ์๋ ์ ์ฌ๋ ฅ์ด ์์ผ๋ฉฐ, Vue ํจํด์ ์ดํดํ๊ณ ํ์ฉํ๋ฉด ๊น๋ํ๊ณ ํจ์จ์ ์ด๋ฉฐ ์ ์ง ๊ด๋ฆฌ๊ฐ ์ฌ์ด ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ ํฐ ๋์์ด ๋ ์ ์๋ค.
CSS trick: transition from height 0 to auto!
์ด๋ค ์์์ ์์ฑ์ height:0
์์ height:auto
๋ก ์ ํ ์, transition ์ ๋๋ฉ์ด์
์ ๋์ํ ๊น?
.accordion-body {
height: 0;
transition: 500ms height ease;
}
.accordion:hover .accordion-body {
height: auto;
}
์ ๊ฐ์ค๋ฝ๊ฒ๋, ๋ต์ "๋์ํ์ง ์๋๋ค"์ด๋ค. ๊ทธ๋ผ ์ด๋ป๊ฒ ํด๊ฒฐํ ์ ์์๊น? ๊ธ์์ ํด๋ต์ ์ฐพ์๋ณด๊ธฐ ๋ฐ๋๋ค.
Interactive Tutorials
15๊ฐ์ ๋ค์ํ ์ธ์ด๋ฅผ ๋ฐฐ์ธ ์ ์๋ ์ธํฐ๋ํฐ๋ธ ํํ ๋ฆฌ์ผ์ ์ ๊ณตํ๋ค.
์ธ์ด๋ณ๋ก ๋ถ๋ฆฌ๋ ๋๋ฉ์ธ์ ์ฌ์ดํธ๋ฅผ ์ ๊ณตํ๋ฉฐ, ํญ๋ชฉ๋ณ ์ค๋ช
๊ณผ ํ๋จ์ ์ง์ ๋ฐฐ์ด ๋ด์ฉ์ ํ
์คํธํด ๋ณผ ์ ์๋ ์งค๋งํ ํด์ฆ๋ฅผ ํตํด ํ์ต์ ์งํํ ์ ์๋ค.
- https://www.learn-js.org/
- https://www.learn-ts.org/
- https://www.learnshell.org/
Headless Component: a pattern for composing React UIs

๋๋กญ ๋ค์ด ์ปดํฌ๋ํธ์ ๋ณต์กํ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ ๋์์ ๋จ๊ณ์ ์ผ๋ก UI ๋ก์ง์ ๋ถ๋ฆฌํ๋ฉด์ ํค๋๋ฆฌ์ค ํจํด์ ์ด๋ป๊ฒ ๊ตฌํํ๋์ง ๋ฐฐ์ธ ์ ์๋ค.
๐ฆ ์ฝ๋์ ๋๊ตฌ
Explain DevTools Console errors and source code using Copilot in Edge
Edge ๋ธ๋ผ์ฐ์ ์ ๊ฐ๋ฐ์ ๋๊ตฌ์ ์ฝ์๊ณผ ์์ค ๋๊ตฌ์์ Copilot์ ํ์ฉํด ๊ธฐ๋ฅ์ ์ค๋ฅ ๋๋ ์์ค ์ฝ๋์ ๋ํ ์ดํด๋ฅผ ๋์์ฃผ๋ ์๋ก์ด ์คํ์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์๋ค.
๊ธฐ๋ฅ์ด ํ์ฑํ๋์ด ์๋ค๋ฉด ์ฝ์์ ์ค๋ฅ ๋ฉ์์ง์ Copilot ๋ฒํผ์ด ์์ฑ๋๋ฉฐ, ์์ค ๋๊ตฌ์์ ์ค๋ช ์ด ํ์ํ ์ฝ๋๋ฅผ ์ ํํ๊ณ ์ฐ์ธก ํด๋ฆญํด ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค.
๊ณต์ ๋ธ๋ก๊ทธ ๊ธ์์๋ Edge 120๋ถํฐ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ฉฐ, ์ฃผ์์ฐฝ์ ํตํด edge://flags
๋ก ์ด๋ ํ "explain DevTools with AI" ํญ๋ชฉ์ ๊ฒ์ํด ํ์ฑํํ ์ ์์์ ์๋ดํ๊ณ ์๋ค.
[์ฐธ๊ณ ] ๊ณต์ ๋ธ๋ก๊ทธ์ ์๋ด์๋ ๋ค๋ฅด๊ฒ Edge 120, 121(beta), 122(canary) ๋ฒ์ ๋ฑ์์ ์ง์ ํ์ธํด ๋ณธ ๊ฒฐ๊ณผ ํด๋น ์คํ์ ๊ธฐ๋ฅ์ ํญ๋ชฉ์ด ๋ ธ์ถ๋์ง ์์๋ค.
Heynote
๊ฐ๋ฐ์๋ฅผ ์ํ ์ ์ฉ ์คํฌ๋์น ํจ๋(์ฐ์ต์ฅ)๋ก, ๋จ์ผ ๋ฒํผ์์ ํ์ํ ๋งํผ ๋ค์ํ ๋ธ๋ญ๋ค์ ๊ตฌ๋ถํด ์ฌ์ฉํ ์ ์๋ค.
๊ฐ ๋ธ๋ญ์ ๋ค์ํ ์ธ์ด์ ํฌ๋งท์ ์ง์ํ๋ฉฐ, ๊ณ์ฐ์๋ ์ํํ ์ ์๋ค.
Oxc

Oxidation ์ปดํ์ผ๋ฌ(Oxc)๋ผ๋ Rust๋ก ์์ฑ๋ ๋ค์ํ ๋๊ตฌ๋ค์ ๋ชจ์์ ์ ๊ณตํ๋ค.
๊ธฐ๋ณธ ์ ๊ทผ์ ๋จ์ผ ํด์ฒด์ธ์ ํตํด ์ํ๊ณ์ ํ์ํ ๋๊ตฌ๋ค์ ์ ๊ณตํ๋ Biome์ Ruff์ ์ฒ ํ๊ณผ ๊ถค๋ฅผ ๊ฐ์ดํ๋ค.
WakaTime
WakaTime์ ๊ฐ๋ฐ์ ์ฌ์ฉ๋๋ ์๊ฐ์ ๊ธฐ๋กํด ๋ค์ํ ์งํ๋ฅผ ์ ๊ณตํด ์ฃผ๋ ๋๊ตฌ๋ค.
๊ฑฐ์ ๋๋ถ๋ถ์ IDE์ ์๋ํฐ ๋ฑ์ ์ง์ํ๋ฉฐ, ์ฌ์ฉ์๋ ํด๋น ๋๊ตฌ์์ ์ผ๋ง๋งํผ์ ์๊ฐ์ ์ฝ๋ ์์ฑ์ ์ฌ์ฉํ๋์ง, ์ด๋ค ์ธ์ด/ํ์ผ/ํ๋ก์ ํธ ๋ฑ์ ์ผ๋ง๋งํผ์ ์๊ฐ์ ์ฌ์ฉํ๋์ง ๋ฑ์ ์ ๋ณด๋ฅผ ์ ๊ณตํด ๊ฐ๋ฐ ์์ฐ์ฑ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋๋ฐ ๋์์ ์ค๋ค.
tastejs.com/movies
์ค๋๋ ์ํ๊ณ์๋ ์ ๋ง ๋ค์ํ ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์กด์ฌํ๋ค. ์ด๋ค์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ํ์ตํ๊ฑฐ๋ ๊ฒฝํํด ๋ณด๊ธฐ ์ํด ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ฌด์์ผ๊น?
๋ฐ๋ก ์ฝ๋๋ฅผ ํตํด ์ดํดํ๋ ๊ฒ์ด๋ค.
์ด ํ๋ก์ ํธ๋ ์ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ๋์ผํ ์๋น์ค๋ฅผ ๊ฐ๊ฐ ๋ค์ํ ํ๋ ์์ํฌ๋ก ๊ตฌํ๋ ๋ฐ๋ชจ์ ์์ค ์ฝ๋๋ฅผ ์ ๊ณตํ๋ฉฐ, ๋์ผํ ๊ฒฐ๊ณผ๋ฌผ์ด ๋ค๋ฅธ ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ด๋ป๊ฒ ๊ตฌํ๋ ์ ์๋์ง ์๋ก ๋น๊ตํด ๊ฐ๋ฉด์ ํ์ตํด ๋ณผ ์ ์๋ค.
Design Systems Database
๋ค์ํ ๋์์ธ ์์คํ
๋ค๊ณผ ๊ตฌ์ฑ ์์๋ค์ ๋๋ ํฐ๋ฆฌ ๋ณ๋ก ์ ๋ฆฌํด ์ ๊ณตํ๋ ๋์์ธ ์์คํ
๋ฐ์ดํฐ๋ฒ ์ด์ค
์ด๋ค.
StyleX
StyleX๋ Meta์์ ๊ฐ๋ฐํ ์ต์ ํ๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ํ ์คํ์ผ์ ์ ์ํ๋ CSS-in-JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค.
import * as React from 'react';
import * as stylex from '@stylexjs/stylex';
const styles = stylex.create({
root: {
width: '100%',
maxWidth: 800,
minHeight: 40,
}
});
function ReactDiv({ color, isActive, style }) {
return <div {...stylex.props(
styles.main,
// apply styles conditionally
isActive && styles.active,
// choose a style variant based on a prop
colorStyles[color],
// styles passed as props
style,
)} />;
}
image-dimensions
๋ค์ํ ๋ชจ๋ JavaScript ํ๊ฒฝ(๋ธ๋ผ์ฐ์ ์ ๋ฐํ์ - Node, Deno, Bun ๋ฑ)์์ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ๊ฐ์ ธ์ค๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค.
// Node.js example
import {createReadStream} from 'node:fs';
import {imageDimensionsFromStream} from 'image-dimensions';
const stream = createReadStream('unicorn.png');
console.log(await imageDimensionsFromStream(stream));
//=> {width: 1920, height: 1080}
joi
๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ์ ์ฌํ ๋๊ตฌ๋ก๋ Zod, Yup ๋ฑ์ด ์๋ค.
[์ฐธ๊ณ ] Yup vs. Zod vs. Joi: A Comprehensive Comparison of JavaScript Validation Libraries
@arktype/attest
๋ณต์กํ ํ์
์ ์ข
์ข
IDE์ type checking tool์ ์๋๋ฅผ ๊ฐ์์ํจ๋ค.
@arktype/attest
๋ ์ด๋ฐ ๋ณต์กํ ํ์
์ ํผํฌ๋จผ์ค๋ฅผ ์ธก์ ๋ฐ ํ
์คํธํ ์ ์๊ฒ ๋์์ค๋ค.
// benches.ts
import { bench } from '@arktype/attest';
// Combinatorial template literals often result in expensive types- let's benchmark this one!
type makeComplexType<s extends string> = s extends `${infer head}${infer tail}`
? head | tail | makeComplexType<tail>
: s;
bench('bench type', () => {
return {} as makeComplexType<'defenestration'>;
// This is an inline snapshot that will be populated or compared when you run the file
}).types([169, 'instantiations']);
# npx ts-node benches.ts
โณ attest: Analyzing type assertions...
โณ Cached type assertions
๐๏ธ Result: 177instantiations
โณ Baseline: 169instantiations
๐ Delta: +4.73%
https://tsdocs.dev/
JavaScript ํจํค์ง์ ๋ํ ํ์ ์ ์ ํ์ผ(Type Definition)์ ์ฐพ์์ฃผ๋ ์๋น์ค๋ค.
TypeScript๋ก ์์ฑ๋์ง ์์ ํจํค์ง(์ด ๊ฒฝ์ฐ, DefinitelyTyped์์ ๊ฒ์)๋ ํจํค์ง๊ฐ ๋ค๋ฅธ ํจํค์ง์์ ํ์ ์ ๋ค์ ๋ด๋ณด๋ด๋ ๊ฒฝ์ฐ์๋ ์ฐพ์์ค๋ค.