Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.

기술 뉴스 #145 : 20-03-02

웹개발 관련

  • The Facts: Mozilla’s DNS over HTTPs (DoH) : Firefox가 DNS 쿼리를 안전하게 보호할 수 있는 DNS-over-HTTPS(DoH)를 미국에서 기본으로 활성화하기로 했다. Cloudflare, NextDNS 등과 Trusted Recursive Resolver program을 함께 하며 개인 정보를 보호하기 위해 정보 보관 기간을 짧게 하는 등 엄격한 제약을 정해놓고 있다.(영어)
  • Stealing JWTs in localStorage via XSS : 로컬스토리지에 저장된 JWT를 XSS를 이용해서 통째로 덤프 떠서 공격자 서버로 보내도록 하는 방법을 설명하는 글로 로컬스토리지에는 민감한 데이터를 저장하지 않을 것을 권장하고 있다.(영어)
  • Request is deprecated : Node.js 초반부터 오랫동안 사용되던 HTTP 클라이언트 라이브러리인 Request가 2월 11일로 완전히 Deprecated 되었다.(영어)

그 밖의 개발 관련

  • LINE 메시징 서버가 새해 트래픽을 대비하는 과정 : 새해 인사로 메시지가 많이 발생하는 메신저의 특성에 따라 Line에서 새해를 준비하는 과정을 설명한 글이다. 신년을 대응하기 위해서 매년 준비한 내용과 결과 트래픽을 기록해 두고 프로세스를 만들어서 매년 준비하고 있고 작년에는 메시징 서버의 성능 개선을 하고 Redis 클러스터에서 클러스터를 분리하고 악성 사용자를 차단하는 등의 로직을 넣었다고 한다.(한국어)
  • Armeria로 Reactive Streams와 놀자! - 1, 2 : 1편에서는 동기/비동기, 스트림, 백 프레셔의 개념을 설명하고 Java의 Reactive Streams API의 사용법을 설명하고 2편에서는 이 Reactive Streams를 Armeria에서 어떻게 이용하는 지를 보여주고 있다.(한국어)
  • What’s New in Java 14? : 3월 17일에 릴리스될 Java 14에 새로 추가되는 Switch 표현식, 디버깅이 쉽도록 개선된 NullPointerException, 아직 실험적인 패키지 도구, 가비지 컬렉션 개선 등이 설명되어 있다.(영어)
  • Introducing Dispatch : Netflix에서 위기관리를 할 수 있는 플랫폼 Dispatch를 오픈소스로 공개했다. Dispatch는 장애가 생겼을 때 API로 연동하거나 사용자가 직접 등록할 수 있도록 해서 장애를 어떻게 처리하고 미래에 어떻게 관리할 수 있는지에 대한 정보를 한곳에 모을 수 있다.(영어)
  • 테스트 커버리지 100% : 클린 코더 책을 보고 회사 프로젝트에서 강제로 테스트 커버리지를 100% 까지 끌어올리고 1년간 유지한 경험을 정리한 글이다. 세부 테크닉 보다 100%까지 끌어올리기가 얼마나 어려웠는지 그리고 100%로 유지하고 나니 리팩토링 등 코드 수정을 할 때 상당한 자신감을 가질 수 있었다고 하고 있다.(한국어)

인프라 관련

  • Architecting Kubernetes clusters — how many should you have? : Kubernetes 클러스터를 구성할 때 앱이 3개만 있어도 dev, staging, production 환경별로 총 9개의 조합이 나오는데 이때 하나의 클러스터에 모두 담을지 환경별로 클러스터를 만들지, 앱별로 클러스터를 만들지 등 다양한 고민을 하게 되는데 각 선택에 따른 장단점을 정리한 글이다.(영어)

