naver/fe-news ๋‰ด์Šค๋ ˆํ„ฐ ๋ทฐ์–ด (๋น„๊ณต์‹)

๋ชฉ์ฐจ
๋ชฉ์ฐจ

    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๋กœ ๊ตฌํ˜„ํ•œ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ํ๋ธŒ ๊ฒŒ์ž„