2020-02 
๋งํฌ & ์ฝ์๊บผ๋ฆฌ
Illustraded.dev
FE ๊ธฐ์ ๋ค์ ๋ํ ๊ทผ๋ณธ์ ์ธ ๊ฐ๋ ์ ๋์ํํด ์ค๋ช ํด ์ฃผ๋ฉฐ, GraphQL, Babel, React Hooks ๋ฑ์ ๋ํ ์ฃผ์ ๋ค์ด ํฌํจ๋์ด ์๋ค.
free-for.dev
๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์๋ ๋ค์ํ ๊ธฐ๋ฐ ์๋น์ค(SaaS, PaaS, IaaS, etc.)๋ค์ ๋ฐฉ๋ํ ๋ชฉ๋ก๋ค์ ์ ๊ณตํ๋ค.
ex) ๋ฉ์ด์ ํด๋ผ์ฐ๋ ์๋น์ค ์ ๊ณต์๋ค ๋ชฉ๋ก:
List of Free Learning Resources
๋ฌด๋ฃ๋ก ์ ๊ณต๋๋ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์์ , ๋ฆฌ์์ค, ์จ๋ผ์ธ ๊ต์ก๊ณผ์ ๋ค์ ๋ํ ๋ฐฉ๋ํ ๋ชฉ๋ก์ ์ ๊ณตํ๋ฉฐ, ํ๊ธ๋ก ์์ฑ๋ ์ฝํ ์ธ ๋ชฉ๋ก๋ ๋ค์ ํฌํจํ๊ณ ์๋ค.
ํ๊ธ ์ปจํ ์ธ ๋ AWS, Docker, Git, JavaScript, LaTex, Python ๋ฑ์ ์ฃผ์ ๊ฐ ๋ฑ๋ก๋์ด ์๋ค. https://ebookfoundation.github.io/free-programming-books/free-programming-books-ko.html
WebAssembly Summit
์ง๋ 2์10์ผ ๊ตฌ๊ธ ๋ณธ์ฌ์์ ์งํ๋ ์น์ด์ ๋ธ๋ฆฌ ๊ฐ๋ฐ์ ์จ๋ฐ. ์ ์ฒด ๋ฐํ ๋์์์ ์๋ ๋งํฌ๋ฅผ ํตํด ํ์ธํ ์ ์๋ค.
- ๋ฐํ ๋์์: https://www.youtube.com/watch?v=WZp0sPDvWfw
Today, the Trident Era Ends
IE์ ๋ ๋๋ง ์์ง Trident์ ์ง๋ ๊ธฐ๋ก์ ๋์๋ณด๋ ๊ธ๋ก, ๊ณผ๊ฑฐ IE๊ฐ ๋์ ํ๋ ๋ช๋ช ํ์ ์ ์ธ ๊ธฐ์ ์ ๋ด์ฉ๋ค์ ๋์๋ณธ๋ค.
- ๊ณผ๊ฑฐ ์น์ฌ์ดํธ๋ค์ IE์ ๊ฐ์ด ํน์ ๋ธ๋ผ์ฐ์ ์์๋ง ๋์์ด ๋ณด์ฅ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์, ๋ค์๊ณผ ๊ฐ์ ์์ด์ฝ์ ์ฌ์ดํธ์ ๋ ธ์ถํ๊ธฐ๋ ํ์๋ค.
- ๊ด๋ จํด์ HackerNews์์ ์ด๋ค์ง๊ณ ์๋ ๋ค์ํ๊ณ ํฅ๋ฏธ ์๋ ์๊ฒฌ๋ค๋ ํจ๊ป ์ฐธ๊ณ ํด ๋ณด๊ธฐ ๋ฐ๋๋ค.
Web Almanac 2019
Web Almanac์ HTTP Archive๋ฅผ ํตํด ์์ง๋ ๋ค์ํ ์น์ฌ์ดํธ ๋ฐ์ดํฐ์ ์ฐ๋ก ๋ณด๊ณ ์๋ก ์ ์ธ๊ณ ์น์ฌ์ดํธ๋ค์ ์ฌ์ฉ ํํฉ(ํ์ด์ง ๋ด์ JS ํฌ๊ธฐ, ์ด๋ฏธ์ง ํฌ๊ธฐ ๋ฑ๊ณผ ๊ฐ์)์ ์ดํด๋ณผ ์ ์๋ค.
React Native Directory
ํ๋ ์ด์ ๋ ๋ค์ํ React Native ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๋ชฉ๋ก์ ์ ๊ณตํ๋ค.
ํํ ๋ฆฌ์ผ
Practical CSS Scroll Snapping
์ฌ์ฉ์์ ์คํฌ๋กค ์ก์ ์ ๋ฐ๋ผ ๋ทฐํฌํธ๋ฅผ ํน์ ์์ ๋๋ ์์น์ ์ ๊ธ(lock) ๋๋๋ก ๋ง๋ค ์ ์๋ 'CSS Scroll Snap'์ ๋ค์ํ ์ค์ฉ์ ์ฌ์ฉ ๋ฐฉ๋ฒ๋ค์ ์๊ฐํ๋ค.
CSS Scroll Snap๋ CSS ๋ง์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ์บ๋ก์ ์ธํฐ๋ ์ ์ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋ค.
Learning Modern JavaScript with Tetris
JavaScript๋ก ํ ํธ๋ฆฌ์ค๋ฅผ ๊ตฌํํด ๊ฐ๋ ๊ณผ์ ์ step-by-step ํ์์ผ๋ก ์ค๋ช ํ๋ค.
TypeScript Unit Testing with Test Coverage
TypeScript๋ฅผ ์ฌ์ฉํ ํ๋ก์ ํธ์ ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ์ถ๋ ฅ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ค.
CSS Layout
CSS๋ก ์์ฑ๋ ์ธ๊ธฐ ์๋ ๋ ์ด์์๊ณผ ํจํด๋ค์ ์ฝ๋๋ฅผ ์ ๊ณตํด, ์ด๊ธฐ ํ์ด์ง ๋ ์ด์์ ๊ตฌ์ฑ ์ ์ฐธ๊ณ ํด ๋น ๋ฅด๊ฒ ๋ ์ด์์์ ๊ตฌ์ฑํ ์ ์๋๋ก ๋์์ค๋ค.
Tesseract.js | Pure Javascript Multilingual OCR
์ธ๊ธฐ ์๋ OCR ์์ง์ธ tesseract์ ์์ JavaScript ํฌํ ๋ฒ์ ์ผ๋ก ํ๊ตญ์ด๋ ์ง์๋๋ค.
์ฝ๋์ ๋๊ตฌ
You Don't Need
Moment.js, Lodash, Redux, jQuery ๋ฑ๊ณผ ๊ฐ์ ๋๊ตฌ/๋ผ์ด๋ธ๋ฌ๋ฆฌ/ํจํด๋ค์ ์ฌ์ฉ์ ๋์ฒดํ ์ ์๋ ๋ฐฉ๋ฒ(์ฝ๋ ์์ )๋ค์ด ์ ๊ณต๋๋ค.
ex) Underscore/Lodash์ _.dropRight()
์ ๋ค์์ ๋ค์ดํฐ๋ธ ์ฝ๋๋ก ๋์ฒดํ ์ ์๋ค.
_.dropRight([1, 2, 3]);
// => [1, 2]
_.dropRight([1, 2, 3], 2);
// => [1]
// Native
[1, 2, 3].slice(0, -1);
// => [1, 2]
[1, 2, 3].slice(0, -2);
// => [1]
Big List of Naughty Strings
๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์๋ ๋ค์ํ ํ ์คํธ ์ ๋ ฅ๊ฐ์ ๋ชจ์์ ์ ๊ณตํด ์ ๋ ฅ๊ฐ ํ ์คํธ ์ ์์ธ์ ํญ๋ชฉ๋ค์ ํ ์คํธํด ๋ณผ์ ์๋ค.
- ํ ์คํธ: https://github.com/minimaxir/big-list-of-naughty-strings/blob/master/blns.txt
- JSON: https://github.com/minimaxir/big-list-of-naughty-strings/blob/master/blns.json
ex) ์์ ์ ํฌํจ๋ 2 ๋ฐ์ดํธ ๋ฌธ์์ด ํ ์คํธ ๊ฐ์ ๋ค์๊ณผ ๊ฐ๋ค.
# Two-Byte Characters
#
# Strings which contain two-byte characters: can cause rendering issues or character-length issues
็ฐไธญใใใซใใใฆไธใใ
ใใผใใฃใผใธ่กใใชใใ
ๅ่ฃฝๆผข่ช
้จ่ฝๆ ผ
์ฌํ๊ณผํ์ ์ดํ์ฐ๊ตฌ์
์ฐฆ์ฐจ๋ฅผ ํ๊ณ ์จ ํฒ์๋งจ๊ณผ ์๋ค๋ฆฌ ๋ ๋ฐฉ๊ฐํ
็คพๆ็งๅญธ้ข่ชๅญธ็ ็ฉถๆ
์ธ๋๋ฐํ ๋ฅด
๐ ๐ ฑ๐ น๐ ฑ๐ ฑธ๐ ฒ๐ ณ
Tiny helpers
์น ๊ฐ๋ฐ์ ์ฌ์ฉํ ์ ์๋ ๋ค์ํ ์จ๋ผ์ธ ๊ฐ๋ฐ ๋๊ตฌ๋ค์ ๋ชฉ๋ก์ ์ ๊ณตํ๋ค.
ex) ํ์ธํ ์ ์๋ ๋ช๊ฐ์ง ๋๊ตฌ๋ค์ ๋ค์๊ณผ ๊ฐ๋ค.
- 0to255 ๋ฐ๊ฑฐ๋ ์ด๋์ด ์์ ์ปฌ๋ฌ ์ฝ๋๋ฅผ ์ฝ๊ฒ ๊ณ ๋ฅผ ์ ์๊ฒ ์ ๊ณตํ๋ค.
- AST explorer ๋ค์ํ ํ์๋ค๋ก๋ถํฐ ์์ฑ๋ AST(Abstract Syntax Tree)๋ฅผ ํ์ํ ์ ์๊ฒ ํ๋ค.
What's new in DevTools (Microsoft Edge 80)
Chromium ๊ธฐ๋ฐ์ MS Edge ๋ธ๋ผ์ฐ์ ๊ฐ ์ ์ ๋ฐํ๋ ์ดํ, Edge๋ง์ ๊ณ ์ ํ ๊ธฐ๋ฅ๋ค์ด ํ๋๋์ฉ ์ถ๊ฐ๋๊ณ ์์ผ๋ฉฐ MS Edge 80 ๊ฐ๋ฐ์ ๋๊ตฌ์ ์ถ๊ฐ๋ ์๋ก์ด ์ ๋ฐ์ดํธ ๋ด์ฉ์ ํตํด ๋ช๋ช ๊ธฐ๋ฅ๋ค์ ์๊ฐํ๊ณ ์๋ค.
ex) 3D View
๊ธฐ๋ฅ์ ํ์ด์ง์ DOM ๋๋ z-index stacking context ์๊ฐํ๋ฅผ 3D๋ก ์ ๊ณตํด ๋๋ฒ๊น
ํ ์ ์๋๋ก ํ๋ค.
Jsonnet - The Data Templating Language
jsonn
ํ์ฅ์๋ฅผ ๊ฐ๋ ๋ฐ์ดํฐ ํ
ํ๋ฆฟํ
์ธ์ด๋ก ์ค์ ๊ด๋ จ ๋ฐ์ดํฐ ๋ฑ์ ์์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๊ฒ ํ๋ค. ๊ฒฐ๊ณผ๋ฌผ์ .json
, .ini
, .sh
๋ฑ์ ๋ค์ํ ํ์ฅ์๋ก ์ถ๋ ฅํ ์ ์๋ค.
ex) ์๋์ .jsonnet
ํ์ผ์ ํตํด
// example.jsonnet
local Person(name='Alice') = {
name: name,
welcome: 'Hello ' + name + '!',
};
{
person1: Person(),
person2: Person('Bob'),
}
๋ค์์ .json
ํ์ผ์ ์ถ๋ ฅํ๋ค.
// output.json
{
"person1": {
"name": "Alice",
"welcome": "Hello Alice!"
},
"person2": {
"name": "Bob",
"welcome": "Hello Bob!"
}
}
์จ๋ผ์ธ ๋ฐ๋ชจ
- Forge Viewer: Get Fragment Properties
์ ๋ช ํ 3D ์ค๊ณ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๋ AutoDesk์์ ์ ๊ณตํ๋ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ์ ๋๊ตฌ์ธ Forge๋ฅผ ์ฌ์ฉํด ๊ตฌํํ ๋ทฐ์ด ๋ฐ๋ชจ - Infinite draggable webgl slider.: WebGL๋ก shader ํ๋ก๊ทธ๋๋ฐ ํด์ ์บ๋ก์ ์ ํ ํจ๊ณผ๋ฅผ ๊ตฌํํ ๋ฐ๋ชจ
- Button Collection: ๋ฒํผ์ ์ ์ฉํ ์ ์๋ ๋ค์ํ ์ ๋๋ฉ์ด์ ์ ํ ํจ๊ณผ ๋ฐ๋ชจ
- Sweaterize Yo'self: ํ์ ์นด๋ฉ๋ผ๋ฅผ ํตํด ์ดฌ์๋ ์ค์๊ฐ ์ด๋ฏธ์ง์ ๋ํ
ํจํด์ ์ ์ฉํ๋ ๋ฐ๋ชจ
์๋งค์ํ: Holiday CSSweater Generator
- 3D carousel: 3์ฐจ์ ์บ๋ก์ ๊ตฌํ ๋ฐ๋ชจ
- The Cube: three.js๋ก ๊ตฌํํ ์ธํฐ๋ํฐ๋ธ ํ๋ธ ๊ฒ์