볼만한 링크

  • [인터뷰] 슬랙 CTO에게 직접 듣는 빛과 그늘 (1), (2) : 일본의 NewPicks가 Slack의 CTO 칼 핸더슨과 인터뷰한 내용을 번역 정리한 글이다. Slack의 발전 과정도 볼 수 있지만, Slack을 이용하는 일본의 독특한 문화와 개발자가 의도한 여러 가지 편리한 기능들을 볼 수 있다.(한국어)
  • Sketch에서 Figma로, 삐빅! 환승입니다. : Ridi의 디자이너가 Sketch로 디자인을 하다가 최근 주목받고 있는 Figma로 갈아탄 경험을 정리한 글이다. Sketch를 쓸 때는 협업이 쉽지 않고 제플린을 따로 관리해야 하는 등의 불편함이 있었는데 Figma는 한 도구에 모든 기능이 다 들어있고 협업하기도 편하다는 점을 장점을 들고 있다. 한글 버그나 프로토타입 등 불편한 점과 함께 유용한 플러그인도 정리되어 있다.(한국어)

IT 업계 뉴스

프로젝트

  • grep.app : GitHub의 코드를 빠르게 검색할 수 있는 웹사이트.
  • Google Lighthouse for Firefox : Google Lighthouse의 Firefox 익스텐션.
  • Permission manager : Kubernetes RBAC과 사용자 관리를 할 수 있는 웹 UI.
  • Brunsli : Google에서 공개한 JPEG 리패키징 라이브러리로 손실없이 JPEG 파일의 용량을 22% 줄일 수 있다고 한다.
  • Rome : Babel과 Yarn을 만든 Sebastian McKenzie가 시작했고 Facebook의 팀이 개발 중인 JavaScript 툴체인.
  • esbuild : Go로 만든 JavaScript 번들러/미니파이어.

버전 업데이트

2020/03/02 20:20 2020/03/02 20:20

기술 뉴스 #144 : 20-02-15

웹개발 관련

  • Understanding the ECMAScript spec, part 1 : ECMAScript 명세를 이해하는 방법을 설명하는 글이다. 명세를 읽을 때 나오는 [[]], ? 같은 기호의 의미와 abstract operation 같은 용어가 무슨 의미인지를 hasOwnProperty의 명세를 보면서 설명하고 있다. ECMAScript를 읽어볼 일이 있다면 참고하기 좋은 내용이다.(영어)
  • SameSite Cookie Changes in February 2020: What You Need to Know : Chrome 80부터 SameSite를 설정하지 않은 쿠키는 모두 SameSite=Lax가 기본값이 된다. Lax로 설정하면 쿠키를 처음 설정된 도메인과 안전한 요청에서만 쿠키를 사용할 수 있게 된다.(영어)

그 밖의 개발 관련

  • Why Discord is switching from Go to Rust : Discord에서 사용자가 읽은 메시지 상태를 관리하는 Read States 서비스에서 2분마다 스파이크가 생기는 문제를 추적해서 Go의 가비지 컬렉션 때문임을 알게 되고 이 부분을 해결하려는 도중 사내에서 Rust를 많이 도입하기 시작했고 가비지 컬렉션이 없는 Rust로 Read States 서비스를 재작성했다. 그 결과 스파이크는 줄어들고 자원은 더 적게 사용할 수 있게 되었다.(영어)
  • 안심번호 마이크로서비스 개발하기 : 당근마켓에서 광고주의 실제 전화번호를 숨겨주는 안심번호를 구현한 이야기다. 안심번호 자체가 중요한 것은 아니고 TypeScript로 작성한 Node.js 서버로 gRPC와 HTTP를 모두 지원하는 서버를 만들면서 오류 핸들링이나 통신사와 통신 포맷을 맞추면서 고민했던 부분이 나와 있다.(한국어)
  • Supercharge your command line experience: GitHub CLI is now in beta : 터미널에서 GitHub의 이슈를 보거나 풀 리퀘스트를 여는 등 GitHub의 기능을 이용할 수 있는 CLI를 공개했고 현재 베타 상태이다. 이전에는 hub라는 CLI 도구가 있었지만 이제 새 gh CLI로 대체될 것으로 보인다.(영어)
  • Semantic Segmentation을 활용한 차량 파손 탐지 딥러닝 모델 개발기 : 쏘카에서 사용자들이 차량을 이용하기 전에 현재 차량의 상태를 사진으로 올리는데 이러한 사진을 사람이 직접 검수하는 과정을 자동화하기 위해 딥러닝을 도입한 과정이다. 딥러닝을 도입하면서 데이터 구조와 모델 구조, 학습 과정 등이 잘 나와 있고 실제로 도입을 하기 위해서 정확도를 올리기 위한 개선은 어떻게 진행했는지 설명한다.(한국어)
  • Google API Improvement Proposals : Google의 API 설계에 대한 결정 사항을 정리해 놓은 문서다. 문서가 스펙 문서처럼 작성되어 읽기 편한 형식은 아니지만, API의 개선 제안이 진행되는 과정이나 구글이 리소스명, 메서드 등에 어떤 규칙을 사용하는지 알 수 있다.(영어)
  • AutoFlip: An Open Source Framework for Intelligent Video Reframing : Google이 비디오에서 사람 등 중요 장면을 중심으로 지능형 리프레이밍이 가능한 프레임워크 AutoFlip을 오픈소스로 공개했다.(영어)

