웹개발 관련
- 개발자, 트렌드를 버리다 — 1년 후 소감 : 웹 기반의 웹 디자인 도구를 1년 동안 발전 시킨 과정을 설명한 글이다. React, Vue 등 새로운 기술로 프론트 기술이 많이 바뀌고 있지만, CSS와 SVG를 이용한 웹 디자인 도구를 웹에서 만들기 위해서 트렌드와는 달라도 계속 발전하면서 고민한 과정이 고스란히 담겨있다. 결과물을 보면 데스크톱 도구에 못지않고 프론트엔드 개발자로 일한다고 하더라도 쉽게 얻을 수 없는 경험이라서 더 대단하게 느껴진다.(한국어)
- The process: Making Vue 3 : Vue를 만든 Evan You가 Vue 3을 만들게 된 배경을 설명한 글이다. 2020년 전반기에 릴리스 하는 것이 목표였지만 아직은 작업 중이다. Proxy 같은 ECMAScript의 새 기능을 쓰고 싶었고 템플릿 컴파일러가 소스맵을 지원하기 어려운 등 구조적 문제로 유지 보수가 어려웠기 때문에 새로 재작성하기로 했다고 한다. 2018년 후반 프로토타이핑을 시작하면서 TypeScript로 작성하기로 했고 새 기능 도입을 위한 RFC 과정을 도입했다. AST 변환 파이프라인을 만들어서 Virtual DOM 업데이트 성능이 개선되어 이전 보다 CPU 시간이 1/10로 줄어들었고 트리쉐이킹을 더 잘 지원하게 되어 번들러가 최적화하기 쉬워져서 최소 용량이 10KB(gzip 기준, 2는 23KB)이 되었다. 추가로 확장성을 위해 React Hook의 영감을 받아 Composition API를 추가했다.(영어)
- RecoilJS is meant to rock your React world : Facebook에서 React의 상태 관리 라이브러리로 새로 발표한 Recoil이 React를 더 강력하게 만들 거라는 글이다. Recoil의 상태 유닛인
atom
을 정의하고selector
로atom
에서 다른 상태를 만드는 방법을 설명하고 이를 React 컴포넌트에서 어떻게 가져다 쓸 수 있는지를 보여주고 있다.(영어) - Types-First: A Scalable New Architecture for Flow : Flow의 classic 모드에서는 파일을 수정했을 때 의존성 파일을 모두 확인하면서 병렬로 검사할 수 없어서 성능 문제가 있었지만, types-first를 적용하면 병렬로 의존성을 검사할 수 있기 때문에 Facebook의 코드에 적용했을 때 90%의 경우 6배 이상의 속도 향상이 있다고 밝히고 있다. types-first를 적용하려면
.flowconfig
파일에type_first=true
를 설정해 주어야 한다.(영어) - Web Vitals : Google에서 만든 사용자 경험이 좋은 웹의 가이드라인을 제시하는 사이트이다. LCP(Largest Contentful Pain), FID(Fisrt Input Delay), CLS(Cumulative Layout Shift)를 기준으로 어느 정도 시간이어야 사용자 경험이 좋은지를 제시하고 있고 이는 PageSpeed Insights, 구글 서치 콘솔, Chrome 사용자경험 보고서에서 모두 지원하고 있다.(영어)
- Mastering Async/Await : New Ebook: Mastering Async/Await 이북을 한국어로 번역한 페이지다.(한국어)
- Test website security with Snyk’s newest WebPageTest integration : Snyk의 보안 검사가 WebPageTest에 추가되어 웹사이트의 보안 검사 결과를 함께 볼 수 있게 되었다.(영어)
그 밖의 개발 관련
- Zero-day in Sign in with Apple : 애플 계정으로 다른 서비스에 로그인할 수 있는 Sign in with Apple에서 인증에 사용하는 JWT를 요청할 때 아무 이메일을 이용해서 Apple의 공개키로 서명만 하면 인증정보가 오는 취약점이 발견됐다. 즉 다른 사람의 이메일 주소만 알면 그 서비스에 로그인할 수 있는 취약점이다. 지금은 해결된 문제이고 이 취약점을 애플에 보고하고 바운티 프로그램에서 십만 달러를 상금으로 받았다고 한다.(영어)
- 3분 모나드 : 함수형 프로그래밍에서 항상 나오는 모나드의 개념을 설명하는 글이다. 결국, 모나드는 합성할 수 있는 연산을 의미하는데 이를 모나드의 정의와 이 정의가 의미하는 것이 무엇인지를 나누어서 이해하기 쉽게 설명하고 있다. 이 글 하나로 모나드를 이해했다고 말하기는 어렵지만 개념적으로 모나드의 개념이 무언인지는 감을 잡기 쉽게 잘 설명되어 있다.(한국어)
- TECHNOLOGY RADAR VOL.22 : ThoughtWorks에서 기술, 도구, 플랫폼, 언어/프레임워크 별로 분류해서 새로운 기술이 업계에 얼마나 도입 되었는지 Adopt(업계에 도입됨), Trial(어떤 기능이 있는지 이해할 필요가 있다), Assess(프로젝트의 목표를 이해할 필요가 있다), Hold(주의해서 사용해야 한다)로 나누어서 보여주고 있다. Adopt와 Trial에 있는 기술은 간단히라도 파악해 두면 트렌드를 이해하는데 도움일 될 것이다.(영어)
- Deno 1.0 : Node.js를 만든 Ryan Dahl이 TypeScript 런타임으로 새로 만든 Deno의 1.0 릴리스 공지를 번역한 글이다.(한국어)
- The Windows Subsystem for Linux BUILD 2020 Summary : WSL 2가 Windows 10의 2020년 5월 업데이트에 적용될 것이라고 한다.(영어)
- Windows Terminal 1.0 : Microsoft의 Build 2020 컨퍼런스에서 Windows Terminal 1.0을 발표했다.(영어)
- Golang News: Golang Korea 운영진에서 월 1회 Golang 관련 소식을 요약해서 공유하는 뉴스레터를 운영한다.(영어)
- 슬랙으로 특정 조건의 이메일을 받아보자! : 회사에서 그룹메일로 오는 내용은 메일보다는 Slack에서 다같이 보는게 관리가 편한 경우가 많은데 이를 바로 슬랙에서 받을 수 있게 설정하는 방법이다. 슬랙에서 Email 앱을 설정하면 전용 메일이 추가되는데 이를 바로 수신 메일로 지정할 수도 있지만 Gmail 등에서 전송설정을 해서 Slack으로 받아보게 할 수 있다.(한국어)
인프라 관련
- Sectigo AddTrust External CA Root Expiring May 30, 2020 : 2018년 Comodo CA의 새 브랜드명인 Sectigo의 AddTrust CA Root가 2020년 5월 30일에 만료가 되면서 해당 인증서를 쓰고 있는 많은 서비스와 프로그램에 장애가 발생했다.(영어)
- How to enable IPv6 on Kubernetes (aka dual-stack cluster) : Kubernetes 클러스터내에서 Pod끼리 IPv6, iPv4로 통신하고 외부에 접속 할 수 있도록 설정하는 방법을 설명하는 글이다. 관련 도구들이 아직 IPv6 지원을 다 하지 않고 EKS, GKE같은 매니지드 Kubernetes도 IPv6를 지원하지 않으므로 여기서는 kubeadm을 이용해서 클러스터를 설정하고 Calico로 IPv6도 지원할 수 있도록 설정한다.(영어)
볼만한 링크
- 과연 팀장 탓 일까? : 팀장을 맡고 나서 팀장은 어떤 역할을 해야하는지에 대한 고민을 담은 글이다. 팀장은 이런 일을 해야한다고 가이드를 제시하기 보다 짧은 기간이지만 팀장 역할을 하면서 어떤 고민을 하고 있고 팀원일 때랑 생각이 어떻게 달라졌는지에 대한 고민이 담겨있다. 비슷한 고민을 하고 있는 터라 공감이 간다.(한국어)
- Stack Overflow Developer Survey Results 2020 : Stack Overflow가 매년 사용자를 대상으로 진행한 설문 결과를 공개했다. 이 결과를 통해 Stack Overflow의 사용자들이 지역이나 성별, 선호 기술, 연차 등 아주 자세한 설문 결과의 통계를 볼 수 있다.(영어)
- 기획자는 필요없다. : 흔히 말하는 해외에는 기획자가 없다는 논조로 공유된 동영상(맞나?)으로 촉발될 글로 보이는데 조직의 규모 별로 기획자의 역할이 어떤지를 명확하게 설명하고 있다. 개인적으로는 기획자라는 실제 업무와 상관없이 혼란을 초래한다고 생각하고 있고 이 글에 나온대로 기획보다 다른 일을 훨씬 많이 하는데 기획자라는 말로만 규정하는게 문제라고 보아서 PM이나 PO(아직도 경계가 헷갈리지만...)등까지 세분화가 되어야 된다고 생각하는 편이다. 하지만 국내에서는 기획자라는 직군이 자리잡았기 때문에 이를 이해하기에 좋은 글이다.(한국어)
IT 업계 뉴스
- Facebook to acquire Giphy for $400 million : Facebook이 GIF 이미지 플랫폼인 Giphy를 4억 달러에 인수하기로 했다고 한다.(영어)
- Notion for everyone : Notion의 가격 정책이 달라지면서 무료 플랜과 퍼스널 플랜이 합쳐져서 무료로 1,000 블럭 제한 없이 맘껏 쓸 수 있게 되고 5명의 게스트와 공유할 수 있게 되었다.(영여)
프로젝트
버전 업데이트
- Grafana v7.0 : 매트릭 대쉬보드, 릴리스 공지
- Android Studio v4.0 : 안드로이드 IDE, 릴리스 공지
- Lighthouse v6.0.0 : Progressive Web Apps용 성능 분석 도구, 릴리스 공지
- Pug v3.0.0 : Node.js 뷰 템플릿 엔진, 릴리스 공지
- pnpm v5.0.0 : Node.js 패키지 매니저, 릴리스 공지
- Snowpack v2.0.0 : 웹 프론트엔드 빌드 도구, 릴리스 공지
- mocha v7.2.0 : JavaScript 테스트 프레임워크, 릴리스 공지
- Puppeteer v3.2.0 : Headless Chrome의 Node.js 라이브러리, 변경사항
- Babel v7.10.0 : JavaScript 컴파일러, 릴리스 공지
- reveal.js v4.0.0 : HTML 프리젠테이션 프레임워크, 변경사항
- ESLint v7.1.0 : JavaScript 코드 분석 도구, 릴리스 공지
- cypress 4.6 : 웹 테스트 도구, 릴리스 공지
- Istio v1.6 : 서비스 매쉬, 릴리스 공지
- Loki v1.5.0 : Prometheus 형식의 로그 수집 시스템, 릴리스 공지
- Cortex v1.1.0 : 확장가능한 장기 Prometheus 스토리지, 변경사항
- Spring Boot v2.3.0 : 스프링 애플리케이션의 구축을 도와주는 도구, 릴리스 공지
- OpenBSD 6.7: 운영체제, 릴리스 공지
- SQLite v3.32.0 : SQL 데이터베이스 엔진, 릴리즈 공지
- Qt v5.15 LTS : C++ 크로스 플랫폼 프레임워크, 릴리스 공지
Comments