2023-12 
๐ ๋งํฌ & ์ฝ์ ๊ฑฐ๋ฆฌ
2023๋ ๋ ๊ฐ๋ฐ์ ์์ฝ์์คํ ํํฉ
Jetbrains์์ ๋ฐํํ 2023 ๊ฐ๋ฐ์ ์ค๋ฌธ์กฐ์ฌ ๊ฒฐ๊ณผ์ด๋ค. ์ฌํด๋ AI ๊ด๋ จ ์ง๋ฌธ์ ์ถ๊ฐํ์ฌ ์ค๋ฌธ ๋ฒ์๋ฅผ ํ๋ํ๋ค๊ณ ํ๋ค. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด, ์ธ๊ตฌ ํต๊ณ, AI, ๋ผ์ดํ ์คํ์ผ ๋ฑ์ ํต๊ณ๋ฅผ ์ ๊ณตํ๋ค. JavaScript์ ๋ํ ๋ด์ฉ๋ ํจ๊ป ์ดํด๋ณด๋ฉด ์ฌ๋ฏธ์๋ค.
Declarative UI ์๊ฐํ๊ธฐ
๋ง์ ๊ฐ๋ฐ์๋ค์ด ์ฌ์ฉํ๋ ๊ธฐ์ ์ธ React๋ ์์ ์ Declarative ํ๋ค๊ณ ์ผ์ปซ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ํน์ Declarative UI๊ฐ ๋ฌด์์ธ์ง ์๊ณ ์๋๊ฐ? ๋ณธ ๊ธ์์ ํ์๋ Imperative์ Declarative๋ฅผ ๋น๊ตํ๊ณ , ํ๋์ Declarative UI๋ ์ด๋ป๊ฒ ๊ตฌ์ฑ๋๊ณ ํน์ง์ ๊ฐ์ง๋์ง ์ค๋ช ํ๋ค.
KLED: ํ๊ตญ์ด๋ฅผ ์ง์ํ๋ ํผ์ง ๊ฒ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
์ง๋ 2021๋ 2์ํธ์์ ํผ์ง ๋ฌธ์์ด ๊ฒ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ์ ๋ํ ๊ธ์ ์๊ฐํ ์ ์ด ์๋ค. ์ด๋ฒ์๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ์ ์์ผ ๋ '์ ๋๋ก' ๋ง๋ค์ด ๋ณด์๋ค๊ณ ํ๋ค. ํนํ ํ๊ธ๋ ๊ณ ๋ คํ์ฌ ๋ง๋ ์ ์ด ๋์ ๋๋ค.
ํผ์ง ๋ฌธ์์ด ๊ฒ์: ๋ฌธ์์ด์ ์ ํํ ์ ๋ ฅํ์ง ์์๋ ์ํ๋ ๋ฌธ์์ด์ ๊ฒ์ํ๋ ๋ฐฉ๋ฒ. (e.g. ใฑใดใ -> ๊ฐ๋จ์ญ)
MOBX + STANDARD DECORATORS
์ผ๋ง ์ MobX๊ฐ 6.11 ๋ฒ์ ์ ์ถ์ํ์๊ณ , ๊ณต์์ ์ผ๋ก '๋ค์' decorator๋ฅผ ์ง์ํ๋ค๊ณ ๋ฐํ๋ค. 3๋
์ 6.0 ๋ฒ์ ๋ฐํ ๋น์์๋ decorator ๋์ makeObservable
, makeAutoObservable
์ด๋ ๋์์ฑ
์ ์ ์ํ๋๋ฐ, ์ ๋ค์ decorator๋ฅผ ์ง์ํ๊ฒ ๋์๋์ง, ๋ ์์ผ๋ก์ ๊ณํ์ ์ด๋ค์ง ํ๋ฒ ์ดํด๋ณด์.
UI Design Tips
UI๋ฅผ ๊ตฌ์ฑ์ ๊ณ ๋ฏผํ ๋ ์ ์ฉํด ๋ณผ ์ ์๋ ์์ํ ํ๋ค์ ๋ชจ์๋ ๊ณณ์ด๋ค. ๊ฐ๋ณ๊ฒ ์ฝ์ด๋ณด๋ฉด ์ข์ ๋ฏํ๋ค.
OpenNext
Next.js๋ ์์ฌ์ ์๋น์ค์ธ Vercel์ด ์๋ ๋ค๋ฅธ ์๋ฒ๋ฆฌ์ค ํ๋ซํผ์์ ํธ์คํ ํ๋๋ก ์ ๊ณต๋์ง ์๋๋ค๋ ๊ฒ์ ์๊ณ ์๋๊ฐ?
Vercel์ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ, Node.js ์ ํ๋ฆฌ์ผ์ด์ (Next.js ์๋ฒ๋ฅผ ์คํํด ์ง์ ์๋นํ๊ฑฐ๋ ์ ์ ๋น๋๋ฅผ ์ฌ์ฉ)์ผ๋ก ์คํํด์ผ ํ๋ค. ๊ทธ๋ฌ๋ ์ด ๊ฒฝ์ฐ์๋, Vercel์ ์ฌ์ฉํ ๋์ ๋์ผํ๊ฒ ๋์ํ์ง ์๋๋ค.
OpenNext๋ Next.js ๋น๋๋ฅผ ํจํค์งํํด์ FaaS ํ๋ซํผ(ํ์ฌ๋ ASW Lambda๋ง ์ง์)์ ๋ฐฐํฌ๋๊ฒ ๋ง๋ค์ด ์ฃผ๋ ์ด๋ํฐ๋ก, ํ๋ ์์ํฌ์ ๊ตฌ์ ๋ฐ์ง ์๋ Next.js ์ฉ ์คํ ์์ค ์๋ฒ๋ฆฌ์ค ์ด๋ํฐ๋ฅผ ๋ง๋๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ค.
Building towards a new default rendering model for web applications

