2024-09 
π λ§ν¬ & μ½μ 거리
Google Angular Lead Sees Convergence in JavaScript Frameworks

2023λ μ΄λ Έλ dotJS μ½νΌλ°μ€μμ λ κ°(Angularμ λ΄λΆ νλ μμν¬μΈ Wiz)μ Google νλ μμν¬λ₯Ό ν΅ν©νλ μμ μ λ§‘κ² λ Angular 리λ Minko Gechevλ Angularμ Reactλ λ³Έμ§μ μΌλ‘ λμΌν νλ μμν¬λΌκ³ λ§νλ€.
Reactμ Angular λͺ¨λ μ»΄ν¬λνΈ νΈλ¦¬λ₯Ό UIμ λκΈ°ννλ λ°©μμ μμλ‘ λ€λ©°, νν μκ°μ λ°λ₯Έ μνμ λ°μμ± λλ μ νλΌκ³ λΆλ¦¬λ λμμ λν΄μ Reactλ hooksλ₯Ό ν΅ν΄, κ·Έλ¦¬κ³ Angularλ zone.jsλ₯Ό ν΅ν΄μ λ¬μ±νμ§λ§ κ²°κ΅ μ΄λ€ λͺ¨λ μ»΄ν¬λνΈ νΈλ¦¬λ₯Ό μ΅μμμμ νμλ‘ μννλ©° DOM κ³Όμ μ°¨μ΄λ₯Ό μ°Ύκ³ λ°μνλ κ²μ΄λΌ λ§νλ€.
λ°μν ν리미ν°λΈμΈ Signalsλ Ember, Solid, Vue, Svelte λ± λλ€μμ νλ μμν¬μμ λμ λμκ³ , νμ€νλ₯Ό μν λͺ μΈ(JavaScript Signals standard proposal)λ‘ μ μλκΈ°λ νλ€. κ²°κ΅ λͺ¨λ νλ μμν¬λ€μ λ€λ₯Έλ―νμ§λ§, λͺ¨λ κ°μ λ°©ν₯μΌλ‘ κ°κ³ μλ κ²μ΄ μλκΉ?
μ½νΌλ°μ€ μΈμ μ λ€μ λ§ν¬λ₯Ό ν΅ν΄ νμΈν μ μλ€.
CSS Day 2024
μ§λ 6μ 6μΌ ~ 7μΌ, λ€λλλ μμ€ν λ₯΄λ΄μμ CSS Day 2024κ° κ°μ΅λμλ€.
μ΄ 14κ°μ μΈμ μ΄ μ§νλμκ³ , ν₯λ―Έ μλ λͺ κ°μ§ μ£Όμ λ€μ λ€μκ³Ό κ°λ€.
- Web Design Engineering With the New CSS - Matthias Ott (λ°ν μ¬λΌμ΄λ)
- κ°λ ₯ν΄μ§κ³ μλ 'μλ‘μ΄ CSS'λ₯Ό νμ©νλ λ°©λ²κ³Ό μΉμ΄ κΈ°λ³Έμ μΌλ‘ κ°μ§λ μ λμ μΈ νΉμ±μ λ§κ² μ κ·Όμ±κ³Ό ν볡 νλ ₯μ±μ κ°μΆ λμμΈμ μμ§λμ΄λ§ νλ λ°©λ²μ μκ°νλ€.
- Start over-engineering your CSS - Kevin Powell
- νλ‘κ·Έλλ°(μ, CSS μμ± ν¬ν¨)μ ν λ κ³Όλνκ² μμ§λμ΄λ§ λ μ루μ μ 볡μ‘μ± μ¦κ°, κ°λ μ± μ ν, μ μ§κ΄λ¦¬ λ¬Έμ λ₯Ό μ΄λν μ μμΌλ―λ‘ νΌνλ κ²μ΄ μ’λ€. κ·ΈλΌμλ λΆκ΅¬νκ³ μ΄ μΈμ μ μ루μ μ 볡μ‘μ±μ ν¬μ©ν¨μΌλ‘μ¨ μ»μ μ μλ μ΄μ μ μμΈν λ€λ£¬λ€.
- Character Modeling in CSS - Julia Miocene
-
GitLabμ μ ν λμμ΄λμ΄μ UX μμ§λμ΄μΈ Julia Mioceneμ μμ μ μμν CSS μν°μ€νΈμ΄μ μ λλ©μ΄ν°λ‘ μκ°νλ€. μ μ λ―Έμ κ΅μ‘ μμ΄ CSS μνΈμ μ λ¬Έν΄ κ°μ μ μ λ¬νλ ννλ ₯ μλ μΊλ¦ν°λ₯Ό μ μνκ³ μλ€. 3D κ°μ²΄λ₯Ό μ μνκ³ μκ·Ό λ° λ³νκ³Ό κ°μ μμ±μ νμ©νμ¬ κΉμ΄μ μ¬μ€κ°μ ꡬννλ κ²λΆν° μμνμ¬ CSSμμ 3D μΊλ¦ν°λ₯Ό λ§λλ 5λ¨κ³ νλ‘μΈμ€λ₯Ό μμΈν μ€λͺ νλ€.
Julia Mioceneμ Codepenμμ λ€μν CSS μμ λ€μ μ§μ νμΈν΄ λ³Ό μ μλ€.
-
After a Decade of React, Is Frontend a Post-React World Now?
μ΄ κΈμμλ 2014λ OSCON 2014: React's Architecture μΈμ μ ν΅ν΄ Reactκ° λμ€μκ² μ²μ μκ°λ μ΄λ, 10λ λμ μΉ κ°λ°μ λ―ΈμΉ μν₯κ³Ό κ·Έμ λν λΉν λ° μΉνΈμ λͺ©μ리λ€μ κ°λ΅ν μκ°νλ€.
λν Astroμ Svelte κ°μ μλ‘μ΄ νλ μμν¬λ€μ VDOMμ μ¬μ©νμ§ μλ λ°©μμΌλ‘ μΉ κ°λ°μ μλ‘μ΄ λμμ μ μνλ©°, νμ¬ Reactμ κ·Έ μνκ³κ° μ¬μ ν 건μ¬ν¨μλ λΆκ΅¬νκ³ , Reactμ λν μμ‘΄λκ° κ³Όκ±°λ³΄λ€ μ€μ΄λ€κ³ μμμ μ΄μΌκΈ°νλ€.
All JavaScript talks of 2024 so farβ¦
2024λ 8μκΉμ§ κ°μ΅λ μ΄ 15κ°μ μ½νΌλ°μ€λ€μ μ£Όμ μΈμ λ€μ λͺ©λ‘μ μ΄ν΄λ³Ό μ μλ€. λͺ¨λ μ½νΌλ°μ€ μΈμ λ€ μ€ TOP 10κ³Ό ν¨κ» κ° μ½νΌλ°μ€ λ³ μΈμ λ€μ λͺ©λ‘μ μ‘°νμ κΈ°μ€μΌλ‘ μ λ ¬λμ΄ μλ€.
js1024 - winners 2024
js1024λ 15μΌ λ΄ JavaScript λλ GLSL(OpenGL Shading Language - OpenGL μ °μ΄λ© μΈμ΄)λ‘ 1024bytes λ΄μ ν¬κΈ°λ₯Ό κ°λ λ©μ§ νλ‘κ·Έλ¨μ κ°λ°νλ μ½ν μ€νΈλ€.
λ§ν¬λ₯Ό ν΅ν΄ 2024λ μ°μΉμμ κ²°κ³Όλ€μ μ΄ν΄λ³Ό μ μλ€.
Bun vs. Node.js

