Outsider's Dev Story

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

기술 뉴스 #124 : 19-04-15

웹개발 관련

  • UI 런타임으로서의 React : React를 단순히 UI 라이브러리가 아니라 UI 런타임이라는 관점에서 React 코어 개발자인 Dan Abramov가 설명하는 글이다. 이는 단순히 브라우저만을 위한 것이 아니라 UI를 표현하기 위한 호스트 트리를 생성함으로써 단순히 웹사이트뿐만 아니라 모바일 앱, 문서 등 원하는 UI를 만들기 위해서 React가 어떻게 관여하는지를 설명하고 있는데 초보자를 위한 글은 아니지만, React가 여러 플랫폼 사이에서 어떤 위치를 가지고자 하는지를 잘 이해할 수 있는 글이다. 전에 영어로 읽다가 너무 길어서 포기했는데 번역이 되어서 쉽게 읽을 수 있었다.(한국어)
  • Google AMP lowered our page speed, and there's no choice but to use it : AMP와 아닌 사이트를 비교했을 때 글쓴이의 사이트는 AMP가 오히려 속도가 더 느렸음에도 구글이 웹을 거의 소유하고 있어서 사이트 제공자가 구글을 무시할 수밖에 없기 때문에 AMP를 사용할 수밖에 없다는 글이다. AMP의 제약이 너무 심하고 사이트에 특화된 기능을 제공하고 싶어도 AMP 컴포넌트가 아니면 할 수가 없고 오픈소스여도 사실상 구글의 입김이 가장 세기 때문에 사용자들이 의견을 제시해도 제대로 적용이 되고 있지 않다고 한다.(영어)
  • Code caching for JavaScript developers : V8에서 코드 캐싱이 동작하는 방법과 캐싱을 활용하기 위해 개발자들이 할 수 있는 방법을 설명하고 있다. 캐싱을 더 잘 이용하려면 코드나 URL, 혹은 런타임에 따라 달라지는 조건을 바꾸지 않는 것이 좋고 상황에 따라 라이브러리를 분리하거나 합쳐야 할 수도 있고 1KiB 이상만 캐싱하므로 작은 스크립트를 합치고 즉시 실행 함수 표현식을 사용하면 더 캐싱을 적극적으로 사용할 수 있다고 한다.(영어)

그 밖의 프로그래밍 관련

  • Easily identify problems in Node.js applications with Diagnostic Report : 별도의 모듈로 있던 Node.js 프로세스를 진단하는 Diagnostic Report API가 노드 코어로 들어와서 프로세스의 힙 덤프나 연결된 SSL 버전 등을 더 쉽게 확인할 수 있다.(영어)
  • koin 2.0 맛보기 : Kotlin용 의존성 주입 프레임워크인 koin 2.0의 사용법을 안드로이드 개발 환경 위주로 설명하는 글이다.(한국어)

볼만한 링크

  • [연대기] '게임왕' 마이크 모하임, 그 위대한 27년의 기록 : 마이크 모하임이 "실리콘&시냅스"부터 "블리자드"를 만들고 이제 은퇴하기까지 그간의 과정을 정리한 글이다. 꼭 게임을 엄청나게 좋아하지 않더라도 블리자드를 무시할 수 없는데 마이크 모하임이 블리자드와 함께 어떻게 발전해 왔는지에 대한 일대기가 정리되어 있어서 재미있는 글이다.(한국어)
  • 후배 개발자에게 - 2019년 : 현업에서 오랜 경험을 가지고 지금은 교육자의 길을 걷고 계신 자바지기님이 후배 개발자들이 성장하기 위해서 도움이 될만한 내용을 정리해서 쓴 글이다. SI 개발자들한테 욕먹을 생각으로 "하루라도 빨리 떠나라"라고 하신 것처럼 나도 욕먹을까 봐 얘기하진 못했지만, 기본적으로 생각하는 내용은 거의 같다. 구체적인 실천사례보다는 방향을 위주로 얘기하고 있지만, 개발자의 진로에 대해서 고민하고 있다면 한번 읽어볼 가치가 있는 글이다.(한국어)
  • 페이스북의 '좋아요'는 어떻게 프로파일링에 사용되었는가 : 페이스북 - 케임브리지 아날리티카 스캔들은 정리한 How Cambridge Analytica’s Facebook targeting model really worked - according to the person who built it를 번역한 글이다. 데이터 분석 쪽은 잘 모르지만, 이 스캔들의 핵심인 코건과 메일을 주고받은 내용을 바탕으로 페이스북 사용자의 좋아요를 넷플릭스의 추천알고리즘과 유사한 데이터 차원 축소 방식으로 분석했다고 하고 이를 통해 사용자의 정당 지지 여부를 85%까지 예측할 수 있다고 한다.(한국어)
  • Stack Overflow Developer Survey Results 2019 : Stack Overflow가 매년 사용자를 대상으로 진행한 설문 결과를 공개했다. 이 결과를 통해 Stack Overflow의 사용자들이 지역이나 성별, 선호 기술, 연차 등 아주 자세한 설문 결과의 통계를 볼 수 있다.(영어)
  • How The Big Five Tech Companies Make Their Money, Visualized : Apple, Amazon, Facebook, Alphabet, Microsoft가 주 수익이 어디서 나오는지를 정리한 글이다. 애플은 아이폰에서, 아마존은 온라인스토어에서 반 이상의 이익을 얻고 있고 페이스북과 알파벳은 광고에서 대부분의 이익을 얻고 있다. 마이크로소프트는 오피스의 수익이 가장 크지만 비교적 고르게 수익구조가 나누어져 있다.(영어)
  • 100주년 기념 서체 : 윤디자인에서 3.1운동 및 대한민국임시정부 수립 100주년을 기념해서 4종의 무료 폰트를 공개했다.(한국어)

