naver/fe-news λ‰΄μŠ€λ ˆν„° λ·°μ–΄ (비곡식)

λͺ©μ°¨
λͺ©μ°¨

    2020-04

    링크 & 읽을거리

    Top Front-End Development YouTube Channels

    YouTubeμ—λŠ” λ‹€μ–‘ν•œ FE 기술 μ½˜ν…μΈ λ“€μ΄ λ„˜μ³λ‚˜μ§€λ§Œ κ·Έλ“€ 쀑 보석을 κ°€λ € λ‚΄λŠ” 것은 쉽지 μ•Šλ‹€. μˆ˜μ€€ 높은 μ½˜ν…μΈ λ₯Ό μ°Ύκ³  μžˆλ‹€λ©΄ λ§ν¬μ—μ„œ μ†Œκ°œν•˜λŠ” 채널듀은 큰 도움이 될 것이닀.

    JavaScript둜 νŒŒμ„œ, 가상머신 λ“± 둜우 레벨 μ˜μ—­ κ΅¬ν˜„μ„ μ†Œκ°œν•˜λŠ” 'Low Level JavaScript', λ‹€μ–‘ν•œ CSS λ ˆμ΄μ•„μ›ƒλ“€μ˜ 기술적 λ‚΄μš©λ“€μ„ λ‹€λ£¨λŠ” 'LayoutLand' λ“±μ˜ 채널듀을 확인할 수 μžˆλ‹€.

    10 Rules Of Thumb In UI Design

    UIμ—μ„œ λ”°λ₯΄λ©΄ 쒋을 κ°€μ΄λ“œ 10κ°€μ§€λ₯Ό μ œμ‹œν•˜κ³  μžˆλ‹€. μ΅œμ „λ°©μ—μ„œ UIλ₯Ό κ°œλ°œν•˜λŠ” FE κ°œλ°œμžκ°€ μˆ™μ§€ν•˜κ³  있으면 쒋은 λ‚΄μš©λ“€μ΄λ‹€.

    뉴λͺ¨ν”Όμ¦˜μ€ μƒˆλ‘œμš΄ UI νŠΈλ Œλ“œκ°€ 될 수 μžˆμ„κΉŒ?

    μ‹œλŒ€μ— 따라 UI νŠΈλ Œλ“œλŠ” λ³€ν•œλ‹€. 2000λ…„λŒ€ ν›„λ°˜μ—λŠ” ν˜„μ‹€μ˜ 사물성을 κ·ΈλŒ€λ‘œ ν‘œν˜„ν•˜λŠ” 'μŠ€νμ–΄λͺ¨ν”Όμ¦˜'(Skeuomorphism)이 μœ ν–‰ν–ˆλ‹€. κ·Έ 이후 iOS 7을 기점으둜 ν”Œλž« ν•œ λ””μžμΈμ΄ λŒ€μ„Έκ°€ λ˜μ—ˆκ³ , ν˜„μž¬λŠ” ν”Œλž« ν•œ λ””μžμΈμ— 그림자λ₯Ό λ”ν•œ κ΅¬κΈ€μ˜ 머티리얼 λ””μžμΈμ΄ UI νŠΈλ Œλ“œλ₯Ό μ£Όλ„ν•˜κ³  μžˆλ‹€. μ΄λ‹€μŒμ—” μ–΄λ–€ UI νŠΈλ Œλ“œκ°€ μ‹œμž₯을 μ§€λ°°ν• κΉŒ?

    '뉴λͺ¨ν”Όμ¦˜'(Neumorphism)이라고 λΆˆλ¦¬λŠ” μƒˆλ‘œμš΄ λ””μžμΈ μŠ€νƒ€μΌμ΄ λŒ€λ‘λ˜κ³  μžˆλŠ” μš”μ¦˜, 이것이 ꡬ체적으둜 μ–΄λ–€ μŠ€νƒ€μΌμ΄κ³  μ•žμœΌλ‘œ UI νŠΈλ Œλ“œλ₯Ό μ΄λŒμ–΄ λ‚˜κ°ˆ 수 μžˆμ„μ§€ κ°€λŠ₯μ„±κ³Ό ν•œκ³„μ— λŒ€ν•΄ μœ„ κΈ€μ—μ„œ ν™•μΈν•΄λ³΄μž.

    Functional Programming for JavaScript Developers

    μžλ°”μŠ€ν¬λ¦½νŠΈ 개발자λ₯Ό μœ„ν•œ ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ— λŒ€ν•œ μ‹œλ¦¬μ¦ˆ 글을 확인할 수 μžˆλ‹€.

    μ˜€λž˜μ „μ— 곡개된 글이긴 ν•˜μ§€λ§Œ, λ‹€μŒμ˜ μ‹œλ¦¬μ¦ˆλ„ ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ° 사고적 λ°©λ²•μœΌλ‘œμ˜ 접근에 도움을 얻을 수 μžˆλ‹€.

    Front-End Dev Tools For increased Productivity

    FE κ°œλ°œμžλ“€μ΄ UI/UX μž‘μ—…μ„ 보닀 λΉ λ₯΄κ³  효율적으둜 μ§„ν–‰ν•  수 있게 도와쀄 수 μžˆλŠ” 10μ—¬ 개의 온라인 도ꡬ듀을 μ†Œκ°œν•œλ‹€. Β 

    An abbreviated history of JavaScript package managers

    이 글은 νŒ¨ν‚€μ§€ λ§€λ‹ˆμ €μΈ npm, Yarn 그리고 pnpm의 λ“±μž₯ λ°°κ²½κ³Ό ν•¨κ»˜ μ–΄λ–€ λ¬Έμ œλ“€μ„ ν•΄κ²°ν–ˆλŠ”μ§€μ— λŒ€ν•΄ μ‹œκ°„μ  흐름에 따라 λ°œμ „λ˜μ˜¨ νŒ¨ν‚€μ§€ λ§€λ‹ˆμ €λ“€μ˜ κ°„λž΅ν•œ 역사λ₯Ό 닀루고 μžˆλ‹€.

    κ°€λ Ή npm은 v1μ—μ„œ Dependency hell을 ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ“±μž₯ν–ˆκ³ , 이후 v3μ—μ„œλŠ” Flattened dependency κ΄€λ¦¬λ‘œ κΉŠμ–΄μ§€λŠ” μ„œλΈŒ 디렉터리 문제 해결을 μœ„ν•¨ μ΄μ—ˆλ‹€λŠ” λ‚΄μš©λ“€μ„ μ†Œκ°œν•œλ‹€.

    5 Questions Every Unit Test Must Answer

    λŒ€λΆ€λΆ„μ˜ κ°œλ°œμžλ“€μ€ λ‹¨μœ„ ν…ŒμŠ€νŠΈλ₯Ό μž‘μ„±ν•΄μ•Ό ν•˜λŠ” 사싀은 잘 μ•Œκ³  μžˆμ§€λ§Œ, λ§Žμ€ 경우 λ‹¨μœ„ ν…ŒμŠ€νŠΈμ˜ ν•„μˆ˜ μš”μ†Œλ“€μ€ 무엇인지 잘 μ•Œμ§€ λͺ»ν•œλ‹€λŠ” 점이닀. ν•΄λ‹Ή κΈ€μ—μ„œλŠ” μ €μž μžμ‹ μ˜ μ‹€μ œ κ²½ν—˜μ„ 기반으둜 μ‹€νŒ¨ν•˜μ§€ μ•ŠλŠ” 쒋은 ν…ŒμŠ€νŠΈλ₯Ό μž‘μ„±ν•˜κΈ° μœ„ν•΄ 슀슀둜 μ§ˆλ¬Έν•΄ 봐야 ν•˜λŠ” λ‹€μŒμ˜ 5κ°€μ§€ ν•­λͺ©λ“€μ„ μ†Œκ°œν•œλ‹€.

    1. What are you testing?
    2. What should it do?
    3. What is the actual output?
    4. What is the expected output?
    5. How can the test be reproduced?

    React+TypeScript Cheatsheets

    TypeScript와 Reactλ₯Ό μ‚¬μš©ν•œ ν”„λ‘œμ νŠΈ κ°œλ°œμ—μ„œ μ°Έκ³ ν•  수 μžˆλŠ” μ‹€ν–‰ κ°€μ΄λ“œ(Cheat Sheet)λ₯Ό μ œκ³΅ν•œλ‹€. 총 4개둜 λΆ„λ₯˜λœ κ°€μ΄λ“œλ₯Ό μ œκ³΅ν•΄ 각자 ν•„μš”μ„±μ— λ”°λ₯Έ 접근이 κ°€λŠ₯ν•˜λ‹€.

    • Basic: React 개발자의 TS μ μš©μ„ μœ„ν•œ κΈ°λ³Έ κ°€μ΄λ“œ
    • Advanced: κ³ κΈ‰ μ‚¬μš©κ³Ό μž¬μ‚¬μš© κ°€λŠ₯ν•œ μ½”λ“œ μž‘μ„± κ°€μ΄λ“œ
    • Migrating: Plain JS, Flow μ½”λ“œλ“€μ˜ TS λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ κ°€μ΄λ“œ
    • HOC: κ³ μ°¨ν•¨μˆ˜(High Order Component) μž‘μ„± κ°€μ΄λ“œ

    Deno 1.0 will be released May 13, 2020

    Node.jsλ₯Ό κ°œλ°œν–ˆλ˜ Ryan Dahl이 2018λ…„ μƒˆλ‘­κ²Œ μ‹œμž‘ν–ˆλ˜ TypeScript λŸ°νƒ€μž„ 엔진인 Deno 1.0 λ²„μ „μ˜ κ³΅κ°œκ°€ 5μ›” 13일 릴리슀될 μ˜ˆμ •μ΄λΌκ³  νŠΈμœ—μ„ 톡해 λ°ν˜”λ‹€.

    νŠœν† λ¦¬μ–Ό

    GitHub Learning Lab

    GitHubλŠ” μ§€λ‚œ 2018λ…„ 4μ›” GitHub의 μ‚¬μš©λ°©λ²•λ“€μ„ 배울 수 μžˆλŠ” 온라인 ꡐ윑 도ꡬ인 GitHub Learning Lab을 λ°œν‘œν–ˆμ—ˆλ‹€.

    GitHub Learning Lab μ†Œκ°œμ˜μƒ

    ν˜„μž¬λŠ” GitHub μ‚¬μš©λ°©λ²•μ— κ΅­ν•œν•˜μ§€ μ•Šκ³  도ꡬ와 μ–Έμ–΄(Python, Node, Java, Ruby, TensorFlow λ“±), DevOps λ“±μ˜ λ‹€μ–‘ν•œ μ½”μŠ€κ°€ μΆ”κ°€λ˜μ—ˆκ³  λͺ¨λ‘ 무료둜 ν•™μŠ΅ν•  수 μžˆλ‹€.

    λ‹€λ₯Έ 온라인 ꡐ윑 μ„œλΉ„μŠ€λ“€ 보닀 쒋은 점은 λ°”λ‘œ GitHub ν”Œλž«νΌμ— κΈ°λ°˜ν•΄ ꡐ윑이 μ§„ν–‰λœλ‹€λŠ” 점으둜, μ„ νƒν•œ μ½”μŠ€λŠ” μžμ‹ μ˜ GitHub μ €μž₯μ†Œλ‘œ clone 되고 이후 과정은 μžλ™μœΌλ‘œ λ“±λ‘λ˜λŠ” μ΄μŠˆμ™€ PR 등을 톡해 μ§„ν–‰λœλ‹€.

    React Router v6 in Three Minutes

    React Router의 μ°¨κΈ° 메이저 버전인 v6의 μƒˆλ‘œμš΄ 변화듀을 μ†Œκ°œν•œλ‹€. κ°€μž₯ 큰 λ³€ν™”λ‘œλŠ” λ²ˆλ“€ 크기가 이전 버전(v5)에 λΉ„ν•΄ ~70% μš©λŸ‰μ΄ κ°μ†Œλ˜μ—ˆκ³ , μƒˆλ‘œμš΄ Hooks 및 μ»΄ν¬λ„ŒνŠΈλ“€μ˜ 변화에 λŒ€ν•œ λ‚΄μš©μ„ μ†Œκ°œν•œλ‹€.

    ν˜„μž¬ μ‹œμ μ—μ„œμ˜ v6 μ΅œμ‹  버전은 μ§€λ‚œ 2μ›” 곡개된 v6.0.0-alpha.2 이닀.

    Smooth Scrolling Sticky ScrollSpy Navigation

    μ‚¬μ΄λ“œ λ°” λ‚΄λΉ„κ²Œμ΄μ…˜μ„ 톡해 νŽ˜μ΄μ§€ λ‚΄ μ›ν•˜λŠ” μ§€μ μœΌλ‘œ λΆ€λ“œλŸ¬μš΄ νŽ˜μ΄μ§€ μŠ€ν¬λ‘€μ„ 톡해 μ΄λ™ν•˜λŠ” νŽ˜μ΄μ§€ ꡬ성 방법을 μ†Œκ°œν•œλ‹€.

    μ™„μ„±λœ 데λͺ¨: https://codepen.io/bramus/pen/ExaEqMJ

    μ½”λ“œμ™€ 도ꡬ

    corona-cli

    COVID-19 μ „ 세계 확산에 따라, κ΄€λ ¨ 도ꡬ듀이 κ°œλ°œλ˜μ–΄ 곡개되고 μžˆλ‹€. 이듀 쀑, corona-cliλŠ” ν”„λ‘¬ν”„νŠΈ ν™˜κ²½(CLI)μ—μ„œ κ°„λ‹¨ν•˜κ²Œ μ „ 세계 κ΅­κ°€λ“€μ˜ ν˜„μž¬ μ§€ν‘œ 값을 확인할 수 있게 ν•œλ‹€.

    $ npm i -g corona-cli ## λ˜λŠ” μ„€μΉ˜μ—†μ΄ ν•œλ²ˆλ§Œ μ‹€ν–‰ν•˜κ³  μ‹Άλ‹€λ©΄ 'npx corona-cli'
    $ corona # 전세계 톡계 좜λ ₯
    $ corona <κ΅­κ°€λͺ…> # ν•œκ΅­μ˜ 상황은 'corona korea'λ₯Ό μ‹€ν–‰
    

    κ΄€λ ¨λœ λ‹€μŒμ˜ ν”„λ‘œμ νŠΈλ“€λ„ ν•¨κ»˜ μ°Έκ³ ν•΄ 보면 μ’‹λ‹€.

    • covid19 맀일 3μ°¨λ‘€ GitHub Action을 톡해 μ—…λ°μ΄νŠΈλ˜λŠ” COVID-19 μ‹œκ³„μ—΄ JSON 포맷 데이터 https://pomber.github.io/covid19/timeseries.json
    • Awesome Coronavirus 기술, 도ꡬ λ“±μ˜ μœ μš©ν•œ λ¦¬μ†ŒμŠ€λ“€μ„ λͺ¨μ•„μ„œ μ œκ³΅ν•˜λŠ” "Awesome" νλ ˆμ΄μ…˜μ˜ ν˜•νƒœμ™€ 같이 COVID-19 κ΄€λ ¨ 개발 λ¦¬μ†ŒμŠ€λ“€μ˜ λͺ©λ‘μ„ μ œκ³΅ν•œλ‹€.

    CodeTour

    CodeTourλŠ” VS Code μ΅μŠ€ν…μ…˜μœΌλ‘œ, μ‚¬μš©μžμ˜ μ½”λ“œ 베이슀λ₯Ό 기반으둜 ν•œ μΈν„°λž™ν‹°λΈŒ 도움말 κ°€μ΄λ“œλ₯Ό μž‘μ„±ν•˜κ±°λ‚˜ λ˜λŠ” μž¬μƒν•  수 있게 ν•œλ‹€.

    tsParticles

    κ°„λ‹¨ν•˜κ²Œ particle을 λ§Œλ“€ 수 있게 ν•΄ λ§Žμ€ λ§Žμ€ μ‚¬μš©λ“€λ‘œλΆ€ν„° 인기λ₯Ό μ–»μ—ˆλ˜ Particle.js(2017λ…„ λ§ˆμ§€λ§‰ 업데 데이트 ν›„λ‘œ 개발 쀑단 μƒνƒœ) ν”„λ‘œμ νŠΈμ˜ TS ν¬νŒ… 버전이닀.

    React Blog

    GitHub에 이슈λ₯Ό λ“±λ‘ν•˜λ©΄ 개인 λΈ”λ‘œκ·Έμ˜ κΈ€λ‘œ μ „ν™˜ν•˜μ—¬ μ£ΌλŠ” λ„κ΅¬λ‘œ GitHub μ΄μŠˆμ—μ„œ μ‚¬μš©λ˜λŠ” λ¦¬μ•‘μ…˜ Emoji도 μ‚¬μš© κ°€λŠ₯ν•˜λ‹€.

    μ‚¬μš©λ°©λ²•μ€ react-blog-github ν”„λ‘œμ νŠΈλ₯Ό clone ν•œ ν›„, 개인 access 토큰과 GihubApp을 μƒμ„±ν•˜κ³  κ°„λ‹¨ν•œ μ„€μ • 정보λ₯Ό λ‹΄λŠ” νŒŒμΌμ„ λ§Œλ“€λ©΄ λͺ¨λ“  ν™˜κ²½μ„€μ •μ΄ μ™„λ£Œλœλ‹€.

    이후, μžμ‹ μ˜ ν”„λ‘œμ νŠΈμ— 이슈λ₯Ό μƒμ„±ν•˜κ³  'blog' λ ˆμ΄λΈ”μ„ λ‹€λŠ” κ²ƒμœΌλ‘œ λΈ”λ‘œκ·Έμ— μƒˆλ‘œμš΄ 글이 ν¬μŠ€νŒ…λœλ‹€.

    Live demo: GitHub Issue β†’ λ°œν–‰κΈ€

    engine262

    JavaScript둜 μž‘μ„±λœ JavaScript(ECMA-262) μ—”μ§„μœΌλ‘œ κ°œλ°œμžλ“€μ΄ μƒˆλ‘œμš΄ κΈ°λŠ₯을 μ‹ μ†ν•˜κ²Œ ν”„λ‘œν† νƒ€μž…ν™”ν•˜κ³  탐색할 수 μžˆλŠ” μƒŒλ“œλ°•μŠ€λ₯Ό 갖도둝 ν•˜λŠ” 도ꡬ닀.

    이와 μœ μ‚¬ν•˜μ§€λ§Œ, 각기 λ‹€λ₯Έ λͺ©μ μœΌλ‘œ 개발되고 μžˆλŠ” μœ μ‚¬ν•œ JavaScript 인터프리터듀은 λ‹€μŒκ³Ό κ°™λ‹€.

    • https://github.com/facebook/prepack
    • https://github.com/mozilla/narcissus
    • https://github.com/NeilFraser/JS-Interpreter
    • https://github.com/metaes/metaes
    • https://github.com/Siubaak/sval

    Sarus

    WebSocket은 비정상적 μ’…λ£Œμ— λ”°λ₯Έ μ–΄λ– ν•œ 응닡도 받을 수 μ—†λ‹€λŠ” λ¬Έμ œμ μ„ ν•΄κ²°ν•˜κΈ° μœ„ν•œ JavaScript WebSocket λΌμ΄λΈŒλŸ¬λ¦¬λ‹€.

    Redux Toolkit

    Redux Toolkit(이전 ν”„λ‘œμ νŠΈλͺ… "Redux Starter Kit")은 λͺ¨λ²”사둀가 적용된 ν‘œμ€€μ μΈ Redux 둜직 μž‘μ„± μ œκ³΅μ„ λͺ©ν‘œλ‘œ ν•˜λ©°, Redux μ‚¬μš© μ‹œ κ²ͺ게 λ˜λŠ” λ‹€μŒμ˜ 보편적인 λ¬Έμ œλ“€μ„ ν•΄κ²°ν•˜κΈ° μœ„ν•΄ κ°œλ°œλ˜μ—ˆλ‹€.

    • Redux μŠ€ν† μ–΄ μ„€μ •μ˜ λ³΅μž‘μ„±
    • Reduxκ°€ μœ μš©ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ„λ‘ λ§Œλ“€κΈ° μœ„ν•΄ μˆ˜λ§Žμ€ νŒ¨ν‚€μ§€λ₯Ό μΆ”κ°€ν•΄μ•Ό ν•˜λŠ” 문제
    • Reduxμ—λŠ” λ„ˆλ¬΄ λ§Žμ€ boilerplate μ½”λ“œκ°€ ν•„μš”ν•œ 문제
    # κ°€μž₯ κ°„νŽΈν•œ μ‚¬μš©λ°©λ²•μ€ CRA둜 ν”„λ‘œμ νŠΈ 생성 μ‹œ Redux+JS ν…œν”Œλ¦Ώμ„ μ‚¬μš©ν•˜λŠ” 것이닀.
    npx create-react-app my-app --template redux