Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

기술 뉴스 #149 : 20-05-01

웹개발 관련

  • await의 함정, 숨은 병목을 찾자 : async, await를 사용하면 비동기 코드를 동기처럼 읽기 쉽게 작성할 수 있지만 동시에 실행해도 되는 코드도 await로 인해서 순차적으로 실행되므로 전체 실행 시간이 길어질 수 있음을 지적하고 Promise.all이나 await 코드의 위치 조정으로 개선할 수 있음을 얘기하고 있다.(한국어)
  • window.location Cheatsheet : 브라우저의 주소를 다루는 Location 객체를 설명하는 글이다. Location 객체에 비슷해 보이는 속성도 많은데 각 속성이 어떤 점이 다르고 어떻게 사용하는지를 설명하고 주소를 다루는 assign(), replace() 등의 함수가 히스토리 차원에서 어떤 점이 다른지 이해하기 쉽게 설명하고 있다.(영어)
  • 7 New Features Shipping With ES2020 : ES2020에 추가된 기능의 사용법을 설명한 글이다. 환경별로 다는 전역 객체를 참조하는 globalThis, 모든 Promise가 처리되면 실행되는 Promise.allSettled(), ?? 연산자의 좌변이 null이나 undefined일 때만 우변의 값을 취하는 Nullish Coalescing Operator, 체이닝 할 때 null을 따로 확인하지 않아도 되는 ?., Number보다 큰 수를 처리하는 BigInt, 동적으로 런타임에 선택해서 임포트하는 동적 import()의 사용방법을 알 수 있다.(영어)

그 밖의 개발 관련

  • Learn Regex The Easy Way : 정규표현식을 쉽게 설명한 문서의 한글 번역 문서(한국어)
  • Raft 분산 합의 알고리즘과 Python에서의 활용 : 분산 합의 알고리즘 Paxos 보다 간단한 Raft의 동작 방식을 설명하고 라이브러리로 내장할 수 있도록 구현한 pyraft를 사용해서 분산 코디네이터를 내장한 프로그램을 만드는 방법을 보여준다.(한국어)
  • Raft - Understandable Distributed Consensus : Raft 알고리즘을 애니메이션과 함께 단계별로 설명하는 사이트로 분산 합의 알고리즘과 리더 선출 등의 과정을 이해하기 쉽다.(영어)
  • Development Environments at Slack : Slack의 개발환경을 정리한 글이다. Slack의 환경이 복잡해서 로컬에 구성하기보다는 프로덕션 환경을 복사해서 원격 서버에 구성하고 CLI를 사용해서 로컬의 변경사항을 바로 서버에 적용하는 방식으로 개발하고 있으며 CLI로 요청할 때마다 고유 환경이 만들어져서 제공되고 과거에는 하나의 개발 환경을 모두가 공유했지만, 지금은 개발자마다 다른 개발환경을 제공하고 있다고 한다.(영어)
  • Node.js 라이브러리 Readability로 전문 RSS 만들기 : 브라우저의 읽기 모드를 활용하는 mozilla/readability를 이용해서 블로그나 사이트의 본문만 가져온 다음에 이를 RSS로 제공하는 Node.js 서버를 구성하는 방법을 설명한다.(한국어)

인프라 관련

  • How Netflix brings safer and faster streaming experiences to the living room on crowded networks using TLS 1.3 : Netflix에서 TLS 1.3을 지원해서 스트리밍 성능 개선을 한 이야기다. 글의 상단 부분은 TLS 1.3이 1.2보다 왜 더 안전하고 성능이 좋은지를 설명하는 내용이지만 뒷부분에 가면 Netflix에서 A/B 테스트를 수행한 결과가 나온다. TLS 1.3의 0-RTT 덕에 동영상 시작 지연 시간이 3 ~ 8% 빨라졌고 CPU 부하도 적어져서 네트워크 외에 CPU 연산 때문에 지연되는 플레이 시작도 7% 정도 개선되었다고 한다.(영어)
  • Coding a real-time dashboard for Kubernetes : kubectl--watch 옵션이 사용하는 API의 동작을 이용해서 kubectl proxy로 Kubernetes의 API에서 변경사항을 받아와서 실시간으로 클러스터의 상태를 업데이트하는 Node.js 애플리케이션을 만드는 방법을 설명하고 있다.(영어)_
  • AWS Managed WAF 체험기 : AWS에서 새로 업데이트한 Managed WAF의 사용법을 설명하고 설정할 때의 주의점을 정리한 글이다.(한국어)

볼만한 링크

  • 서버 개발 인턴 robin의 성장기 : 카카오에서 인턴십을 2달 동안 하고 나서 개발 업무를 어떻게 배워나갔는지 후기를 정리한 글이다. 각 기술이 왜 생겼는지 역사를 공부하고 단순히 검색으로 문제만 해결하는 게 아니라 원인을 찾아가는 과정을 배우고 개발하다 보면 필수적인 수많은 시행착오가 의미 있는 시간이라는 것을 깨달으면서 성장했다고 하는데 2달 만에 많은 것을 해보고 배우신 거로 보인다. 마지막에는 인턴 전에는 알지 못했던 스프린트나 스크럼, Jira 등 일하는 방식에 관해 나와 있어서 회사 업무에 관심 있으신 분들도 도움이 될 것 같다.(한국어)
  • 번역) 내가 COVID19 데이터를 시각화하지 않는 이유 : COVID19가 세계적인 이슈가 되었는데 이를 시각화했을 때 만든 사람이 COVID19나 사회에 대한 전문 지식이 많지도 않고 시각화를 보는 사람들이 너무 심각하게 생각하거나 너무 가볍게 생각하는 해석의 문제가 생길 수도 있으므로 이를 사이드 프로젝트 처럼 가볍게 시각화할 문제가 아니라고 지적하는 글이다. 이런 시각화는 전문가들이 모인 팀이 해야 하고 전문가들이 만든 사이트의 UI가 별로라면 도움을 줄 기회이니 해당 기관에 연락하는 게 오히려 낫다고 얘기하고 있다.(한국어)

IT 업계 뉴스

  • ZEIT is now Vercel : Next.js, Now, Hyper 등을 만든 Zeit가 2,100만 달러의 시리즈 A 펀딩을 받고 Vercel로 사명을 바꾸었다. Vercel은 versatile, accelerate, excel을 의미한다.(영어)

프로젝트

  • keys.pub : 암호화 키를 관리하는 오픈소스 프로그램.
  • phelia : React 처럼 Slack 인터랙티브 앱을 만들 수 있는 프레임워크.
  • PWA Store : PWA 앱을 모아놓은 사이트.

버전 업데이트

2020/05/01 04:34 2020/05/01 04:34