2020-09
๋งํฌ & ์ฝ์๊ฑฐ๋ฆฌ
JavaScript ๋ฒ๋ค๋ฌ๋ก ๋ณธ ์กฐ์ ์๋ ๋ถ๋น์ ์ดํด
Javascript์ ๋ชจ๋์์คํ ๊ณผ ๋ฒ๋ค๋ฌ๋ ์ข ๋ฅ๋ ๋ง๊ณ ๋ฐฉ์๋ ๋ฌ๋ผ์ ์ฒ์ ์ง์ ํ๋๋ฐ ์ด๋ ค์์ด ์๋ค.
์ด ๊ธ์์๋ ์ฌ๋ ค์ด ๋ด์ฉ์ ์ฝ๊ฒ ์ ๋ฌํ๊ธฐ ์ํด "์กฐ์ ์๋ ๋ถ๋น์ ์ดํด"๋ผ๋ ์งค์ ์ ๋จธ๋ฌ์คํ๊ฒ ๋น์ ํด ์ ์ํ๊ณ , ์๊ฐ์ ํ๋ฆ์ ๋ฐ๋ผ ์ค๋ช ํ๊ณ ์๋ค.
๋ณต์กํ๊ณ ์ด๋ ค์ด Javascript์ ๋ชจ๋์์คํ ๊ณผ ๋ฒ๋ค๋ฌ์ ์ดํด๋ฅผ ๋์์ค ๊ธ์ด๋ค.
The cost of parsing JSON
์๋์ JS ๊ฐ์ฒด ๋ฆฌํฐ๋ด๊ณผ JSON.parse()
๋ฅผ ํตํ ๋ฌธ์์ด ํ์ฑ ๋ฐฉ์๋ค ์ค, ์ด๋ค ๊ฒ์ด ์ฑ๋ฅ์ ์ผ๋ก ๋ ๋น ๋ฅผ๊น?
const data = { foo: 42, bar: 1337 };
const data = JSON.parse('{"foo":42,"bar":1337}');
JSON.parse()
๋ ํ์ฑ, ์ปดํ์ผ ๊ทธ๋ฆฌ๊ณ ์คํ ๋ชจ๋ ๋จ๊ณ์ ์์ด, ๋๋ค์์ JS ์์ง์์ ๊ฐ์ฒด ๋ฆฌํฐ๋ด ๋๋น ์ฝ 1.7๋ฐฐ ์ด์ ๋ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌ๋๋ค.
JSON์ ๋น ๋ฅธ ํ์ฑ์ ์ํด SIMD(Single Instruction Multiple Data)๋ฅผ ์ฌ์ฉํด GB ๋จ์์ ๋ฐ์ดํฐ๋ฅผ ์ด๋น ์ฒ๋ฆฌํ ์ ์๋ simdjson ํ๋ก์ ํธ๋ ํฅ๋ฏธ๋ก์ ๋ณด์ด๋ฉฐ, ๋ค์ํ ๋ฐ์ธ๋ฉ(Node.js ๋ฐ์ธ๋ฉ์ simdjson_nodejs)๊ณผ ํฌํธ๋ค์ด ์ ๊ณต๋๋ค.
์ํธํํ ํธ๊ฐ JSON ๋ฐ์ดํฐ๋ฅผ simdjson๋ณด๋ค ๋ ๋น ๋ฅด๊ฒ ํ์ฑํ๋ C++ ์ฝ๋๋ฅผ ์์ฑํ ๊ฒฝํ์ ๋ค๋ฃฌ "์ธ๊ณ์์ ์ ์ผ ๋น ๋ฅธ JSON ํ์ ๋ง๋ค๊ธฐ" ๊ธ๋ ์ฌ๋ฐ๊ฒ ์ฝ์ด๋ณผ ์ ์๋ค.
๋ค์์ ๋ฒค์น๋งํฌ์ ์ ์ฉ ์ฌ๋ก ๋ฑ๋ ๊ฐ์ด ์ฐธ๊ณ ํด ๋ณด๊ธฐ ๋ฐ๋๋ค.
Whatโs New in TypeScript 4
typescript 4.0 ๋ฒ์ ์ด ๋ฐํ๋์๋ค.
์ด๋ฒ ๋ฒ์ ์์๋ ํํ ํ์ ์ ๋ผ๋ฒจ๋ง์ ํ ์ ์๊ณ ์คํ๋ ๋ ์คํผ๋ ์ดํฐ๋ฅผ ์ ๋ค๋ ํ์ ์๋ ์ธ ์ ์๊ฒ๋์๋ค. ์์ธํ ๋ด์ฉ์ ๊ธ์์ ํ์ธํ ์ ์๋ค.
๋ํ ๊ณต์๋ธ๋ก๊ทธ์์๋ ๋ณด๋ค ๋ ์์ธํ ๋ด์ฉ์ ์ฐธ๊ณ ํ ์ ์๋ค.
React v17.0 Release Candidate: No New Features
React major ๋ฒ์ ์ด ๊ณง ์ฌ๋ผ๊ฐ๋ค. ๊ณง๋ฐ๋ก ์ถ๊ฐ๋๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์๊ณ , ์ฌ์ฉ์๋ค์ด ํฐ ๋ฌด๋ฆฌ์์ด ์ ๊ทธ๋ ์ด๋๋ฅผ ๊ฐ๋ฅํ๊ฒ๋ ํ๋ ๊ฒ์ ์ค์ ์ผ๋ก ๋์๋ค. ์ด ์ธ์ document์์ root๋ ธ๋๋ก ์ด๋ฒคํธ ์์๋ณ๊ฒฝ ๋ฑ ์ฌ๋ฌ๊ฐ์ง ๊ฐ์ ํ ๋ด์ฉ์ ๋ด๊ณ ์๋ค.
What Actually is a String in JavaScript?
๋ค์ ์ถ๋ ฅ๊ฐ์ ๋ฌด์์ผ๊น?
console.log("๐ฅถ".length);
console.log([..."๐ฅถ"].length);
ํ ์ด๋ชจ์ง์ด๋ฏ๋ก ์ฐจ๋ก๋ก 1
, 1
์ด๋ผ๊ณ ์๊ฐํ ์ ์๊ฒ ์ง๋ง ๊ฒฐ๊ณผ๋ 2
, 1
์ด๋ค.
์ ๊ทธ๋ด๊น? ์ด ๊ธ์์๋ Javascript๊ฐ ๋ฌธ์์ด์ ๋ค๋ฃจ๋ ๋ฐฉ์์ ์ค๋ช
ํ๊ณ , ์ด๋ป๊ฒ ์์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ถ๋๋์ง ๊ฐ๋ตํ๊ฒ ์ค๋ช
ํ๋ค.
Why I Donโt Use GraphQL Anymore
MongoDB ์์ง์ด์ธ Harry Wolff๊ฐ ๋ฐํ๋ ์ GraphQL์ ๋ ์ด์ ์ฌ์ฉํ์ง ์๋์ง์ ๋ํ ๋์์์ด๋ค.
GraphQL์ ๋งค๋ ฅ์ ์ด๊ณ FE ๊ฐ๋ฐ์ ๋๋ผ์ด ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํ์ง๋ง ๊ทธ์ ๋ฐํด ์๋ฒ ๊ตฌํ์ ๋งค์ฐ ์ด๋ ต๋ค.
๋ํ Facebook๊ณผ ๊ฐ์ ์ค์ผ์ผ์ ์๋น์ค์์๋ ๋ง์ ๋ฌธ์ ๋ค์ ํด๊ฒฐํด ์ค ์ ์์ง๋ง, ๋๋ค์์ ์ฌ์ฉ์๋ค์ ๊ทธ๋ฌํ ํ๊ฒฝ์์ ์ฌ์ฉํ์ง๋ ์๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ๊ทธ ์ด์ ๋ฅผ ์ค๋ช ํ๋ค.
10 Awesome Chrome Flags You Should Enable Right Now

