Outsider's Dev Story

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

기술 뉴스 #178 : 21-07-16

웹개발 관련

  • React 18을 준비하세요 : React 18의 릴리스가 예고되면서 추가될 기능에 대한 글이 계속 올라오는 중인데 전체적으로 18의 새 기능에 대해서 정리한 글이다. 리렌더링이 필요한 업데이트를 자동으로 묶어주는 "자동배치", 긴급 업데이트 외에 천천히 업데이트해도 되는 전환 업데이트를 명시적으로 할 수 있는 startTransition를 포함한 동시성 API, <Suspense>를 이용한 서버 사이드 렌더링의 사용 방법을 설명한다.(한국어)
  • IE를 버리면 사용할 수 있는 CSS 명세 : IE 브라우저를 지원하지 않으면 사용할 수 있는 background-clip, calc()등의 명세를 정리한 글이다.(한국어)

그 밖의 개발 관련

  • Facebook에서의 Graalvm : Facebook에서 Java 8/Java11용 Oracle JDK와 OpenJDK를 사용하다가 GraalVM으로 갈아탔다고 한다. 성능 개선이 주목적이었기 때문에 GraalVM으로 전환하는 것만으로도 바로 성능을 향상할 수 있었고 모듈식으로 확장할 수 있기 때문에 유지 보수가 편해질 것으로 판단해서 GraalVM을 선택했다고 한다. 코드의 변경 없이 런타임만 전환해서 마이그레이션 할 수 있었고 Spark에 도입한 결과 CPU 사용량이 10% 줄어들었고 다고 한다.(한국어)
  • npm audit: Broken by Design : npm에서 보안 감사에 사용하는 npm audit이 문제 있다고 지적하는 글로 React의 Dan Abramov가 작성한 글이다. npm aduit은 별도의 명령어도 있지만 npm install을 실행했을 때도 자동으로 실행된다. 먼저 npm audit이 동작하는 방식을 설명하고 create-react-app으로 프로젝트를 생성하자마자 나오는 5개의 취약점이 모두 개발 단계에서만 쓰이거나 빌드 시에만 쓰여서 실제로는 공격당할 가능성이 없음에도 이를 경고하고 있고 프로젝트 메인테이너들은 이와 관련한 업데이트 리포트를 계속 받아서 불필요한 데 시간을 소비하고 있다고 설명하고 있다. 보안은 중요하지만 npm audit의 효용성에는 공감한다.(영어)
  • Airbridge가 직접 개발한 OLAP DB, Luft를 소개합니다. : 어트리뷰션 솔루션을 개발하면서 기존에 사용하던 Apache Druid가 좋았지만, 미리 계산해 놓는 방식이라 실시간 코호트 분석에는 어울리지 않아서 OLAP(Online Analytical Processing) DB를 자체 개발하기로 결정하고 Luft 라는 데이터스토어를 만들었다. Luft는 Group By된 유저 행동 분석 쿼리를 빠르게 처리할 수 있게 설계되었고 데이터를 불면이며 TrailDB를 스토리지 엔진을 사용했다고 한다.(한국어)
  • WebAssembly from Scratch: From FizzBuzz to DooM : WebAssembly로 FizzBuzz 앱을 직접 작성해 보고 Doom을 WebAssembly로 포팅해보는 튜토리얼이다.(영어)

인프라 관련

  • CNI Benchmark: Understanding Cilium Network Performance : CNI인 Cilium과 Calico의 네트워크 성능을 비교해서 차이점을 살펴본 글이다. eBPF를 비교하기 위해 Calico eBPF도 비교 대상에 넣었다. 컨테이너 간 네트워크에는 오버헤드가 있는데 이를 eBPF는 iptables와 오버헤드가 발생하는 부분을 생략할 수 있게 해주므로 네트워크 성능이 훨씬 개선된다. 네트워크 부하를 더 크게 한 결과에서도 eBPF(Cilium, Calico 둘 다)가 좋은 성능을 보여주었다.(영어)
  • Go언어로 나만의 Query Exporter 만들어보기! : Prometheus로 매트릭을 수집할 때 Exporter에서 매트릭을 가져와서 Prometheus가 저장하게 되는데 이 Exporter를 Go 언어로 직접 구현해 보면서 Exporter의 구조를 이해하게 해주는 글이다. 먼저 Prometheus가 접근할 수 있게 HTTP 요청을 받도록 열어주고 커넥션 수를 반환하도록 Collector를 구현하는 과정을 보여준다.(한국어)
  • Kubernetes Essential Tools: 2021 : Kubernetes를 사용할 때 유용한 도구를 모아놓은 글이다.

  • 29CM 로그 수집 시스템 소개 : 29CM에서 기존에는 Fluentd와 Elasticsearch를 이용해서 로그를 수집하고 있었지만, 관리의 어려움과 로그 유실을 막기 위해서 새 로그 수집 시스템을 구축했다. 새 시스템은 로그 수집 단계에 Kafka를 두어 ES에 문제가 생겨도 Kafka가 데이터 유실을 막아줄 수 있도록 했고 Kafka 플러그인을 기본으로 제공하는 Logstash로 바꾸었다.(한국어)