IT 업계 뉴스

프로젝트

  • GoReleaser : Go 프로젝트의 릴리스 자동화 도구.
  • Electronegativity : Electron 애플리케이션의 설정이 잘못된 부분이나 보안 관련 안티패턴을 찾아주는 도구.
  • Giistr : GitHub에서 Star를 누른 프로젝트를 기준으로 기여할 수 있는 이슈를 쉽게 검색할 수 있도록 하는 서비스.
  • Awesome Design Tools : 디자인 관련 도구를 주제별로 정리해 놓은 사이트.
  • pyright : Microsoft에서 만든 Python 정적 타입 검사기.

버전 업데이트

2019/04/15 23:55 2019/04/15 23:55

기술 뉴스 #123 : 19-04-01

웹개발 관련

  • QUIC과 HTTP/3 - 1. UDP기반 전송 프로토콜의 대두 : QUIC을 설명하는 시리즈 글인데 1편에서는 TCP에 어떤 특징과 한계가 있어서 UDP 프로토콜을 사용하게 되었는지(QUIC이 UDP를 사용한다) QUIC과 HTTP/3 - 2. 기존의 성능 개선 기법 및 한계에서는 우리가 사용하는 HTTP에서 지연시간에 영향을 주는 RTT, HoLB를 설명하고 HTTP/2에 특징을 설명하고 있다. 관련 레퍼런스까지 꽤 자세하게 나와 있어서 찬찬히 읽어볼 만하고 본격적으로 QUIC이 등장할 3편이 기대된다.(한국어)
  • Standardizing WASI: A system interface to run WebAssembly outside the web : WebAssembly가 웹 브라우저 밖에서도 주목을 받으면서 다양한 머신에서 WebAssembly를 실행할 때 브라우저 외에 운영체제에서도 실행할 수 있도록 만들어진 WASI(WebAssembly system interface)를 설명하는 글이다. 왜 WASI가 필요했고 어떻게 구성되어 있는지가 설명되어 있다. WASI에 대해서는 최근에 알게 되었는데 이글을 통해 대충의 개념을 잡을 수 있다.(영어)
  • Introducing the JetStream 2 Benchmark Suite : Webkit에서 JavaScript 벤치마크 도구인 JetStream의 새 버전인 JetStream 2를 발표했다. 2에서는 2014년 공개한 이전 버전에서 지원하지 않던 WebAssembly, 웹 워커 등이 추가되었다.(영어)
  • Introducing the Gmail Developer Preview of AMP in Email: 모바일 콘텐츠를 빠르게 로딩해 주는 AMP를 이메일에서도 사용할 수 있게 한다고 Google에서 발표했다. AMP for Email을 통해서 AMP 컴포넌트를 이메일에서 사용할 수 있어서 더 인터렉티브한 이메일 콘텐츠를 작성할 수 있게 된다고 한다.(영어)