인프라 관련

  • 네이버 검색의 SRE 시스템 : 대용량 분석 시스템인 네이버 검색이 더 안정적으로 동작하도록 SRE의 관점으로 개선을 진행한 내용이다. 실제 시스템 개편 자체에 참여한 것은 아니고 비상 대응 체계와 장애 탐지를 할 수 있도록 지원하고 포스트모텀 보고서를 만들어서 사내에 포스트모텀 문화를 만들고 경보 시스템을 고도화했다고 한다. 이를 통해 지난 2년간 네이버 검색은 더 많은 개선을 하면서도 장애를 크게 줄이는 효과를 보았다.(한국어)
  • GitOps와 ArgoCD : Intuit 사에서 만든 GitOps 구현체 ArgoCD를 소개하고 ArgoCD를 설정해서 Kubernetes에 배포하는 방법을 설명한다.(한국어)
  • Pro Tip: Instantly Turn Slack Messages into Grafana Annotations with the Memo Tool : Grafana의 어노테이션 API를 이용해서 슬랙에 메시지를 남기면 해당 시점에 어노테이션을 Grafana 대시보드 상에 표시할 수 있는 슬랙봇 memo를 만들어서 공개했다.(영어)

볼만한 링크

  • 기술 블로그를 다시 디자인하며 : 마켓컬리가 기술 블로그를 개편한 과정을 정리한 글이다. 기술 관련 글을 쓸 수 있도록 회사의 문화로 만들기 위해 튜토리얼을 작성하고 커밋 히스토리를 관리하고 리뷰를 하면서 팀 간 교류를 늘리고 오랫동안 멈춰있던 블로그를 다시 살려서 활발해졌다.(한국어)
  • 혹독한 조언이 나를 살릴까? : 조언을 혹독하게 할 경우 실제로 효과가 있는지에 대한 김창준 님의 글이다. 이와 관련된 다큐멘터리와 그 뒷이야기를 예시로 들면서 심리상담학에선 "내담자를 존중하지 않는 방식은 장기적으로 효과가 없거나 부정적이었다는 것"이라는 결론을 내렸다고 한다. 마지막에는 조언할 때 도움이 될만한 접근 방법을 알려준다.(한국어)
  • FE News : 네이버 프론트엔드 엔지니어들이 주요 기술 소식을 큐레이션하는 뉴스레터를 공개했다. 월 1회 발행 예정이라고 한다.(한국어)

IT 업계 뉴스

프로젝트

  • Playwright : Google의 Puppeteer 팀이 Microsoft로 옮겨가서 Puppeteer와 비슷하지만 웹킷와 파이어폭스까지 제어할 수 있도록 새로 만든 프로젝트.

버전 업데이트

2020/02/15 19:03 2020/02/15 19:03