๋ฐ๋ก ์ฌ์ฉํด๋ ์ข์ 10๊ฐ์ง ํฌ๋กฌ ํ๋๊ทธ๋ฅผ ์๊ฐํ๋ค.
ํํ ๋ฆฌ์ผ
I created the exact same app in React and Vue. Here are the differences

React์ Vue๋ฅผ ์ด์ฉํด์ ๋๊ฐ์ TODO ์ฑ์ ๋ง๋ค์ด ๋ณด๋ฉด์ ์ด๋ค ์ ์ด ๋ค๋ฅธ์ง, ์ฝ๋ ์คํ์ผ์ ์ด๋ค ์์ผ๋ก ์ฐจ์ด๊ฐ ์๋์ง๋ฅผ ์ค๋ช ํ๊ณ ์๋ค. 2020๋ ๋ฒ์ ์ผ๋ก React๋ Hooks๋ฅผ Vue(3+)๋ Composition API๋ฅผ ์ฌ์ฉํ๋ค. (2019๋ , 2018๋ ๋ฒ์ ๋ ๋ณธ๋ฌธ ํ๋จ ๋งํฌ์ ์๋ค.)
์์ค๋ฅผ ์ฌ๋ ค๋์ ์ ์ฅ์ ๋งํฌ๋ ์์ผ๋ ์ฝ๋๋ฅผ ํ์ธํ๊ฑฐ๋ ์ง์ ์คํํด๋ณผ ์ ์๋ค.
๋ ๊ฐ์ ์ ํ์ง์์ ๊ฐ๋ฑํ๋ ๊ฐ๋ฐ์๊ฐ ์ฝ์ด๋ณด๊ธฐ๋ฅผ ์ถ์ฒํ๋ค.
TypeScript Exercises
์ธํฐ๋ํฐ๋ธํ ๊ตฌ์ฑ์ ํตํด ์ ๊ณต๋๋ 16๊ฐ์ ์ฐ์ต๋ฌธ์ ๋ฅผ ํด๊ฒฐ์ ํตํด ์๋์ TS ๊ธฐ๋ฅ๋ค์ ํ์ตํด ๋ณผ ์ ์๋ค.
- Basic typing.
- Refining types.
- Union types.
- Merged types.
- Generics.
- Type declarations.
- Module augmentation.
- Advanced type mapping.
Let's build BATTLESHIPS in JavaScript, HTML and CSS
๋ฐฐํ์ฝ ๊ฒ์์ ์ ์ํ๋ ๊ณผ์ ์ ์๊ฐํ ์ ํ๋ธ ๋์์ ๊ฐ์์ด๋ค.
1์๊ฐ 40๋ถ๊ฐ์ ๊ฐ์๋ฅผ ๋ฐ๋ผ์ ๊ฐ๋จํ ๊ฒ์์ ๋ง๋ค์ด๋ณธ๋ค๋ฉด,
HTML, CSS, JavaScript์ ํ์ตํจ์ ๋ฌผ๋ก ํฐ ์ฑ์ทจ๊ฐ์ ๋๋ ์ ์์๊ฒ์ด๋ค.
์ฝ๋์ ๋๊ตฌ
Mock Service Worker
๊ธฐ์กด์ mock API ๋๊ตฌ ๋๋ ์๋น์ค๋ค์ ๋ณ๋๋ก ์ ๊ณต๋๋ API ์ฃผ์๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์, ํ ์คํธ ์ฉ๋๋ก์จ๋ ์ ์ฉํ์ง๋ง ์ค ์๋น์ค ๋จ๊ณ์์๋ ์ค API๋ก์ ์ ๋ฐ์ดํธ๊ฐ ํ์ํ๋ค๋ ๋จ์ ์ด ์กด์ฌํ๋ค.
MSW(Mock Service Worker)๋ ServiceWorker๋ฅผ ์ฌ์ฉํด ๋คํธ์ํฌ ๋ ๋ฒจ์์ mocking์ด ์ด๋ค์ง๊ธฐ ๋๋ฌธ์ ์ค ์๋น์ค API ์ฃผ์๋ฅผ ํ ์คํธ ๋จ๊ณ์์๋ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์๋ค.
import { setupWorker, rest } from 'msw'
const worker = setupWorker(
// 'https://github.com/octocat'์ ๋ํ mock response๋ฅผ ๊ตฌ์ฑ
rest.get('https://github.com/octocat', (req, res, ctx) => {
return res(
ctx.delay(1500),
ctx.status(202, 'Mocked status'),
ctx.json({
message: 'Mocked response JSON body',
}),
)
}),
)
worker.start();
pattern.css

background์ ๋ค์ํ ํจํดํจ๊ณผ๋ฅผ ์ค ์ ์๋ค.
WebGL water ripples

WebGL base์ธ curtain.js๋ก ๋ง๋ ๋ฌผ๊ฒฐํจ๊ณผ.
Debug Visualizer
๋๋ฒ๊น ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์๊ฐํํด ๋ณด์ฌ์ฃผ๋ VS Code ํ์ฅ๋๊ตฌ๋ก JS/TS ๋ฐ ๋๋ค์ ์ธ์ด๋ค์ ์ง์ํ๋ค.
JS/TS ์ธ ์ธ์ด๋ค์ ๊ธฐ๋ณธ์ ์์ค์ ํํด์๋ง ์ง์๋๋ค.