Bunμ Zig μΈμ΄μ JavaScript Core μμ§μ μ¬μ©ν λ°νμμΌλ‘, ν λ°νμ λλΉ λΉ λ₯Έ μ±λ₯μ μ£Όμ ν¬μΈνΈλ‘ λ΄μΈμ°κ³ μλ€. μ΄ κΈμ λ°νμμ΄ λ¬΄μμΈμ§λΆν° μμν΄ Bunκ³Ό Node.js λ²€μΉλ§ν¬(Grafana labsμ k6 μ¬μ©)λ₯Ό μννλ κ³Όμ μ λ€λ£¬λ€.
Node.js server | Bun server
:---: | :---:
|
Why NextJS Sucks
μ μλ AWS Amplifyλ₯Ό ν΅ν΄ GitHub μ μ₯μμ μ°κ²°νλ κ²λ§μΌλ‘ μ½κ² μ μ μΉμ¬μ΄νΈλ₯Ό μλΉν μ μλ€λ μ μμ Next.jsλ₯Ό μ¬μ©νλ€κ³ νλ€.
ν μ΄ νλ‘μ νΈ λ±μμ μ’μ κ²½νμ νμ§λ§, 볡μ‘ν SaaS νλ‘μ νΈμμλ μμ£Ό μΌλΆμ μ₯μ μ΄ μμ λΏμ΄λΌκ³ λ§νλ€.
Node.jsλ λ¨μΌ μ€λ λλ‘ μ΄μμ μΈ κ²½μ° μμ²μ I/O λ°μΈλ© λμ΄μΌ νλ€. λ§μ SSRμ νμλ‘ νλ 볡μ‘ν νμ΄μ§λ λμ μμ²μ μ²λ¦¬νλ κΈ°λ₯μ λ°©ν΄(λκ·λͺ¨ μμ κΈμ¦ μ μλ² μΈ‘ λ λλ§μ μ΅μ νν κ²½ν)νλ©°, λ§μ Next.js κΈ°λ₯λ€μ λΈλΌμ°μ μ μΈλΌμΈ μ€ν¬λ¦½νΈλ₯Ό μΈμ μ
ν μ μλλ‘ νμ©(Next.jsμ suspense ꡬν, appDir κΈ°λ₯, next/font
μ rootLayoutμ μμΉνλ κ²λ€)νλ©°, μ΄λ XSS 곡격μ μ·¨μ½μ±μ λ
ΈμΆμν¨λ€κ³ μ§μ νλ€.
Common Causes of Memory Leaks in JavaScript
λ©λͺ¨λ¦¬ λμλ μμν μ±λ₯μ μ νμν€κ³ μΆ©λμ μ λ°νλ©° μ΄μ λΉμ©μ μ¦κ°μν€λ μ‘°μ©ν μνμΌλ‘, λͺ λ°±ν λ²κ·Έμ λ¬λ¦¬ μ¬κ°ν λ¬Έμ λ₯Ό μΌμΌν€κΈ° μ κΉμ§λ λ―Έλ¬νκ³ λ°κ²¬νκΈ° μ΄λ €μ΄ κ²½μ°κ° λ§λ€.
μ΄ν΄λ₯Ό μν΄ V8μ νμ λ³ λ©λͺ¨λ¦¬ μ¬μ©μ μ΄ν΄νκ³ , 7κ°μ§μ λ©λͺ¨λ¦¬ λμ ν¨ν΄μ μκ°νλ€.
Announcing Official Puppeteer Support for Firefox
Puppeteer v23λΆν° Firefox μ§μ(κ·Έκ° Puppeteer μ§μμ CDP νλ‘ν μ½μ ν΅ν νμ λ κΈ°λ₯μ λν μ€νμ μ§μλ§ μ 곡)μ΄ μΆκ°λμλ€.
import puppeteer from "puppeteer";
const browser = await puppeteer.launch({
browser: "firefox"
});
μ΄ κΈμ λ¨μν μ§μμ μΆκ°λ₯Ό 곡μ νλ κ²μ λν΄ κΈ°μ μ λ°°κ²½μ ν΅ν΄ μ μ§μμ΄ λΉ λ₯΄κ² μ΄λ€μ§μ§ λͺ»νλμ§μ λν μ΄μ λ μκ°νλ€.
- κ·Έκ° λΈλΌμ°μ μλνλ 2κ°μ μ νμ§κ° μ‘΄μ¬νλ€.
- W3Cμ WebDriver API(Selenium νλ‘μ νΈ κΈ°λ°): HTTP κΈ°λ°μΌλ‘ λΈλΌμ°μ μ λͺ λ Ήμ΄λ₯Ό μ λ¬νκ³ μλ΅μ κΈ°λ€λ¦¬λ λ°©μ
- λΈλΌμ°μ λ³ API: λΈλΌμ°μ λ΄ κ°λ° λꡬμ 볡μ‘ν μ¬μ© μ¬λ‘λ₯Ό μ§μνλ λ° μ€μ μ λκ³ μ€κ³
- Chrome: Chrome Devtools Protocol(CDP)
- Gecko κΈ°λ° λΈλΌμ°μ : Remote Debugging Protocol(RDP)
λΈλΌμ°μ μλν ν΄λΌμ΄μΈνΈλ λ¨μΌ νλ‘ν μ½μ μ¬μ©ν΄ λ³΄λ€ λ§μ λΈλΌμ°μ λ₯Ό μ§μνκ³ μ νλ κΈ°λ₯μ μ 곡νκ±°λ, λλ λ νλΆν κΈ°λ₯μ μ 곡νλ μ¬λ¬ νλ‘ν μ½μ ꡬνν΄μΌ νλ μ νμ ν΄μΌ νλ€.
λΈλΌμ°μ λ³ νλ‘ν μ½λ‘ μ νλμλ μλν κΈ°λ₯ μ§ν©μ λͺ¨λ λΈλΌμ°μ μμ ꡬνν μ μλ νμ€νλ μλ‘μ΄ νλ‘ν μ½μΈ WebDriver BiDiμ κ°λ°κ³Ό Puppeteerμ μ§μμ λ°λΌ μ΄λ² μ§μμ΄ κ°λ₯ν΄μ‘λ€.
[μ°Έκ³ ] Playwrightμ κ²½μ°, WebDriver BiDiμ λν μ§μ μμ²μ λν μ΄μκ° λ±λ‘λμμ§λ§, ꡬν κ³νμ μ μ μλ μνμ΄λ€.
e18e (Ecosystem Performance)
e18e νλ‘μ νΈλ JavaScript μνκ³μ μ±λ₯ κ°μ μ μ΄μ μ κ°μ§ κ·Έλ£Ήκ³Ό κ°μΈμ νλλ‘ λͺ¨μΌλ μ΄λμ ν°λΈμ΄λ€. νμ¬ λ€μμ 3κ° μ£Όμ μμμ μ€μ μ λκ³ νλνκ³ μλ€.
- cleanup: μ’ μμ± νΈλ¦¬λ₯Ό μ 리νκ³ μνκ³ μ λ°μμ μΈκΈ° μλ λꡬμ λΌμ΄λΈλ¬λ¦¬λ₯Ό νλν
- speedup: λ§μ μ¬λμ΄ μμ‘΄νλ μνκ³μ μΌλΆ μλλ₯Ό λμΈλ€.
- levelup: μ°λ¦¬ λͺ¨λκ° μ κΈ°μ μΌλ‘ μ¬μ©νλ κΈ°μ‘΄ λꡬμ λΌμ΄λΈλ¬λ¦¬μ λν νλμ μ΄κ³ κ°λ²Όμ΄ λμμ λ¬Έμννμ¬ μ 곡
some key design decisions in Prince of Persia
λ μ λ κ²μ μ€ νλλ‘ νκ°λ°λ 'νλ₯΄μμ μμ'(1989)λ₯Ό κ°λ°νλ Jordan Mechnerκ° νλ₯΄μμ μμμ λͺ κ°μ§ λμμΈμ κ²°μ λ€μ μκ°νλ νΈμ μ€λ λλ€.
πΉ νν 리μΌ
JavaScript Visualized - Closures
μκ°νλ μμ, κ°λ¨ν ν΄μ¦, λͺ κ°μ§ μ¬μ© μ¬λ‘λ₯Ό ν΅ν΄ Closureλ₯Ό μ€λͺ νλ€.
How Postgres stores data on disk β this one's a page turner
λ°μ΄ν° λ² μ΄μ€λ κ·Έλ κ² λ³΅μ‘νμ§ μλ€. μ΄κ²μ λ¨μ§ κ°λ ₯νκ³ μ리ν μΆμνμ λΆκ³Όνλ©° λλΆλΆμ μννΈμ¨μ΄μ λ§μ°¬κ°μ§λ‘ 볡μ‘μ±μ λλΆλΆμ λμμ±μ λλ¬μΌ μ£μ§ μΌμ΄μ€μμ λΉλ‘―λλ€.
κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ μ΅μνμ§λ§ κ·Έ λ΄λΆ ꡬ쑰λ₯Ό λͺ¨λ₯΄λ μ¬λλ€κ³Ό λ°μ΄ν° λ² μ΄μ€κ° λ°μ΄ν°λ₯Ό μ΄λ»κ² μ μ₯νκ³ κ΄λ¦¬νλμ§ κΆκΈν΄νλ μ¬λλ€μ μν κΈμ΄λ€.
π¦ μ½λμ λꡬ
@sebastianwessel/quickjs
μ΄ ν¨ν€μ§λ QuickJS μμ§μ μ¬μ©νμ¬ WebAssembly μλλ°μ€ λ΄μμ JavaScript μ½λλ₯Ό μμ νκ² μ€νν μ μκ² νλ€.
μ λ’°ν μ μλ μ½λλ₯Ό μμ νκ² κ²©λ¦¬νκ³ μ€ννλ©° WebAssemblyλ‘ μ»΄νμΌλ κ°λ³κ³ λΉ λ₯Έ QuickJS μμ§μ νμ©νλ©° μ½λ μ€νμ μν κ°λ ₯ν νκ²½μ μ 곡νλ€.
CSS Grid Areas
CSS Gridλ 2017λ 3μλΆν° λͺ¨λ μ£Όμ λΈλΌμ°μ μμ μ¬μ©μ΄ κ°λ₯ν΄μ‘μ§λ§, 2024λ μ΄ λ μ§κΈκΉμ§λ Grid ν νλ¦Ώ μμ κΈ°λ₯ μ¬μ©μ λ§μ§ μλ€.
ν νλ¦Ώ μμμ λ¨μν¨κ³Ό κ°λ ₯ν κΈ°λ₯μ μκ² λλ€λ©΄ ν¨μ¬ λ μμ£Ό μ¬μ©νκ² λ κ²μ΄λ€.
PyScript
PyScriptλ λΈλΌμ°μ μμ pythonμ μ¬μ©ν μ μκ² νλ€.
κ°λ¨νκ² μλ μμμ κ°μ΄ λΈλΌμ°μ μ κ΄λ ¨ λͺ¨λμ λ‘λ©νκ³ μ€νν python μ½λλ₯Ό μμ±νλ©΄ ν°λ―Έλμ ν΅ν΄ κ²°κ³Όλ₯Ό νμΈν μ μλ€.
<head>
<link
rel="stylesheet"
href="https://pyscript.net/releases/2024.6.2/core.css"
/>
<script
type="module"
src="https://pyscript.net/releases/2024.6.2/core.js"
></script>
</head>
<body>
<script type="py" terminal>
from pyscript import display
display("Hello World!") # this goes to the DOM
print("Hello terminal") # this goes to the terminal
</script>
</body>
Blitz
Blitzλ fullstack μ± νλ μμν¬μΈ "Dioxus Native" νλ‘μ νΈλ₯Ό μ§μνκΈ° μν΄ μ μλ "λ€μ΄ν°λΈ" HTML/CSS λ λλ¬μ΄λ€. JavaScript μμ§μ΄ λ€μ΄ν°λΈ Rust APIλ‘ λ체λ κ²½λ μΉλ·°λ‘ ν¬λ‘μ€ νλ«νΌ κ·Έλν½ λΌμ΄λΈλ¬λ¦¬μΈ WGPUλ₯Ό μ¬μ©νλ€.
Verso
Versoλ Rustλ‘ μμ±λ Servo μΉ μμ§μ κΈ°λ°μΌλ‘ ꡬμΆλ μΉ λΈλΌμ°μ λ‘, Servoλ₯Ό μν μλ² λ© μ루μ μ λͺ¨μνλ κ²μ΄ λͺ©νλΌκ³ λ°νκ³ μλ€.
[μ°Έκ³ ] FE News 8μ μμμ ν΅ν΄ μκ°νλ, Ladybirdμ ν¨κ» Blitzμ Verso λͺ¨λ νμ¬μ μ£Όμ λΈλΌμ°μ λ€κ³Όλ λ€λ₯Έ μμ§(μ κ· κ°λ° λ° Servo)μ μ¬μ©νκ³ μλ€.
λ λ€λ₯Έ λΈλΌμ°μ μ μμ΄ μμλκ³ μλ κ²μΌκΉ? μμ§μ λ무 μ΄λ₯Ό μ μμ§λ§, λ€μμ± μΈ‘λ©΄μμ κΈμ μ μ΄λΌ ν μ μλ€. μ΄μ΄μ λ€μ μμλ κ°λ³κ² μ°Έκ³ ν΄ λ³΄λ©΄ μ’λ€.
Free Public APIs
κΈλ‘λ² νμ, νλμ€ μ£Όμ, μλλ± ν¬ λ°μ΄ν° λ± λ€μν μ©λμ ν μ€νΈμ κ°λ°μ μν΄ μ¬μ©ν μ μλ 200κ° μ΄μμ λ¬΄λ£ κ³΅κ³΅ API 컬λ μ μ νμΈν μ μλ€.