Outsider's Dev Story

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

기술 뉴스 #256 : 24-10-16

웹개발 관련

  • Benchmarking the performance of CSS @property : 이제 Baseline에 포함된 CSS @property의 성능 비교 글로 상속되는 상속되지 않는 프로퍼티가 상속되는 프로퍼티에 비해 훨씬 빠른 성능을 보여주고 등록 안 된 커스텀 프로퍼티는 정규 프로퍼티보다 느린 속도를 보여준다. 커스텀 프로퍼티를 등록할 때도 시간이 꽤 들지만 그래도 등록할 가치가 있고 inherits: false로 등록하면 사용할 때 성능에 큰 차이를 보여주므로 참고할 필요가 있다. 벤치마크 결과도 재밌지만, Chromium의 PerfTestRunner를 이용해서 CSS Selector Benchmark를 구성한 것도 흥미롭다. 이걸 사용하면 궁금한 부분이 있을 때 성능 측정에 사용해 볼 수 있을 것 같다.(영어)
  • Why Gumroad Didn't Choose htmx : 온라인 커머스 사이트인 Gumroad에서 React가 이전에 좀 과하게 느껴졌기에 htmx를 사용하는 것이 만족스러웠지만 결국 htmx의 불편함 때문에 React/Next.js를 선택했다. 복잡한 폼의 경우 Next.js보다 htmx가 더 복잡하고 부자연스럽게 느껴졌고 htmx를 쓰면서 Rails/CRUD 방식이 강제되면서 UX도 제한되었다. AI 도구가 데이터 부족으로 htmx에 익숙하지 않았고 요구사항이 복잡해질수록 htmx의 서버 중심 접근 방식은 확장하기 어려웠다. htmx로 불가능한 것은 아니지만 htmx의 장점에서 벗어나고 있다고 느꼈다고 한다.(영어)
  • Getting Started With scheduler.yield - A Beginner's Guide : 아직 실험적이라서 모든 브라우저에서 지원하지는 않는 scheduler.yield()의 사용 방법을 설명한다. 브라우저에서 자바스크립트는 싱글 스레드로 동작하므로 시간이 오래 걸리는 작업을 실행하면 메인 스레드가 블록 되므로 사용자도 화면과 인터랙션을 할 수 없게 된다. 이러면 scheduler.yield()를 사용하면 제어권을 브라우저 스케줄러에 돌려주게 되어 긴 작업을 작은 작업 여러 개로 나누어서 브라우저가 사용자 인터렉션을 처리할 수 있게 된다.(영어)
  • ESLint now officially supports linting of JSON and Markdown : ESLint가 더 범용적으로 쓰일 수 있도록 JavaScript 뿐 아니라 JSON과 Markdown도 파싱할 수 있는 플러그인이 추가되었다.(영어)

그 밖의 개발 관련

  • Good Retry, Bad Retry: An Incident Story : Yandex에서 800개의 마이크로서비스 시스템에서 요청 재시도로 인해서 발생한 문제와 해결 과정을 가상의 스토리로 다시 정리한 글이다. 요청 실패 문제를 해결하기 위해 재시도를 구현하면서 지수 백오프와 지터를 구현해서 잘 사용했지만 백엔드에 큰 장애가 발생한 이후 롤백 후에도 재시도로 요청이 증폭되어 트래픽을 차단하기 전까지는 복구가 더 오래 걸리는 문제가 발생한다. 재시도가 왜 요청을 증폭시키는지를 파악하고 이를 해결하기 위해 서킷브레이커와 재시도 예산을 테스트하고 결과적으로 재시도 예산을 선택한다. 모든 단계에 시뮬레이션 결과와 팀 내 다양한 논의를 가상 스토리로 설명하고 있어서 쉽게 재시도를 이해할 수 있다.(영어)
  • Docker images using uv's python : 기존에는 소스코드에서 Python을 빌드해서 Docker 이미지를 만들고 있었지만 uv가 이제는 Python 바이너리 기반의 가상환경도 만들어주기 때문에 이를 이용해서 Python 환경을 구성하는 방법을 설명한다.(영어)

인프라 관련

  • Introduction to the Gateway API: Revolutionizing Kubernetes Networking : 외부 트래픽을 받는 Ingress API가 복잡한 라우팅이나 HTTP 외의 프로토콜 지원에 한계가 있어서 새로 만들어진 Gateway API를 설명하는 글이다. Gateway API는 여러 CRD를 도입하여 다양한 라우팅에 대응할 수 있고 HTTP뿐 아니라 TCP, UDP, TLS 등의 프로토콜을 지원해서 훨씬 확장성 있게 구성할 수 있다. GatewayClass 리소스는 네트워킹 인프라를 프로비저닝하는 방법을 정의하고 Gateway 리소스는 트래픽에 대한 진입점 역할을 하고 Route 리소스는 백엔드로의 라우팅 규칙을 정의하고 Listener 리소스는 특정 포트와 프로토콜에서 트래픽을 허용하는 방법을 정의한다.(영어)
  • How to use Prometheus to efficiently detect anomalies at scale : Grafana에서 PromQL을 기반으로 이상 탐지를 하기 위해 "추세를 따르는 이동 평균선"에 따라 대역을 설정하고 대역 밖에 있는 메트릭을 이상 상황으로 정의하기 위한 노력이다. 하지만 극단적인 스파이크는 제대로 탐지 못 하거나 이를 개선하면 정상적인 변동을 제대로 포착하지 못하는 문제가 있어서 이를 개선하면서 PromQL Anomaly Detection Framework를 만들게 되었다.(영어)
  • etcd Project Journey Report : 분산 키/밸류 저장소이면서 Kubernetes의 기본 데이터 저장소로 사용되는 etcd가 어떻게 성장해 왔는지를 정리한 보고서이다. 기여하는 회사는 CoreOS가 가장 높고 Google, VMWare, RedHat 순이고 기여하는 회사와 기여자도 2014년 이후로 계속해서 상장하고 있다. etcd의 개발 속도도 꾸준하게 유지되는 것을 볼 수 있다.(영어)
  • Announcing Amazon ElastiCache for Valkey : AWS에서 Redis의 오픈소스 대체 프로젝트로 시작된 Valkey를 ElastiCache에서 지원한다고 발표했다. Valkey는 다른 엔진보다 Serverless는 33% 낮고 노드도 20%도 낮은 가격으로 지원하고 Redis OSS에서 Valkey로 다운타운 없이 업그레이드할 수 있다.(영어)
  • AWS Console-to-Code 정식 출시, AWS 콘솔 작업 코드로 변환하기 : AWS 콘솔에서 작업한 내용을 기록해서 CloudFormation 템플릿이나 CDK(TypeScript, Python, Java) 코드로 자동 생성해 주는 Console-to-Code가 공개되었다. 현재는 EC2, RDS, VPC에서 이를 지원한다.(영어)
  • OpenMetrics officially moved to Prometheus organization : 텍스트/Protocol Buffers로 메트릭을 전송하는 형식인 Open Metrics이 Prometheus 조직 아래로 들어갔다.(영어)

AI 관련

  • Introducing the Realtime API : OpenAI에서 ChatGPT의 고급 음성 모드처럼 사용할 수 있는 Realtime API를 공개했다. Realtime API는 사전 설정된 6가지 음성을 사용하여 자연스러운 음성 대화를 지원하고 Chat Completions API를 통해 오디오 입출력도 가능하다.(영어)
  • Meta Movie Gen : Meta에서 동영상을 만드는 생성형 AI에 대한 연구 논문을 발표했다.(영어)

볼만한 링크

  • WordPress 랑 WP Engine 이슈 간단 정리 : 지난달 말부터 발생한 Automattic의 CEO인 Matt Mullenweg가 WordPress 호스팅 업체인 WP Engine을 상표권 이슈 등으로 비난하면서 발생한 분쟁 사건이 왜 발생했고 어떤 일이 일어나고 있는지 정리한 글이다. 이 글의 정리 이후에도 사태는 계속 진행되고 있다.(한국어)
  • Automattic is doing open source dirty : Rails를 만든 DHH가 Automattic이 WP Engine에 수익의 8%를 요구한 것은 라이센스상 완전히 틀렸고 오픈소스 세계에도 잠재적인 피해를 줄 것이라며 비판했다. Wordpress를 만들고 지금까지 성장시킨 Automattic을 지지하지만 라이센스는 명확하고 이러한 Automattic의 주장은 완전히 잘못된 것이라고 하고 있다.(영어)
  • Open source royalty and mad kings : Rails를 만든 DHH가 Automattic의 CEO인 Matt Mullenweg의 행보를 계속 비난하고 있다. WP Engine과의 분쟁에서 로그인에 WP Engine과 관련 없다는 체크박스를 넣고 사용자 플러그인을 강제로 뺏는 등의 행위를 하면서 오픈소스 평화를 위협하고 있다면 강력하게 비난하고 있다.(영어)
  • The Inevitability of Mixing Open Source and Money : Armin Ronacher가 Sentry에서 Open Source Pledge를 출범시켜서 오픈소스 프로젝트에 자금을 지원하도록 했는데 이번 WordPress 상황을 보면서 생각을 정리한 글이다. DHH는 WordPress의 창시자인 Matt Mullenweg를 비난하고 있지만 오픈소스와 돈을 빠르게 섞이기 마련이고 Rails와 달리 Armin이 만든 Flask는 Rails 같은 규모까지 되지 못했지만, 거기엔 많은 에너지가 필요하기에 현재에 만족한다고 한다. 또한 WordPress도 오픈소스 프로젝트 중 상위 1%에 속할 정도의 재정적 수익을 얻고 있지만 이번 사태에서 다른 프로젝트와 비슷하게 억울함을 느끼고 있기에 오히려 소규모 프로젝트에 더 자금을 보아야 한다고 얘기하고 있다.(영어)
  • The Internet Archive is under attack, with a breach revealing info for 31 million accounts : Internete Archive가 DDoS 공격을 당하고 JavaScript 라이브러리로 사이트에 공격자가 해킹했다는 팝업을 띄우고 3,100만 명의 개인정보를 유출 당했다. 현재는 시스템 점검을 위해 서비스가 내려간 상태다.(영어)

IT 업계 뉴스

  • Patent troll Sable pays up, dedicates all its patents to the public! : Cloudflare가 Sable IP와 Sable Networks와의 3년간의 특허 소송에서 승소했다. Cloudflare가 특허 트롤이라고 얘기하는 Sable은 20년 전 사업을 중단한 라우터 회사인 Caspian Networks의 특허를 인수해서 특허침해로 고소했는데 Cloudflare는 이에 합의하지 않고 법정 투쟁을 한 결과 처음 100여 개의 특허 침해해서 마지막 1개만 남게 되었고 이 부분도 침해가 아니라는 판결을 얻어냈다. 이는 2017년 시작한 Project Jengo를 통해서 많은 사람들에게 도움을 받아 선행 기술을 찾고 해당 특허가 무효임을 증명할 수 있었던 덕이고 이번 판결 이후 Sable은 Cloudflare에 22만 5천 달러를 지불하고 Sable이 가진 모든 특허 포트폴리오에 대한 법적 권리를 포기해서 다시 특허 침해 소송을 제기할 수 없게 되었다.(영어)
  • The Disappearance of an Internet Domain : 10월 3일 영국이 영국령 인도양 지역에 대한 주권을 포기하기로 해서 이쪽 지역이 인근 국가인 모리셔스로 넘어가기로 되었다. 기술 업계에서 많이 쓰는 .io 도메인이 이 영국령 인도양 지역의 국가 최상위 도메인(ccTLD)였는데 이 국가가 없어지게 되므로 .io 도메인도 사라질 수 있다는 얘기이다. 물론 소련의 .su도 아직 쓰이고 있고 이를 어떻게 할지는 결정해야 할 부분이지만 없어진 국가의 도메인을 유지할 것이냐의 문제가 있는 상황이다.(영어)

프로젝트

  • Kube Startup CPU Boost : Kubernetes 워크로드가 시작될 때 일시적으로 CPU request와 limit을 높여주는 컨트롤러.
  • Agents : AI 서버 프로그램을 만들 수 있게 하는 프레임워크
  • sq : 데이터베이스에 데이터 조회, 임포트, 익스포트 등을 jq처럼 할 수 있는 CLI
  • Lotteria Ras Sans : 롯데리아에서 한글날을 맞이하여 리아체를 공개했다.
  • 배달의민족 꾸불림체 : 배달의민족에서 한글날을 맞이하여 꾸불림체를 공개했다.
  • DeskPad : 화면 공유용으로 해상도를 다르게 설정할 수 있는 가상 모니터
  • TrueUp : 해외 구인/구직 서비스인데 기술 구인 현황이나 정리해고 통계, 회사별 다양성 통계 등을 볼 수 있다.
  • Jujutsu : Git과 호환되는 DVCS

버전 업데이트

2024/10/16 01:46 2024/10/16 01:46