그 밖의 프로그래밍 관련

  • AWS 서비스를 활용한 Kubernetes 클러스터 구축 : 타다에서 AWS에 Kubernetes 클러스터를 구성한 방법을 설명하고 있다. Kubernetes 자체 설명보다는 gRPC를 쓰면서 ingress를 어떻게 구성했는지 컨테이너에서 AWS 권한을 주기 위해서 kube2iam를 적용한 방법, 로그를 수집하기 위해 CloudWatch Logs와 Prometheus를 구성한 방법, 오토스케일링을 위해서 Cluster Autoscaler를 어떻게 사용하고 있는지가 자세히 나와있다. AWS에서 Kubernetes를 구축한다면 큰 도움이 될 글이다.(한국어)
  • Introducing experimental integrity policies to Node.js : Node.js 11.8.0에 실험적으로 들어간 integrity 정책에 관해 설명하는 기능이다. 이는 웹브라우저가 리소스의 무결성을 검사하는 integrity와 마찬가지로 모듈이 조작되었는지 검사한 뒤 이상이 없으면 메모리에 올린다. 11.8.0에는 모듈 로더가 만 포함되었고 정책 manifest를 다루는 기능은 아직 들어가지 않았으므로 node-policy를 설치해서 테스트해 보아야 한다.(영어)
  • Elastic Infrastructure GA Released : Elastic Stack에서 인프라스트럭처의 매트릭을 모니터링하는 Elastic Infrastructure가 GA로 릴리스 되었다.(영어)

볼만한 링크

  • Open Source Doesn’t Make Money Because It Isn’t Designed To Make Money : 오픈소스는 돈을 벌기 위해 만들어지지 않았으므로 돈을 벌기 어렵다는 얘기의 글이다. 광고나 호스팅 서비스, 컨설팅 등 우리가 주로 돈을 내고 쓰는 제품들을 설명하고 오픈소스에는 비즈니스적인 관점이 있으므로 이런 부분을 해결하지 않으면 돈을 벌기 어렵다고 얘기하고 있다. 최근 AWS의 Open Distro for Elasticsearch도 있고 해서 생각해 볼만한 주제이다.(영어)
  • 많은 양의 개체들을 시각화하는 방법, 그리고 전국의 모든 건물 : 인구의 이동이나 각 건물 등을 대량의 데이터를 시각화하면서 개선한 내용을 설명하고 있다. 그려야 할 개체들이 많으므로 처음 Java로 구현했을 때는 렌더링에 6시간이 걸렸지만, 프로세싱으로 100초로 줄였지만 이마저도 OpenGL로 0.03초 이하로 줄이면서 시각화를 더 인터렉티브 할 수 있게 만들게 된다. 여기서 Mesh Shader라는 새로운 방식으로 더 개선하는 내용까지 나오는데 렌더링에 대한 전문 지식이 없더라도 재미있게 읽을 수 있다.(한국어)
  • 리멤버 QA팀이 하는 일 : 드라마앤컴퍼니에서 QA팀이 앱 테스트를 개선하는 과정을 설명하고 있다. 매번 전수 테스트를 하면서 점점 비효율적으로 되어서 테스트 시나리오의 기능별 분할을 통해서 수정 내용에 따라 테스트를 효율적으로 진행할 수 있게 하고 자동화할 수 있는 부분은 Appium과 Selenium을 통해 테스트를 자동화했다고 한다. QA에서 API를 배워서 테스트의 효율 및 개발팀과의 협업을 개선한 부분도 흥미롭다.(한국어)
  • 스타트업에서 디자인과 고군분투하기 : 브알못의 로고 리디자인 : 서비스 "구름"을 만드는 코다임에서 사명을 구름으로 바꾸기로 하면서 새로 로고를 디자인한 과정을 나와 있다. 새 로고의 컨셉을 정하는 부분부터 다양한 디자인을 통해서 사내에 피드백을 통해서 로고를 정하고 이를 다듬는 과정을 보여주고 있다.(한국어)

IT 업계 뉴스

프로젝트

  • GitHub Issue Link Status : GitHub의 이슈 링크에서 열렸는지 닫혔는지 등 상태를 색상으로 표시해 주는 브라우저(크롬, 파이어폭스, 오페라) 확장 프로그램.
  • Release Drafter : Pull Request가 머지되면 draft 릴리스를 업데이트해 주는 GitHub App.
  • terraform-best-practices : Terraform 사용 팁을 모아놓은 저장소.
  • 한글 맞춤법 검사기 : Facebook, Twitter, GitHub 등에서 글을 작성할 때 맞춤법 검사를 도와주는 크롬 익스텐션.
  • Lucet : Fastly에서 만든 웹어셉블리 컴파일러.
  • kubernetes-client : GoDaddy에서 Node.js로 만든 Kubernetes API 클라이언트.
  • 0x : Node.js 프로세스를 프로파일링하는 프레임 그래프를 생성해 주는 도구.
  • ptr : Python 테스트 러너.

버전 업데이트

2019/04/01 18:22 2019/04/01 18:22