A cartoon intro to DNS over HTTPS : 브라우저가 사이트에 접속하려고 할 때 DNS를 조회하는 과정을 설명하고 HTTPS를 이용한다고 하더라도 DNS를 조회할 때 DNS 리졸버가 그 중간 과정에 있는 서버들이 어떤 사이트에 접속하려고 하는지 정보를 볼 수 있는 등 이 과정에서 데이터가 유출될 수 있는 부분을 설명한다. 이어서 Trusted Recursive Resolver(TRR)와 DNS over HTTPS(DoH)를 이용하면 이 정보를 어떻게 막을 수 있는지 설명하고 TRR과 DoH를 적용하더라도 감출 수 없는 정보까지 설명하고 있다. 최근 정부에서 SNI를 이용해서 사이트를 감청하려는 시도로 문제가 되었는데 시기적절하게 DNS over HTTPS를 이해하기 좋은 글이다.(영어)
AST for JavaScript developers : Babel 등에서 JavaScript 트랜스파일이나 코드 분석에 사용하는 AST(Abstract Syntax Tree)에 관해설명한 글이다. AST가 어떻게 동작하고 Babel에서는 어떻게 이용하는지 설명한 후 개발자들이 많이 사용하는 Jscodeshift, Prettier같은 도구에서 AST를 이용하는 방법을 설명하고 있다. AST를 만들고 이용하는 방법을 이해하기에 좋다.(영어)
Progressive Web Apps on the Desktop : Chrome 67에 베타로 추가된 데스크톱 PWA에 대한 소개 글이다. 홈 스크린에 추가되는 방식과 디자인 고려사항 등을 간략히 설명해 주고 있다. 현재는 Mac과 Windows를 지원하는데 데스크톱 앱을 만들어야 할 때 앞으로 고려해 볼 수 있을 것 같다. (영어)
The Front-End Tooling Survey 2018 - Results : 프론트엔드 도구 관련 설문에 5,000여 명이 응답한 결과를 정리한 글이다. CSS 전처리기, Lint 도구, JS 라이브러리, 테스트 도구 등 사용하거나 익숙도 등을 묻는 말이 대부분이다. 이전 설문과 비교해주어서 도구의 트랜드를 어느 정도 파악해 볼 수 있고 많이 사용하는데 모르는 도구를 한번 찾아보기에 좋다.(영어)
340만 동접자 이후 서비스 다운 관련 사후 분석 내용 : 게임 포트나이트가 340만 동시 접속을 이루면서 겪은 장애 내용을 정리한 글이다. 포트나이트의 설계내용과 관계없이 각 부분의 처리용량과 장애 상황에 대한 파악과 장애 내용 기록, 사후 대책에 대한 고민까지 깔끔하게 정리된 것이 인상적이다.(한국어)
Mocking is a Code Smell : 테스트 코드를 사용할 때 Mocking이 필요하다면 코드에 개선할 부분이 있다는 신호로 봐야 한다는 논조의 글이다. TDD와 유닛 테스트, 테스트 커버리지에 대해서 정의하고 Mocking이 필요하다면 코드에 깊은 커플링이 있다는 의미이고 커플링이 왜 발생하고 함수형 프로그래밍에서는 이러한 커플링을 어떻게 해결할 수 있는지 설명하고 있다. 마지막에는 JavaScript로 코드의 의존성을 해결할 수 있는 예시를 보여주고 있는데 아주 긴 글이지만 테스트에 관심이 있다면 충분히 도움이 될만한 글이다.(영어)
iOS-factor : 웹 서비스를 만드는 방법론인 The Twelve-Factor app에 영감을 받아서 iOS 개발 프로세스에 적용할 수 있는 원리를 정리한 내용이다. Dependencies, Config, Dev/prod parity, Deployment, Prefer local over remote, Backwards compatible APIs, App versioning, Persistence of data 8가지 항목으로 정리되어 있다.(영어)
Introducing Git protocol version 2 : Git 프로토콜의 버전 2가 나왔다. 현재는 원격 저장소의 모든 레퍼런스(브랜치 등)를 가져와야 하지만 이젠 서버사이드 필터링이 추가되어 원하는 브랜치 등만을 가져오는 것이 가능해져서 50만 개 이상의 레퍼런스가 있는 저장소에서 3배 정도의 속도 향상을 보였다고 한다. 기존 프로토콜에서 버전 2 정보를 추가로 보내서 동작하기 때문에 구버전의 저장소와 호환해서 사용할 수 있고 Git 2.18에 새 프로토콜이 추가될 것으로 예상한다고 한다.(영어)
행복을 찾기 위한 우리의 여정, 쿠팡의 MSA — Part 1, Part 2 : 쿠팡에서 모로리틱 아키텍터에서 마이크로서비스 아키텍처로 전환한 과정을 설명하다. 기존 아키텍처에서 겪은 문제를 설명하고 Vitamin 프레임워크, 프로바이더 헬퍼, 메시지 큐를 사용하는 전략을 통해서 MSA로 전환을 한 과정이 나와 있다. 2부에서는 MSA를 유지하기 위해 구성 관리 데이터베이스, 배포 시스템, A/B 테스트 등을 적용한 경험을 공유하고 있다. 쿠팡 정도의 큰 시스템에서 MSA로 전환한 경험이라 유용한 글이다.(한국어)
Kubernetes Containerd Integration Goes GA : Kubernetes의 Containerd 통합이 베타 단계를 넘어서 GA가 되었다. 이로써 Docker뿐 아니라 다른 컨테이너도 사용할 수 있게 되었고 Containerd로 인해 내부 구조가 더 간단해졌으면 성능도 상당히 높아졌다. 그리고 추가로 트러블슈팅에 사용할 수 있는 crictl에 대해서도 설명하고 있다.(영어)
Open Sourcing Zuul 2 : Netflix에서 클라우드 게이트웨이 Zuul 2를 오픈소스로 공개했다. 내부에서 사용하는 Zuul 2를 오픈소스로 공개한 것으로 이번 오픈소스 버전에 포함된 기능에 관한 설명과 아직 공개되지 않았지만, 내부에서 개발 중인 기능에 관한 설명이 포함되어 있다.(영어)
Full Cycle Developers at Netflix — Operate What You Build : Netflix에서 디자인, 개발, 테스트, 배포, 운영 등의 단계에 각 전문가를 배치했지만 서로 간의 커뮤니케이션 비용이 커지고 개선이 안 되는 문제를 해결하려고 Full Cycle Developer 모델을 도입해서 해결한 부분을 설명한 글이다. 개발한 것을 직접 운영한다는 DevOps의 원리와 마찬가지로 Full Cycle Developer는 소프트웨어의 전체 주기에 관여하면서 관련 도구를 만들어서 개선하도록 했다. 기존에는 다른 영역을 지원하더라도 자기 일이라고 생각하지 않고 지원해 준 뒤 자기 일로 돌아온다는 생각을 하고 있었는데 Full Cycle Developer는 서비스를 고객에게 제공하는 것이 자기 일이므로 이런 부분에서 비효율이 발생한다면 자동화를 하거나 도구를 만들어서 개선하도록 한다는 것이다.(영어)
After 5 years and $3M, here's everything we've learned from building Ghost : 오픈소스 블로그 플랫폼인 ghost를 5년간 개발한 경험을 공유한 글이다. 잘 모르고 있었지만, 킥스타터 후원으로 비영리 기구를 만들어서 오픈소스로 Ghost를 만들어서 원격으로 만들면서 수익을 내고 직원 월급을 준 과정이 적혀있다. 비영리 기구라서 파운더라고 주식을 갖고 있거나 하지 않지만 다른 회사처럼 월급을 주면서 운영하고 ghost를 만들면서 실수했던 부분과 잘했던 부분, 오픈소스 생태계에 대한 생각 등이 담겨있어서 재미있다.(영어)
Comments