2021-04 
๋งํฌ & ์ฝ์๊ฑฐ๋ฆฌ
Finding conversations on Clubhouse
์ต๊ทผ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ์์ฑ ๊ธฐ๋ฐ์ ์์ ๋คํธ์ํฌ ์ฑ์ธ Clubhouse๋ ๋ง์ ์ด๋ค์๊ฒ ํ์๋๊ณ ์๋ค.
UX๋ FE ๊ด์ ์์๋ ๋งค์ฐ ์ฃผ์ํ ์์ญ ์ค ํ๋์ด๊ธฐ ๋๋ฌธ์, Clubhouse์ UX ์ฌ๋ก ๋ถ์์ ํตํด ์ข์ UI/UX๋ฅผ ์ ์ฉํ ์ ์๋ ์ธ์ฌ์ดํธ๋ฅผ ์ป์ ์ ์์ง ์์๊น?
Mini apps
Mini apps๋ ์ผ๋ฐ์ ์ผ๋ก 4MB ๋ด์ธ์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ฉฐ, ์คํ๋๊ธฐ ์ํ super app์ ํ์๋ก ํ๋ค. ์ด๋ค์ ์น ๊ธฐ์ (HTML, CSS, JS)์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋๋ค. (์: WeChat, Line ๋ฑ๊ณผ ๊ฐ์ ๋ฉ์ ์ ์์ ์ค์น ์์ด ๋ฐ๋ก ์คํ ๊ฐ๋ฅํ ๋ค์ํ ๋ฏธ๋ ์ฑ๋ค์ด ์ด์ ์ํ๋ค.)
๋ธ๋ผ์ฐ์ (mini apps์ ๋ฐํ์์ super app์ WebView)์์ ์ง์ ์คํ์ ๋๋ ๊ฒ์ ์๋์ง๋ง, ์น ๊ธฐ์ ์ด ์ฌ์ฉ๋๋ฏ๋ก ๋ ๋ค๋ฅธ ์๋ฏธ์์์ Front-end ๊ธฐ์ ์ฌ์ฉ ํ๋๋ผ ํ ์ ์๋ค.
์ด ๊ธ์์ Mini apps์ ๊ฐ๋ก ์ ์ธ ๋ถ๋ถ๊ณผ ๊ฐ๋ฐ์ ํ์ํ ๋๊ตฌ ๋ฐ ์ํ๊ณ ๋ฑ์ ๋ชจ๋ ํ์ด๋ณผ ์ ์๋ค.
Offline mode in Liftosaur
PWA ์ฑ์ ๊ฐ์ฅ ์ฃผ์ํ ์ด์ ์ค์ ํ๋๋ ๋ฐ๋ก ์คํ๋ผ์ธ ๋ชจ๋๋ฅผ ํ์ฑํํ ์ ์๋ค๋ ์ ์ด๋ค. ์บ์ฑ์ Service Worker๋ฅผ ํตํด ๊ตฌํ๋๋ฉฐ, ์ด๋ฏธ ์๋ง์ ํํ ๋ฆฌ์ผ๊ณผ ์ฌ๋ก๋ค์ ์จ๋ผ์ธ์์ ์ฐพ์๋ณผ ์ ์๋ค. ๊ทธ๋ฌ๋ ์บ์ฑ์ ์คํ๋ผ์ธ ๋ชจ๋๋ฅผ ๊ตฌํํ๊ธฐ ์ํ ๋น์ฐ์ ์ผ๊ฐ์ผ๋ก, ์ ๋๋ก ๋์ํ๋ ์คํ๋ผ์ธ ์ฑ์ ๋ง๋ค๊ธฐ ์ํด์ ๋ ๋ง์ ๊ณ ๋ ค์ ์์ ๋ค์ด ํ์ํ๋ค.
์ด ๊ธ์ ์ญ๋ ์ด๋ ํธ๋ํน ์ฑ์ธ Liftosaur ๊ฐ๋ฐํ์์ ์ด๋ป๊ฒ ์คํ๋ผ์ธ ๋ชจ๋ ์ง์์ ์ถ๊ฐํ๋์ง, ๊ทธ๋ฆฌ๊ณ ํ์ค์ ๊ณ ๋ ค ์ฌํญ๋ค์ด ๋ฌด์์ธ์ง ์ค๋ช ํ๋ค.
React authentication, simplified
๊ถํ ์ธ์ฆ์ ํญ์ ๋ง์ ๋ ธ๋ ฅ์ด ํ์ํ ์์ญ์ด๋ค. ์ด ๋ฌธ์์์๋ React ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ธ์ฆ(๋ฐ ์ก์ธ์ค ์ ์ด, SSO ๋ฑ)์ ๋ํ ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ์ค๋ช ํ๋ค.
๊ตฌํ/์ ์ฉ ์๋ง๋ค ์ต์ ์ํ๋ก ์ ์งํ๊ฑฐ๋ ๋ค์ ์กฐ์ฌ๊ฐ ํ์ํ ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ ๋ฐฉ์ ๋์ , ์๋์ผ๋ก ์ต์ ์ํ๋ก ์ ์ง๋๊ณ Auth0, Okta ๋ฐ ๊ธฐํ ๊ธฐ๋ฅ๋ณด๋ค ํจ์ฌ ๊ฐ๋จํ ๋์ฒด ์๋น์ค(https://userfront.com/)๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ค.
Fundamentals of Functional JavaScript
์ด ๋ฌธ์๋ JavaScript ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ จ๋ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๋ํ ๊ธฐ๋ณธ ์ฌํญ์ ์ค๋ช ํ๋ ๊ฒ๊ณผ ํจ๊ป ๋ค์์ ์ดํดํ๊ธฐ ์ํ ๋ชฉํ๋ฅผ ๊ฐ๊ณ ์๋ค.
- ํจ์๋ ๋ฌด์์ธ๊ฐ?
- ํจ์(Functions) vs ํ๋ฌ์์ (Procedures)
- ์ ์ธ์ (Declarative) vs ๋ช ๋ น์ (Imperative)
- ํจ์ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ๋ํ ์ดํด
React Component Tests for Humans
React์์ ์ ์ง๋ณด์ํ๊ธฐ ์ฌ์ด ์ปดํฌ๋ํธ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋งค์ฐ ์ด๋ ค์ด ์ผ์ด๋ค. ์ด ๊ธ์์๋ ๋ค์ ์ธ ๋จ๊ณ๋ก ์ด๋ฃจ์ด์ง ํจํด์ ํตํด ๊ฐ๋ ์ฑ์ด ์ข์ ์ปดํฌ๋ํธ ํ ์คํธ๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํ๋ค.
-
- Arrange: ์ปดํฌ๋ํธ props๋ฅผ ์ค๋นํ๋ค.
-
- Act: ์ปดํฌ๋ํธ๋ฅผ ๋ ๋ํ๊ณ ์ฌ์ฉ์์ ์ด๋ฒคํธ๋ฅผ ์ฝ๋๋ก ๋ฐ์์ํจ๋ค.
-
- Assert: ๊ธฐ๋๊ฐ์ ์ค์ ํด์ ์ปดํฌ๋ํธ๊ฐ ์ ์์ ์ผ๋ก ๋์ํ๋์ง ํ์ธํ๋ค.
Before You memo()
React์์ ์ฑ๋ฅ์ ์ต์ ํํ๊ธฐ ์ํด memo
ํน์ useMemo
๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ํ์ง๋ง Dan Abramov๋ memo
๋ฅผ ๋ฌด์์ ์ฌ์ฉํ๊ธฐ ์ ์ memo
๋ฅผ ์ฌ์ฉํ์ง ์๋ ๋๊ฐ์ง ๊ธฐ์ด์ ์ธ ์ฑ๋ฅ ์ต์ ํ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ค.
์ด ๊ธ์์ ์ค๋ช ํ๋ ํจํด์ ์ ์ฉํ๋ฉด ์ฑ๋ฅ ํฅ์ ๋ฟ๋ง ์๋๋ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ ํ๋ฆ์ ๋ ์ฝ๊ฒ ํ์ ํ ์ ์์ ๊ฒ์ด๋ค.
JavaScript: What is the meaning of this?

JavaScript์์ this
๋ ๊ต์ฅํ ๋ณต์กํ ๊ฐ๋
์ด๋ค. ์ด ๊ธ์์๋ if (โฆ) โฆ else if () โฆ else if (โฆ) โฆ
์์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ์ผ์ด์ค๋ฅผ ๋๋์ด์ this
๋ฅผ ์ค๋ช
ํ๋ค.
-
- ํ์ดํ ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
-
new
์ ํจ๊ป ํจ์/ํด๋์ค๊ฐ ํธ์ถ๋๋ ๊ฒฝ์ฐ
-
bind
๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
-
- ํธ์ถ๋๋ ์์ ์
this
๊ฐ ์ค์ ๋๋ ๊ฒฝ์ฐ
- ํธ์ถ๋๋ ์์ ์
-
- ์์ ๊ฐ์ฒด์์ ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒฝ์ฐ
-
- ํจ์ ํน์ ์์ ์ค์ฝํ๊ฐ
strict mode
๋ด์ ์๋ ๊ฒฝ์ฐ
- ํจ์ ํน์ ์์ ์ค์ฝํ๊ฐ
-
- ๊ทธ ์ธ ๊ฒฝ์ฐ
[์ฐธ๊ณ ] ํ๊ธ ๋ฒ์ญ
CSS-in-JS support in DevTools

๊ตฌ๊ธ์ Chrome 85 ๋ฒ์ ๋ถํฐ ๊ฐ๋ฐ์๋๊ตฌ์์ CSS-in-JS ํ๋ ์์ํฌ๋ฅผ ์ํ ์คํ์ผ ์์ ๊ธฐ๋ฅ์ ์ง์ํ๋ค. ๊ฐ๋ฐ์๋๊ตฌ์ ์คํ์ผ ์ฐฝ์์ ์ด๋ป๊ฒ CSS-in-JS ๊ท์น ์์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋์ง ์ค๋ช ํ๋ ๊ธ์ด๋ค.
์น ์ฑ๋ฅ ์ต์ ํ SSR + Cache ์ ์ฉ๊ธฐ

์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ๋งค์ถ์๋ ์ํฅ์ ๋ฏธ์น๋ค. ๋ํ, ๊ตฌ๊ธ์ ์ฌ์ดํธ ์์๋ฅผ ์ง์ ํ ๋ ์๋๋ฅผ ์ค์ํ ์์๋ก์ ๊ณ ๋ คํ๋ค.
์ด ๊ธ์์๋ SSR๊ณผ Cache๋ฅผ ์ ์ฉํด์ ์น ์ฑ๋ฅ์ ์ต์ ํํ ๊ฒฝํ์ ๊ณต์ ํ๊ณ ์๋ค.
How GitHub Actions renders large-scale logs

GitHub ํ๋ก์ ํธ๋ค์ ๊ฐ๋ฐ ์ํฌํ๋ก ์๋ํ๋ฅผ ๊ตฌ์ฑํ ์ ์๋ GitHub Actions์์ ๋์ฉ๋ ๋ก๊ทธ ๋ ๋๋ง ๊ฐ์ ์ ์ํ ์ฌ์ ์ ์๊ฐํ๋ค.
๋์ฉ๋์ ๋ก๊ทธ๋ฅผ ํ ๋ฒ์ ๋ ๋๋ง ํ๋ ๊ฒ์ ์ฑ๋ฅ์ ์ผ๋ก ์ข์ง ์๊ธฐ ๋๋ฌธ์, UI ๊ฐ์ํ๋ฅผ ํตํด ๋ทฐํฌํธ๋ฅผ ํตํด ๋ ธ์ถ๋๋ ์์ญ ๋ง์ ๋ ๋๋ง ํ๋ ๊ฒ๊ณผ ์ต์ 5๋ง ๋ผ์ธ์ ๊ฐ๋ ๋ก๊ทธ๋ฅผ ๋ฌธ์ ์์ด ๋ ๋๋ง ํ๋ ์์ฒด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ์ ์ด๋ฅด๊ฒ ๋ ๋ฐฐ๊ฒฝ ๋ฑ์ ์ค๋ช ํ๋ค.
Compat2021
๋ธ๋ผ์ฐ์ ๋ฒค๋๋ค์ธ Google, Mozilla ๊ทธ๋ฆฌ๊ณ Microsoft์ ๋ธ๋ผ์ฐ์ ํธํ์ฑ ์ด์ ํด๊ฒฐ์ด ์๊ธํ TOP 5 ํญ๋ชฉ๋ค์ ๋ํด 2021๋ ๋ด ํธํ์ฑ ์ด์๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์์ ํํธ๋์ญ์ ๊ตฌ์ฑํ๋๋ฐ ํฉ์ํ๋ค.
์ฐ๋ด ํด๊ฒฐํ๊ธฐ๋ก ํฉ์ํ TOP 5 ์ด์๋ค์ ์ฃผ๋ก CSS ์์ญ์ด๋ฉฐ, ๋ค์๊ณผ ๊ฐ๋ค.
- CSS Flexbox
- CSS Grid
- position: sticky
- aspect-ratio
- CSS transforms
[์ฐธ๊ณ ] Compat 2021 Dashboard๋ฅผ ํตํด ๊ฐ ๋ธ๋ผ์ฐ์ ๋ค์์์ TOP 5 ์ง์์ ๋ํ ํ ์คํธ ์ํ ์ ์๋ฅผ ํ์ธํด ๋ณผ ์ ์๋ค.
You (Might) Don't Need jQuery
React, Vue ๋ฑ์ ํ๋ฐํธ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ํ๋๋ฉด์ jQuery ์ฌ์ฉ์ ์ ์ฐจ ์ค์ด๋ค๊ณ ์๋ค. ๋ณธ ๊ธ์์๋ jQuery๊ฐ ์ ๊ณตํ๋ ๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ ๋ค์ดํฐ๋ธ๋ก์ ๋์ฒดํ๋ ๋ฐฉ๋ฒ์ ์ ์ํ๋ค.
ํจ์จ์ ์ธ ํ๋ฐํธ์๋ ์๋ฌ ํธ๋ค๋ง

์๋น์ค๋ฅผ ๊ฐ๋ฐํ ๋ ์๋ฌ ํธ๋ค๋ง์ ๋นผ๋์ ์ ์๋ ๊ด์ฌ์ฌ๋ค. React์์ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ณ ๋ คํ๋ฉด์ ํจ์จ์ ์ผ๋ก ์๋ฌ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒฝํ์ ๊ณต์ ํ ๊ธ์ด๋ค.
์ด ๊ธ์์๋ ๋ค์๊ณผ ๊ฐ์ด ์ธ ๊ฐ์ ๊ธ์ ์๋ฆฌ์ฆ๋ก ๋ฌถ์ด ์ค๋ช ํ๊ณ ์๋ค.
ํํ ๋ฆฌ์ผ
Beyond Console.log() โ Level up Your Debugging Skills

๋ธ๋ผ์ฐ์ ์ ๊ฐ๋ฐ์๋๊ตฌ๋ ๋๋ฒ๊น ํ ๋ ๋์์ด ๋๋ ์ฌ๋ฌ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๋ค.
์ด ๊ธ์์ ์ค๋ช ํ๋ ๊ฐ๋ฐ์๋๊ตฌ์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ตํ๋ฉด ๋๋ฒ๊น ๋ฅ๋ ฅ์ ํ์ธต ๋ ๋์ด์ฌ๋ฆด ์ ์์ ๊ฒ์ด๋ค.
How to Fetch Data in React: Cheat Sheet + Examples

์ด ๊ธ์ React์์ HTTP ์์ฒญ์ ํตํด ๋ฐ์ดํฐ๋ฅผ fetchํ๋ ๋ฐฉ๋ฒ ๋ค์ฏ ๊ฐ์ง๋ฅผ ์์ ์ฝ๋์ ํจ๊ป ์ค๋ช ํ๋ค.
The Ultimate CSS Grid Tutorial for Beginners (With Interactive Examples)

Grid Layout ๋ช ์ธ์ ์ฃผ์ํ ๊ธฐ๋ฅ์ ๋ง์ CodePen ์์ ์ ํจ๊ป ์ค๋ช ํ๋ค.
๊ตญ์ ํ(i18n) ์๋ํ ๊ฐ์ด๋

๊ธ๋ก๋ฒ ์๋น์ค๋ฅผ ์ง์ํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ตญ์ ํ(i18n)๋ ํ์์ ์ด๋ค. ๊ตญ์ ํ๋ฅผ ์ง์ํ ๋ ๊ฐ๋ฐ๊ณผ ๋ฒ์ญ ๊ณผ์ ์์ ๋ฐ๋ณต์ ์ธ ์๋ ์์ ์ผ๋ก ์ธํด ๊ณ ํต ๋ฐ๊ธฐ ์ฝ๋ค.
์ด ๊ฐ์ด๋์์๋ ๊ตฌ๊ธ ์คํ๋ ๋ ์ํธ์ i18next
, i18next-scanner
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ์ฌ ๋จ ๋ช๊ฐ์ ์คํฌ๋ฆฝํธ๋ก ํจ์จ์ ์ธ ํ์
๊ณผ ํ๋ก์ธ์ค ์๋ํ๋ฅผ ์ด๋ฃฌ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช
ํ๊ณ ์๋ค.
์ฝ๋์ ๋๊ตฌ
Stoxy
์น ์ปดํฌ๋ํธ๊ฐ ์ฅ์ฐฉ๋ ๋ฐ์ํ ์ํ ๊ด๋ฆฌ์ ์์คํ ์ผ๋ก, ์ํ๋ค์ ์ธ ๋ธ๋ผ์ฐ์ (in-browser)์ IndexedDB ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๋ฉฐ, ๋ง์ง๋ง ์ ๊ทผ๋ 5๊ฐ ๊ฐ์ฒด๋ค๋ง ์ธ ๋ฉ๋ชจ๋ฆฌ(in-memory)๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑ๋๋ค.
// Write
import { write } from "@stoxy/core";
write("Shoppingcart", [{ id: 123, name: "Free gift" }]);
// Read
import { read } from "@stoxy/core";
async function getItems() {
const items = await read("shoppingcart");
return items;
}
// Clear
import { clear } from "@stoxy/core";
clear("shoppingcart");
Raycast
Canvas๋ฅผ ์ฌ์ฉํ์ง ์๊ณ , React์ HTML๋ก ๊ตฌ์ฑ๋ Raycasting(๊ด์ ํฌ์ฌ) JavaScript ์์ง์ด๋ค.
[์ฐธ๊ณ ] ๋ผ์ด๋ธ ๋ฐ๋ชจ
KiwiTalk
React, Typescript๋ก ๊ฐ๋ฐ๋ ํฌ๋ก์คํ๋ซํผ ๋น๊ณต์ ์นด์นด์คํก ํด๋ผ์ด์ธํธ
github-elements
GitHub์ ์น ์ปดํฌ๋ํธ ์ปฌ๋ ์ ์ผ๋ก, ํ์ฌ 16๊ฐ์ ์ปค์คํ ์๋ฆฌ๋จผํธ๋ค์ด ์ ๊ณต๋๊ณ ์๋ค.
simple-git-hooks
Git Hook์ ๋ํ ์ฃผ์์ธ husky์ ๋นํด ์์กด์ฑ ์๋ ๊ฐ๋ฒผ์ด ์ฉ๋์ hook ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค.
ํจํค์ง ์ค์น ํ, ๊ฐ๋จํ๊ฒ package.json
์ ์ปค๋ฐ ํ
์ ์์ฑํ๋ฉด ๋๋ค. ๋ค์์ ์ปค๋ฐ ์ ์ linter๋ฅผ ์ํํ๊ณ ํธ์ ์์ ์ formatter๋ฅผ ์ํํ๋๋ก ํ๋ ์์ ๋ค.
// package.json
"simple-git-hooks": {
"pre-commit": "npx lint-staged",
"pre-push": "cd ../../ && npm run format"
}
React Dev Inspector

๋ธ๋ผ์ฐ์ ์์ React ์ปดํฌ๋ํธ๋ฅผ ํด๋ฆญํ๋ฉด ๋ก์ปฌ IDE์ ํด๋น ์ปดํฌ๋ํธ ์ฝ๋๋ก ํธ๋ฆฌํ๊ฒ ์ด๋์์ผ์ฃผ๋ ๋๊ตฌ๋ค.
Shepherd.js
์ฌ์ฉ์์๊ฒ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ฌ์ฉ๋ฒ์ ์ฝ๊ฒ ๋ณด์ฌ์ค ์ ์๋๋ก ๋์์ฃผ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค. React, Vue, Angular ๋ฑ ์ฃผ์ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ๋ฅผ ์ํ Wrapper ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ฐ๋ฐ๋์ด์๋ค.
dnd kit


React์์ ์ฌ์ฉํ ์ ์๋ ๊ฐ๋ณ๊ณ ์ฑ๋ฅ๊ณผ ํ์ฅ์ฑ์ด ์ข์ drag & drop ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค.
GUI tool to generate React-Table code for your projects
ํ์ด์ง๋ค์ด์ , ์ ๋ ฌ, ๊ฒ์, ํํฐ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๋ React ํ ์ด๋ธ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๊ฒ ํด์ฃผ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ค. ์ฌ๋ฌ ๊ธฐ๋ฅ์ ๊ฐ์ง ํ ์ด๋ธ์ ๊ฐ๋ฐํ ๋ ์์ฑ๋ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํด ์ ์ฉํ๊ฒ ํ์ฉํ ์ ์๋ค.
Svelte NodeGUI: Build Cross Platform Apps with Node and Svelte

NodeGUI๋ Qt5 ๊ธฐ๋ฐ์ ํฌ๋ก์คํ๋ซํผ ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๋๊ตฌ๋ค. NodeGUI๋ Chromium ๊ธฐ๋ฐ์ electron๋ณด๋ค CPU์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ํ์ฉํ๋ค๊ณ ์๋ ค์ ธ ์๋ค.
๊ธฐ์กด์ React์ฉ ๋ ๋๋ฌ์ธ React NodeGUI์ Vue์ฉ ๋ ๋๋ฌ์ธ Vue NodeGUI๊ฐ ์กด์ฌํ๋๋ฐ ์ต๊ทผ Svelte์ฉ ๋ ๋๋ฌ์ธ Svelte NodeGUI๊ฐ ๋ฆด๋ฆฌ์ฆ๋์๋ค.
classdiagram-ts (VS Code ํ๋ฌ๊ทธ์ธ)

TypeScript๋ก UML ํด๋์ค ๋ค์ด์ด๊ทธ๋จ์ ์๋์ผ๋ก ์์ฑํด์ฃผ๋ VS Code ํ๋ฌ๊ทธ์ธ์ด๋ค.
probe-image-size
์ด๋ฏธ์ง๋ ์น์์ ๊ฐ์ฅ ๋ง์ ๋ฆฌ์์ค๋ฅผ ์ฐจ์งํ๋ ์์ ์ค ํ๋์ด๋ค. ๋ง์ฝ, ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ง ํ์ํ ๊ฒฝ์ฐ๋ผ๋ฉด ์ด๋ฏธ์ง ์ ์ฒด๋ฅผ ๋ค์ด๋ก๋ํ๋ ๊ฒ์ ๋ญ๋น์ผ ์ ์๋ค. ํนํ๋ ํฐ ์ด๋ฏธ์ง๋ผ๋ฉด ๋๋์ฑ ๊ทธ๋ ๋ค.
์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด๋ฏธ์ง ์ ์ฒด๋ฅผ ๋ค์ด๋ก๋ํ์ง ์๊ณ , ํฌ๊ธฐ์ ์ ๋ณด๋ฅผ ์กฐํํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค.