Outsider's Dev Story

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

기술 뉴스 #174 : 21-05-15

웹개발 관련

  • The End of AMP : 5월 Google의 Page Experience 업데이트에서 core web vitals에 높은 가산점을 준다는 점도 있지만, AMP에 더는 랭킹 가산점을 부여하지 않겠다는 발표가 포함되었다고 한다. 그동안은 AMP를 도입하면 랭킹에 가산점을 추고 검색 결과 최상위 캐로셀에 보여주어 사용자 유입을 위해서 퍼블리싱 사이트는 AMP를 도입해서 사용할 수밖에 없었는데 더는 그러지 않아도 되게 되었다. 아직 공식으로 AMP를 폐기하겠다는 발표가 나온 것은 아니지만 AMP를 사용해서 얻을 수 있는 장점이 없으므로 업계에서 빠르게 사라질 거라는 글에 동의한다.(영어)
  • JavaScript Proxy… But With Reflect : ECMAScript의 ProxyReflect를 설명하는 글로 단순히 사용법을 설명하기보다는 ProxyReflect가 추가된 배경과 어떤 용도로 사용할 수 있는지를 설명한다. 메타 프로그래밍의 개념으로 Proxy를 통해서 대상 객체를 생성하면서 trap 함수를 통해서 프락시 된 객체의 동작을 조작할 수 있다. Reflect의 사용법과 함께 Proxy를 사용할 때 Reflect를 사용해서 prototype의 영향을 피하는 방법을 보여준다.(영어)
  • 토스 프론트엔드 블로그에 오신 것을 환영합니다!: Toss의 프론트엔드 챕터에서 엔지니어링 블로그를 만들었다.(한국어)

그 밖의 개발 관련

  • Node 16 now available : Apple Silicon을 정식으로 패키징해서 지원하는 버전인 Node 16이 릴리스 되었다. 이번 버전에서는 다음의 변경사항이 있다.(영어)

    • V8 버전이 9.0으로 올라갔다.
    • 프로미스 Timers API가 안정 상태가 되어 await setTimeout(2000);처럼 쓸 수 있다.
    • 새로운 Web Crypto API가 추가되어 require('crypto').webcrypto.subtle에서 쓸 수 있다.
    • Node-API가 버전 8이 되었다.
    • AbortController로 프로미스 API를 취소할 수 있다.
    • Buffer에서 데이터를 Base64로 인코딩/디코딩하는 atob, btoa가 추가되었다.
  • Node.js 10 is going EOL : Node.js 10 LTS 버전이 계획된 일정에 따라 지원이 종료되었다. 이제 10은 유지보수 기간이 끝났으므로 더는 업데이트가 되지 않고 현재 Node의 LTS 버전은 12와 14가 있고 16은 10월에 LTS가 될 예정이다.(영어)
  • Renaming N-API to Node-API : 그동안 Node.js의 네이티브 API인 N-API의 이름을 Node-API로 바꾼다고 한다. 원래도 N-API가 Node-API의 약어였지만 N-API를 NAPI로 발음할 때 나쁜 표현의 단어로 오인 될 수 있어서 Node-API로 바꾸기로 했다고 한다.(영어)
  • [shell] 원격 접속해서 시간 오래 걸리는 작업, 접속 끊어도 계속 진행되게 하기 nohup, disown, screen : 컨테이너 때문에 이전보다 서버 접속해서 작업할 일이 적어졌지만, 서버에서 오래 걸리는 쉘 명령어를 실행할 때 쉘을 종료하면 같이 죽어버리기 때문에 이 문제를 피할 수 있는 명령어를 설명한 글이다. nohup은 명령어를 실행할 때 쉘을 종료해도 죽지 않게 종료 신호를 보내지 않게 하고 disownnohup을 실행할 때 사용하지 못했을 때 해당 명령어의 소유권을 포기해서 계속 동작하도록 한다.(한국어)
  • Kotlin으로 Spring 개발할 때 : Kotlin으로 스프링을 사용할 때 필요한 플러그인이 어떻게 동작하고 어떤 장점이 있는지 정리한 글이다.(한국어)

인프라 관련

  • 쿠버네티스 Admission Control #2 - Open Policy Agent : 지난번에 Admission Contol을 설명한 글에 이어서 Open Policy Agent를 설명한다. OPA는 꼭 Kubernetes에서만 사용해야 하는 것은 아니고 정의된 정책에 따라 요청을 허용할지 거부할지만 결정하고 실제 거부는 KUbernetes Admission Control 같은 각 플랫폼에서 처리해야 한다. 이 정책을 정의하려고 사용하는 Rego라는 언어의 간단한 사용법과 이를 이용해서 어떻게 정책을 정의하는지 설명한다.(한국어)
  • Retrieve HashiCorp Vault Secrets with Kubernetes CSI : Vault 1.7부터 Vault Provider for Secrets Store CSI Driver가 실험 상태를 벗어나서 베타가 되었다. 이 프로젝트는 CSI(Container Storage Interface)로 Kubernetes Pod 볼륨에 Valut 시크릿을 노출한다. CSI 대신 사이드카 인젝션을 쓰는 방법도 있고 둘다 좋은 방법이지만 사이드카는 별도의 사이드카 컨테이너를 띄워야 하고 환경변수로 동기화할 방법이 없는 대신 시크릿에 템플릿을 적용할 수 있고 로테이션도 가능하다. CSI는 별도의 컨테이너 없이 DemonSet으로 쉽게 시크릿을 동기화할 수 있다.(영어)
  • Amazon CloudFront Functions — 더 짧은 지연 시간으로 엣지에서 코드 실행을 위한 신규 기능 : CloudFront에 로직을 적용할 때 간단한 HTTP 요청이나 응답을 조작하는 작업을 위해 Lambda@Edge보다 싸고(1/6) 가볍게 쓸 수 있는 서버리스 스크립팅 플랫폼 CloudFront Functions가 공개되었다.(한국어)
  • Introducing the Prometheus Conformance Program : Prometheus에서 CNCF의 도움을 받아서 Prometheus Conformance 프로그램을 발표했다. 이 프로그램은 (현재) 3개의 컴포넌트인 PromQL, 원격 읽기/쓰기, OpenMetrics의 컴플라이언스 테스트를 진행해서 해당 프로젝나 벤더가 Prometheus의 기준을 따르는지를 인증받을 수 있게 하는 해서 생태계 내의 상호운용성을 높이기 위한 프로그램이다. 컴포넌트별로 "OpenMetrics 2021-05 compliant", "PromQL 2021-05 compliant" 같은 식으로 표시할 수 있고 모두 완료한 소프트웨어는 "Prometheus 2.26 compatible"처럼 표시된다.(영어)

볼만한 링크

  • Babel is used by millions, so why are we running out of money? : Babel이 전 세계적으로 엄청나게 인기 있고 많이 사용하고 있지만, 펀딩은 점점 줄어들어서 코어 개발자들에게 월급을 지불하기가 쉽지 않다고 설명한 글이다. 참고로 Babel의 리드 개발자인 Henry는 풀타임으로 오픈소스 개발을 하고 있고 2018년부터 Henry를 풀타임으로 월급을 지불하고 2019년에 추가 컨트리뷰터에게 파트타임으로 월급을 주고 있지만, 기부금이 점점 줄어들어서 올해 말이면 소진될 것이라고 한다. 전체 팀을 풀타임으로 고용하려면 현재보다 두 배 정도의 기부가 필요하다고 한다.(영어)
  • 클라우드의 미래 가치 (ft. 2021 매킨지 보고서) : 맥킨지의 2021 클라우드 리서치 보고서의 내용을 요약 정리한 글이다. 이 보고서에 따르면 클라우드 시장은 재활성화(rejuvenate)와 혁신(innovate) 차원에서 2030년 총 1조 달러를 될 전망이고 혁신이 만드는 시장이 재활성화보다 2배에 가까운 성장세를 보일 것이라고 한다.(영어)

    • 재활성화 차원에서는 340~430억 달러의 시장을 예상했는데 클라우드를 사용하여 비용과 위험을 줄이고 기존 접근 방식을 벗어나는 것을 의미한다. 비용에서는 개발/유지보수 생산성을 38% 향상하고 인프라 비용 효율성은 29% 향상한다고 한다. 클라우드를 이용해서 다운 타임도 57% 줄일 수 있고 비용도 26% 감소시킬 수 있다고 한다. 그리고 클라우드를 통해서 인력을 고부가가치 작업으로 재배치하면서 추가적인 가치를 만들 수 있다.
    • 혁신 차원에서는 360억~770억 달러의 시장을 예상했는데 클라우드로 혁신을 가속하거나 가능하게 하는 것을 의미한다. 클라우드로 작고 빠른 시도를 하게 되어 새로운 비즈니스를 시작하거나 확장할 때 막대한 비용을 아낄 수 있고 제품/서비스 출시 기간도 대폭 단축하고 확장에도 활용할 수 있다고 한다.
    • 모든 산업에 영향을 주지만 하이테크, 석유/가스, 소매, 헬스케어에서 가장 많은 가치를 창출할 수 있을 것으로 보고 느리게 변화하는 기존 기업에 위협이 될 수 있다고 한다.
    • 클라우드 성숙도가 높은 기업은 첨단 기술과 혁신의 얼리어답터이며 기술이 비즈니스의 경쟁 차별화 요소이자 핵심 요소로 간주한다는 특성이 있다고 한다. 보고서에 따르면 클라우드 성숙도가 높은 기업이 제품의 개발, 출시, 품질까지 모든 면에서 경쟁력이 우위였다고 한다.
  • 코더 : 개발자 간에 실력의 차이는 존재하지만 얼마 전 뉴스에도 나온 "코더"라는 비하의 의미를 가진 표현을 반대하고 뛰어난 개발자는 다 코딩을 여전히 하고 있고 해야 한다고 하고 있다. 그리고 긴 경험을 바탕으로 고급 개발자의 조건으로 코딩과 겸손함, 커뮤니케이션을 꼽고 있는데 그 이유나 설명이 아주 잘 되어 있다. 이 조건에 아주 동의하고 있다.(한국어)

IT 업계 뉴스

  • Announcing Rome Tools, Inc. : 얼마 전에 Deno도 회사를 만들었는데 Rome도 Rome Tool, Inc라는 회사를 만들었다. Rome을 만든 Sebastian McKenzie는 원래 Babel을 만든 사람이고 Rome이 Sebastian이 새로 만든 e2e 개발 툴 체인으로 JavaScript, TypeScript, HTML, CSS 등을 하나의 도구에서 지원한다.(영어)
  • DataRobot expands platform and announces Zepl acquisition : DataRobot이라는 머신러닝 스타트업이 Apache Zeppelin을 만든 Zepl을 인수했다.(영어)
  • 카카오엔터, 웹툰 플랫폼 ‘타파스’와 웹소설 플랫폼 ‘래디쉬’ 인수…6천억, 5천억 기업가치 : 카카오 엔터테인먼트가 북미 지역에서 웹툰을 서비스하는 Tapas Media Inc와 웹 소설을 서비스하는 Radish Media Inc.를 인수한다. 각각 약 6천억 원과 5천억 원의 가치로 인수한다고 한다.(한국어)
  • ORG Shutdown : Travis가 travis-ci.org와 travis-ci.com으로 분리되어 운영되던 부분이 travis-ci.com으로 완전히 마이그레이션된다. 이 작업은 2018년부터 공지되어 진행되어 왔고 5월 31일에 travis-ci.org는 내려갈 예정이다.(영어)

프로젝트

  • mysetting : Subicura님이 만든 서비스로 개발 관련 팁이나 프로그램, 프로필을 공유할 수 있다.
  • Awesome Prometheus alerts : Prometues alert 규칙을 기술이나 상황별로 정리해 놓은 사이트.
  • headless ui : Tailwind CSS와 통합될 수 있게 만들어진 UI 컴포넌트로 React와 Vue용 컴포넌트를 제공한다.
  • driftctl : Terraform의 state 파일을 읽어서 AWS에서 Terraform으로 관리 안 되는 리소스를 찾아주는 CLI 도구.
  • Supabase : Firebase의 대안으로 사용할 수 있는 오픈소스 프로젝트.
  • terraform-aws-secure-baseline : CIS의 AWS 보안AWS 보안 표준 문서에 기반을 두고 보안 기준이 설정된 AWS 계정을 설정해주는 Terraform 모듈이다. IAM 비밀번호 정책과 audit 로깅, 보안 알림 등의 설정이 포함되어 있다.
  • eBPF on Windows : Microsoft에서 eBPF를 Windows에 구현하는 프로젝트.
  • readme.so : README에 들어가야 하는 섹션별 기본 템플릿을 제공하고 원하는 섹션을 클릭 후 수정해서 README 문서를 쉽게 작성할 수 있게 하는 웹사이트.

버전 업데이트

2021/05/15 17:00 2021/05/15 17:00