볼만한 링크

  • SQLite의 알려지지 않은 이야기 : SQLite를 만든 Richard Hipp의 인터뷰를 요약한 글이다. 원문을 봐도 좋지만, 글이 길어서 잘 요약된 글을 가져왔다. 서버 없이 돌아가는 데이터베이스가 필요했는데, 없어서 직접 만들었고 데이터베이스를 만드는 법을 몰라서 직접 하나하나 공부하면서 만들었다고 한다. 공개했던 초기 버전을 고객은 사용하지 않았지만, 사람들이 쓰기 시작했고 모토로라가 전화기에 넣고 AOL이 CD 안에 넣으려고 SQLite에 필요한 기능을 개발해 달라고 연락하고 이때부터 오픈소스로 돈을 벌 수 있다는 걸 알게 되고 이후 컨소시엄을 만들고 안드로이드에 넣으려고 협업을 하기 시작했다. SQLite를 안정적으로 유지하기 위해 1년간 노력해서 MCDC 100%에 달성했고 다른 상용 데이터베이스도 실패하는 SQL 테스트도 SQLite는 성공했다고 한다. 가볍게 사용하던 SQLite에 이렇게 엄청난 역사가 있었는지 몰랐고 Richard Hipp을 존경하게 되었다.(한국어)
  • 폴 그레이엄 – 최선을 다한다는 것 1, 2 : YC의 폴 그레이엄이 쓴 How to Work Hard를 번역한 글이다. 위대한 일을 해내려면 재능, 연습, 노력이 모두 필요한데 최선을 다한다는 것은 스스로 일을 하는 마음가짐을 가지는 것이고 자신에게 거짓말을 하지 않는 것이라고 한다. 한계를 알려면 한계를 넘어서 봐야 하는데 최선을 다한다고 항상 한계까지 가야 하는 것은 아니다. 중요한 문제에 집중해야 하고 흥미를 찾아야 하는데 때때로 흥미를 찾는 것은 재능을 찾기보다 더 어렵다. 그래서 그 일을 계속 해야 하는지 가장 좋은 기준은 그 문제를 흥미롭게 생각하는가이고 이 기준을 적용하려면 자신에게 정직해야 한다고 하고 있다.(한국어)
  • 프로덕트 디자인 in 스타트업 : 프로덕트 디자이너에 관해서 설명하는 글로 잡 타이틀은 어떤 일을 하냐 보다는 기업이 어떻게 일하기를 원하는지에 초점을 맞추어야 이해하기 좋다는 부분을 강조하면서 프로덕트 디자이너는 기능 중심 조직과 제품 중심 조직이 일하는 방식의 차이 때문에 생겨났고 두 조직에서 일하는 방식이 다른 점을 비교해서 보여주고 있다. 시드 스테이지, 얼리 스테이지, 시리즈 라운드, 프리 IPO 라운드 이후의 스타트업 별로 디자이너가 어떤 일을 하는지와 필요한 역량을 알려주고 있다. 프로덕트 디자이너 혹은 디자이너가 어떤 일을 하는지 취업하려면 어떤 준비를 해야 하는지 궁금하다면 도움이 될 글이다.(한국어)
  • Dropbox Engineering Career Framework : Dropbox에서 개발자 커리어를 발전시키고 성과를 얻어 낼 수 있는지를 정리한 프레임워크다. 소프트웨어 엔지니어, QA 엔지니어, SRE, 머신러닝 엔지니어, 엔지니어링 매니저마다 각 레벨에서의 기대되는 역할과 핵심 책임을 정리해 두었다.(영어)

IT 업계 뉴스

프로젝트

  • Modern Unix : Unix의 기본 명령어 대신 사용할 수 있는 명령어를 모아놓은 페이지
  • devtron : Kubernetes의 소프트웨어 딜리버리 워크플로우
  • Console Do Not Track (DNT) : 도구마다 분석데이터를 보내지 않게 하는 옵션이 있는데 DO_NOT_TRACK=1로 통일해서 사용하자는 제안.
  • Monocle : 블로그, 노트, 트위터 등 다양한 문서에서 검색할 수 있는 풀텍스트 검색엔진

버전 업데이트

2021/07/16 02:51 2021/07/16 02:51