์ง๋ 10์ 26์ผ ๊ณต๊ฐ๋ Next.js 14์์๋ ๋น ๋ฅธ ์ด๊ธฐ ์ ์ ์๋ต์ ์ ๊ณตํ๋ ๋์ ์ฝํ ์ธ ๋ฅผ ์ํ ์ปดํ์ผ๋ฌ ์ต์ ํ๋ฅผ ์ํ PPR(Partial Prerendering) ํ๋ฆฌ๋ทฐ ์ง์์ด ์ถ๊ฐ๋์๋ค.
PPR์ ISR(Incremental Static Regeneration)์ ์ ๋ขฐ์ฑ๊ณผ ์คํผ๋, ๊ทธ๋ฆฌ๊ณ SSR(Server-Side Rendering)์ ๋์ ๊ธฐ๋ฅ์ ํผํฉํ ํตํฉ ๋ชจ๋ธ์ ์ ๊ณตํ๋ค.
PPR์ด ํ์ฑํ๋๋ฉด ๋จ์ผ React ๋ ๋๋ง ํธ๋ฆฌ์์ ๋ ๋๋ง์ด ๋ฐ์๋๋ฉฐ, <Suspense />
ย ๊ฒฝ๊ณ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ์ ์
ธ์ ์์ฑํ๋ค. fallback์ผ๋ก ์ง์ ํ ์์๋ ์ฌ์ ๋ ๋๋ง ๋๋ค.
์ฌ์ฉ์๊ฐ ํ์ด์ง๋ฅผ ๋ฐฉ๋ฌธํ๋ฉด, ์ ์ ์ ธ์ ํตํด ์ฌ์ฉ์ ์์ํ๋ฉด ์๋ฒ(์คํธ๋ฆฌ๋ฐ ์ํคํ ์ฒ๋ก ๋์ chunk๋ฅผ ๋ ๋๋ง)์ ํด๋ผ์ด์ธํธ(์คํฌ๋ฆฝํธ, ์คํ์ผ ์ํธ, ํฐํธ, ๋งํฌ์ ๋ฑ์ ํ์ฑ)๊ฐ ๋ณ๋ ฌ๋ก ์์ ํ ์ ์๊ฒ ๋๋ค.
performance.now() 2023
์ง๋ 11์ 2~3์ผ ์์คํ ๋ฅด๋ด์์ ์ด๋ฆฐ performance.now()๋ ์น ์ฑ๋ฅ์ ๋ค๋ฃจ๋ ์ฝํผ๋ฐ์ค๋ค. 14๊ฐ์ ์ธ์ ๋ค์ ํตํด ์น ์ฑ๋ฅ์ ๋ํ ์ธ์ฌ์ดํธ๋ฅผ ๋ค์ด๋ณด๊ณ ๋ฐฐ์ธ ์ ์๋ค.
ESLint: Deprecation of formatting rules
์ง๋ 11์ 3์ผ ๋ฆด๋ฆฌ์ค๋ ESLint v8.53.0์์ ํฌ๋งคํ ๊ท์น์ deprecate ์ฒ๋ฆฌ๋์๊ณ , ์ดํ v10์์ ์์ ํ ์ ๊ฑฐํ ๊ณํ์ ๋ฐํํ๋ค.
์ฃผ๋ ์ด์ ๋ก๋ ์ธ์ด์ ๋ฐ์ ์ ๋ฐ๋ฅธ ๊ตฌ๋ฌธ๋ค์ ๋ณํ์ ํ๋ ์์ํฌ(์ฃผ๋ก React)์ ์ฌ์ฉ์ด ํญ๋ฐ์ ์ผ๋ก ์ฆ๊ฐํจ์ ๋ฐ๋ผ ์คํ์ผ ๊ท์น์ ๋๊ฒฐํด ๊ด๋ฆฌํ๊ณ ์ ํ์ง๋ง, ๋ ์ด์ ์ด๋ฌํ ๋ณํ๋ค๊ณผ ์ฌ์ฉ์ ์๊ตฌ๋ฅผ ๋ฐ๋ผ์ก๊ธฐ ์ด๋ ค์์ก๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ๋ฐํ๊ณ ์๋ค.
๋์ ์ฝ๋์ ํ์์ ๊ด๋ฆฌํ๊ณ ์ ํ๋ค๋ฉด, ์ฝ๋ ํฌ๋งคํฐ์ธ Prettier ๋๋ Rust ๊ธฐ๋ฐ์ dprint๋ฅผ ์ฌ์ฉํ ๊ฒ์ ๊ถ์ฅํ๋ค.
Design Tools Survey 2023
๋งคํด ์งํ๋๋ ๋์์ธ ๋๊ตฌ ์ค๋ฌธ์กฐ์ฌ๋ก, Front-end ๊ด์ ์์ ๋ช ๊ฐ์ง ํฅ๋ฏธ๋ก์ด ๋ถ๋ถ๋ค์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ์ฟ๋ณผ ์ ์๋ค.
๊ฐ๋ น ๋์์ธ ์์คํ ์ ์ฌ์ฉํ๋์ง(๊ทธ๋ฆฌ๊ณ ๊ด๋ฆฌ๋ฅผ ์ํด ์ด๋ค ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋์ง), ๊ธฐ๋ณธ ๋๋ ๊ณ ๊ธ ํ๋กํ ํ์ ์ ๋ง๋ค ๋ ๋๊ตฌ๋ ๋ฌด์์ ํ์ฉํ๋์ง ๋ฑ ๋ค์ํ ์ธ์ฌ์ดํธ๋ฅผ ์ป์ ์ ์๋ค.
How to fix nasty circular dependency issues once and for all in JavaScript & TypeScript
ํ๋ก์ ํธ๊ฐ ์ ์ฐจ ์งํ๋ ์๋ก ํ์ผ๋ค์ด ๋ง์์ง๊ณ import
, export
๊ด๊ณ๊ฐ ๋ณต์กํด์ง๋ค. ์ด๋ฐ ๊ฒฝ์ฐ ์ด๋ค ํ ํ์ผ๊ณผ ๋ค๋ฅธ ํ์ผ์ด ์๋ก๋ฅผ ์ฐธ์กฐํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ '์ํ ์ฐธ์กฐ(circular dependency) ๋ฌธ์ '๋ผ๊ณ ํ๋๋ฐ, ์ด ๋ฌธ์ ๋ ๋๊ฐ ์์ ๋ฐ์ ์๋ฌ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๋ฅผ ์ธ์ํ๊ธฐ๋ ํด๊ฒฐํ๊ธฐ๋ ์ฝ์ง ์๋ค.
๋ณธ ๊ธ์์๋ ์ด๋ฌํ ์ํ ์ฐธ์กฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ/์๋ฐฉํ๊ธฐ ์ํ ๊ฐ๋จํ ํจํด์ ์ ์ํ๋ค.
Transition animations: a practical guide
์ ๋๋ฉ์ด์ ๊ณผ ๋ชจ์ ์ ์ ํ ๋์์ธ์ ํต์ฌ์ด์ง๋ง ์ด๊ฒ๋ค์ ๊ตฌ์ฑํ ๋ ๊ฐ์ฅ ์ ์ ํ ๊ท ํ์ ์ฐพ๊ธฐ๋ ์ฌ๊ฐ ์ฌ์ด ์ผ์ด ์๋๋ค. ์ด ๊ธ์ ์ ๋๋ฉ์ด์ ๊ณผ ๋ชจ์ ์ค์์ ํนํ Transition์ ์ค์ ์ ๋๊ณ 6๊ฐ์ง ์์น๊ณผ ๊ฐ ํญ๋ชฉ์ ๋ํ ์ธ์ธํ ์์ ๋ค์ ํจ๊ป ์ ์ํ๊ณ ์๋ค. ์ด๋ฅผ ํตํด ์ ํ ๋จ๊ณ์์ Transition ์ ๋๋ฉ์ด์ ์ ์ ์ฉํ ๋ ๊ณ ๋ คํ ๋งํ ์ฌํญ์ ๋ํ ์ธ์ฌ์ดํธ๋ฅผ ์ป์ด ๋ณด์.
๊ธ์์ ์ ์ํ๋ '๋ ๋์ ์ ํ ์ ๋๋ฉ์ด์ ์ ์ํ 6๊ฐ์ง ์์น'์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๋ถํฌ๋ช ๋(opacity)๋ก fade in ๋ฐ fade out ์ ์ฉ
- ์๋๊ฐ์ ๋ํ๊ธฐ ์ํ ์ค์ผ์ผ๋ง
- ์ผ๊ด๋ ๋ฐฉํฅ์ฑ ์ ์ง
- ์๋ ๊ท ํ ๋ง์ถ๊ธฐ
- ์ฐ์ ์์ ์ง์ , ์์ ์ง์ ๋ฐ ๊ทธ๋ฃนํํ๊ธฐ
- ๊ณต๊ฐ์ฑ ํ๋ฆฝํ๊ธฐ
๐น ํํ ๋ฆฌ์ผ
React Internals Deep Dive
React๋ฅผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์๋ ๋ง์ง๋ง React๊ฐ ๋ด๋ถ์ ์ผ๋ก ์ด๋ป๊ฒ ๋์ํ๋์ง ๊ด์ฌ์ ๊ฐ๋ ๊ฐ๋ฐ์๋ ์๊ฐ๋ณด๋ค ๋ง์ง ์๋ค. ์ด 37๊ฐ์ ๊ธ๊ณผ ์์์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ ์ด ์ฌ์ดํธ๋ React๊ฐ ๋ด๋ถ์ ์ผ๋ก ์ด๋ป๊ฒ ๋์ํ๋์ง React์ ์ค์ ์ฝ๋ ๋ ๋ฒจ์์ ์์ธํ ์ค๋ช ํด ์ค๋ค.
An Interactive Guide to CSS Grid
์ด ํํ ๋ฆฌ์ผ์์๋ CSS Grid์ ๊ธฐ๋ณธ๋ถํฐ ์ฌ์ฉ๋ฒ๊น์ง ๋ํํ ์์ ๋ก ์ค๋ช
ํ๋ ์ ์ด ๋งค๋ ฅ์ ์ด๋ค.
๋จผ์ , ์๊ฐ๋ ๊ธ์์ ํ์ฌ CSS Grid๋ caniuse ๊ธฐ์ค 97.8%์ ์ ์ ๋ฅผ ์ง์ํ๋ฉฐ, Flexbox๋ ์ด๋ณด๋ค 0.5%๋ง์ด ๋๋ค๊ณ ์ด์ผ๊ธฐํ๋ค.
CSS Grid๋ 1์ฐจ์ Flexbox๋ณด๋ค ๋ณต์กํ 2์ฐจ์ ๋ ์ด์์์ ์ฝ๊ฒ ์ ์ดํ ์ ์๋ ์์คํ
์ด๋ค.
๋๋๋ก ์ด ๋ ๊ธฐ์ ์ ํจ๊ป ์ฌ์ฉ๋์ด ๋ ๊ฐ๋ ฅํ ๋ ์ด์์์ ๋ง๋ ๋ค.
์ด์ ์ตํ๋ณด๋๋ก ํ์.
๐ฆ ์ฝ๋์ ๋๊ตฌ
SST
์ ํ๋ฆฌ์ผ์ด์ ์ด AWS ์๋น์ค๋ฅผ ์ฌ์ฉํด ์ด์๋๊ฒ ํ๊ธฐ ์ํด์ ๋จ์ํ ์ ํ๋ฆฌ์ผ์ด์ ๋ง์ ์ ๋ง๋๋ ๊ฒ์ผ๋ก ๋๋์ง ์๋๋ค. AWS์ ํ์๋ก ํ๋ ์ธํ๋ผ๋ฅผ AWS ์ฝ์์ ํตํด ๊ตฌ์ฑํด์ผ ํ๋ฉฐ, ๋ํ ๋ก์ปฌ์์ ํ ์คํธ์ ๋๋ฒ๊น ์ ํ๋ ๊ฒ๋ ์ฝ์ง ์๋ค.
SST๋ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด IDE์์ ์ง์ ๋๋ฒ๊น ๊ณผ ์น ๊ธฐ๋ฐ์ ๋์๋ณด๋๋ฅผ ์ฌ์ฉํด ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ด๋ฆฌํ๊ณ ์ฝ๋๋ก ํํ๋ AWS ์ธํ๋ผ๋ฅผ AWS CDK๋ฅผ ํตํด ์ฌ์ฉํ ์ ์๋๋ก ํ๋ค.
[์ฐธ๊ณ ] SST in 100 seconds
jsvu
jsvu๋ "JavaScript (engine) Version Updater"๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ๊ณ ์์ผ๋ฉฐ, ๋ค์ํ JavaScript ์์ง๋ค์ ์์ค๋ฅผ ์ปดํ์ผํ ํ์ ์์ด ์ต์ ๋ฒ์ ๋ค์ ์ค์นํ ์ ์๋๋ก ๋์์ฃผ๋ ๋๊ตฌ๋ค.
LLM Visualization
์ด ๋๊ตฌ๋ LLM(Large Language Model)์ด ์ค์ ๋ก ์ด๋ป๊ฒ ์๋ํ๋์ง ๊ธฐ์ด๋ถํฐ ์์๋ณผ ์ ์๋๋ก ์๊ฐํํด ๋ณด์ฌ์ฃผ๋ฉฐ, PyTorch์ ์ต์ GPT ๊ตฌํ์ธ minGPT ํ๋ก์ ํธ์์ ์๊ฐ์ ์ป์๋ค๊ณ ํ๋ค.
ํ์ต๋ณด๋ค๋ ์ถ๋ก ์ ์ด์ ์ ๋ง์ถ๊ณ ์์ผ๋ฉฐ, toy ๋ชจ๋ธ์ ๊ฐ์ค์น๋ฅผ ๋ฏธ๋ฆฌ ํ์ตํ๊ณ ์ถ๋ก ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ถ๋ ฅ์ ์์ฑํด ์ค๋ค. FE ๊ด์ ์์๋ ๋ด์ฉ ์์ฒด๋ณด๋ค๋ ๊ฐ์ด๋์ ๊ตฌํ(wasm์ ์ฌ์ฉ)๊ณผ ๊ตฌ์ฑ ์ธก๋ฉด์์ ํฅ๋ฏธ๋กญ๊ฒ ๋ณผ ์ ์์ ๊ฒ์ด๋ค.
package-majors
์ด ์น์๋น์ค ๋๊ตฌ๋ NPM ํจํค์ง๋ค์ ๋ฉ์ด์ ๋ฒ์ ๋ค์ ๋ค์ด๋ก๋๋ฅผ ์ฐจํธ๋ก ํ์ธํ ์ ์๊ฒ ํ๋ค.
๋จ์ํ ๋ค์ด๋ก๋ ์์ ์ง์คํ๋ค๊ธฐ๋ณด๋ค๋ ์ฌ์ฉ์๋ค์ด ๋ค์ ๋ฉ์ด์ ๋ฒ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋๋ฅผ ์ผ๋งํผ ํ๊ณ ์๋์ง๋ฅผ ํ์ธํ ์ ์๊ฒ ํด, ์์ ์ ์๋น์ค์์ ์ฌ์ฉ๋๋ ํจํค์ง์ ๋ฉ์ด์ ๋ฒ์ ์ผ๋ก์ ์ ๊ทธ๋ ์ด๋ ๊ณ ๋ ค ์ ์ฐธ๊ณ ์๋ฃ๋ก ํ์ฉํ ์ ์๋ค.
ts-remove-unused
์ฌ์ฉํ์ง ์๋ TypeScript ์ฝ๋๋ฅผ ์ฐพ์์ ์ญ์ ํด ์ฃผ๋ ๋๊ตฌ์ด๋ค. CLI๋ก ์คํํ ์ ์๋ค.