Outsider's Dev Story

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

기술 뉴스 #231 : 23-10-01

웹개발 관련

  • Cloudflare Fonts: enhancing website font privacy and speed : Cloudflare에서 Google Fonts를 직접 캐싱해 주는 기능이 추가되었다. Google Fonts는 편리하지만, CSS 파일을 가져오는 API 주소와 폰트를 가져오는 주소로 나뉘어져 있어서 모두 가져오려면 8번의 왕복이 필요해진다. Cloudflare를 거치는 순간 HTML을 조작해서 응답 HTML에 바로 CSS 응답을 포함해서 한 번의 요청으로 바로 폰트를 로드할 수 있게 하고 이 폰트는 Cloudflare CDN에 캐싱 되어 서비스 자체 도메인에서 바로 폰트를 다운로드 받을 수 있게 지원해서 성능도 훨씬 빨라진다.(영어)
  • Encrypted Client Hello - the last puzzle piece to privacy : Encrypted Client Hello(ECH)는 TLS 핸드쉐이크 협상에 사용되는 Server Name Indication(SNI)를 마스킹하는 ESNI의 후속 기능이다. SNI는 중개자가 웹사이트 방문을 확인할 수 있는 암호화되지 않은 마지막 비트인데 이 ECH를 이제 Cloudflare의 모든 요금제에서 사용되어 사용자, Cloudflare, 웹사이트 소유자 외에는 누가 어떤 사이트를 방문했는지 알 수 없게 된다. TLS 핸드쉐이크할 때 SNI를 알려주는 ClientHello 부분에서 내부 SNI는 Cloudflare의 공개키로 암호화하고 외부 SNI는 cloudflare-ech.com로 설정하므로 중개자는 모든 웹사이트가 cloudflare-ech.com으로 접속하는 것으로 나타나게 된다.(영어)
  • React Internals Deep Dive : React의 소스 코드를 보면서 React의 내부 동작을 자세히 살펴보는 시리즈 글이다. 마운트라 렌더링, 훅 등을 차례로 살펴보는 30여편의 시리즈 글인데 하나씩 자세히 살펴보면서 공부하면 도움이 될 귀한 자료이다.(영어)
  • You can now use WebGPU in Cloudflare Workers : Cloudflare Workers에 WebGPU가 추가되었고 Workers의 오픈소스 런타임인 workerd가 WebGPU를 지원해서 로컬에서도 사용해 볼 수 있게 되었다. 이 구현은 Chrome 브라우저처럼 Dawn을 사용해서 Linux, macOS, Windows에서 사용할 수 있다.(영어)
  • Re-introducing the Cloudflare Workers Playground : Cloudflare Workers를 공개할 때 같이 공개했던 Playground가 오랫동안 방치되어 있었는데 그동안 Workers의 발전에 맞추어 Playground를 새로 만들어서 새로운 편집기 환경에서 Workers를 바로 테스트해 볼 수 있고 공유하거나 배포를 할 수 있게 되었다.(영어)
  • Cloudflare is free of CAPTCHAs; Turnstile is free for everyone : 봇을 차단하기 위해 사용하는 CAPTCHA의 대안으로 작년에 Cloudflare가 공개한 Turnstile이 누구나 이용할 수 있도록 완전히 무료로 공개되었다. 시각적 퍼즐이 사람에게도 어렵기 때문에 Turnstile은 퍼즐을 전혀 보여주지 않고 봇을 잡아내고 지난 1년 동안 모니터링한 결과 프로덕션에 사용할 준비가 완료되었다고 판단하고 정식 버전으로 공개되었다.(영어)
  • Introducing runes : Svelte에서는 버전 3에서 JavaScript를 리액티브 언어로 바꾸어서 선언적 컴포넌트 코드를 최적화된 자바스크립트로 변환했다. 그동안 다른 JavaScript 코드도 비슷하게 사용하고 싶다는 피드백이 있었고 이에 따라 Sevelte 컴파일러에 영향을 주는 심볼인 Rune을 사용하면 선언형으로 리액티브하게 최적화해 준다. 이는 Svelte 5에 추가될 기능이고 아직 개발 중이라 추후 달라질 수도 있다.(영어)
  • CSS Subgrid : CSS 그리드에서 그리드 컨테이너의 직접 자식에만 영향을 주는데 grid-template-columnssubgrid로 지정해서 사용하는 서브그리드를 사용하면 부모 그리드의 값을 서브그리드에서 사용할 수 있어서 레이아웃 내에서 콘텐츠를 정렬할 수 있다.(영어)

그 밖의 개발 관련

  • Unlocking SwiftUI at Airbnb : Airbnb에서 선언적 UI 프레임워크로 2016년에 만든 Epoxy를 사용하고 있었고 Epoxy는 UIKit을 사용했다. 2019년 퍼스트 파티 선언적 UI 프레임워크인 SwiftUI가 나왔지만, Airbnb의 요구사항에 맞지 않아서 사용하지 않았지만 2022년에는 안정성과 API 가용성이 확보되어 SwiftUI 도입을 고려하기 시작했다. SwiftUI를 도입하면 더 좋아질 것이라는 기대 아래 디자인 시스템에서 재사용할 수 있는 컴포넌트를 구축하는 1단계와 예약 페이지, 프로필 페이지 등 전체 화면 구축의 2단계, 여러 화면으로 구성된 화면의 완전한 기능 구축 3단계로 계획했고 현재 2단계까지는 완료가 되었다. 이를 위해 디자인 시스템은 SwiftUI로 다시 구축하고 Epoxy와 SwiftUI가 서로 연결되도록 인프라를 구성하고 단방향 데이터 흐름으로 비즈니스 로직과 프리젠테이션 로직을 분리해서 쉽게 Epoxy를 SwiftUI로 변환할 수 있게 되었다. 그리고 SwiftUI 도입에 가장 어려운 점이 전문성을 갖추는 것이라는 것을 알고 있었기에 사내에서 워크숍을 개최해서 전문성을 높였다. SwiftUI 도입의 결과는 현재까지 긍정적이지만 SwiftUI가 오픈소스는 아니므로 디버깅에 어려움이 있었고 앞으로의 계획도 연간 발표라서 방향성에 대한 고민 등 남아있다.(영어)
  • GitHub Copilot Chat beta now available for all individuals : GitHub Copilot Chat의 오픈 베타가 시작되어 GitHub Copilot 사용자는 GitHub Copilot Chat을 사용할 수 있게 되었다. Vistual Studio와 VS Code에서 자연어로 코딩 관련 답변을 얻을 수 있다.(영어)
  • Workers AI: serverless GPU-powered inference on Cloudflare’s global network : Cloudflare에서 서버리스 GPU를 이용할 수 있는 Workers AI가 출시되었다. Workers AI에서는 Meta, OpenAI, Hugging Face, Microsoft의 다양한 모델을 사용해서 추론을 쉽게 사용할 수 있게 되었다.(영어)
  • Announcing AI Gateway: making AI applications more observable, reliable, and scalable : Cloudflare에서 AI 플랫폼의 API 중간에 둘 수 있는 AI Gateway를 공개했다. OpenAI 등의 AI를 이용할 때 AI Gateway를 거치게 설정하면 응답 캐시, 재시도, 사용량 모니터링 등을 할 수 있다. 현재는 OpenAI, Hugging Face, Replicate의 플랫폼을 지원한다.(영어)
  • Vectorize: a vector database for shipping AI-powered applications to production, fast : Cloudflare에서 풀스택 AI 기반 애플리케이션을 구축할 수 있는 벡터 데이터베이스 Vectorize를 오픈 베타로 공개하고 Cloudflare Wokers에서는 모두 이용할 수 있게 공개했다. 이 벡터 데이터베이스를 이용하면 모델에 조회한 내용을 저장해 두고 사용할 수 있다.(영어)
  • Announcing Strada : HTML을 사용해서 JavaScript를 많이 사용하지 않고 웹 애플리케이션을 만드는 Hotwire의 기술로 하이브리드 모바일 애플리케이션을 만들 수 있게 하는 Strada가 발표되었다. Hotwire가 발표될 때 Strada도 스택에 포함되어 있었지만 이제 공개된 것이고 37signals에서는 HEY의 iOS/Android 앱을 만드는데 지난 3년 동안 사용했다고 한다.(영어)

인프라 관련

  • Making Sense Out of Native Sidecar Containers in Kubernetes : Kubernetes 1.28에 추가된 네이티브 사이드카 컨테이너를 자세히 설명하는 글이다. Pod의 일반 컨테이너보다 먼저 실행되어야 하는 작업을 위해 initContainers가 도입되었고 이는 항상 일반 컨테이너보다 먼저 실행되고 정의한 순서대로 실행되면서 앞의 컨테이너가 완료되어야 다음 컨테이너로 넘어가게 된다. 사이드카 패턴은 일반 컨테이너로 사용하지만 실제로는 일반 컨테이너보다 먼저 시작되고 나중에 끝나야 하고 Pod의 생명주기와 다르게 움직일 수도 있었기 때문에 이를 해결하기 위해 1.28에는 사이드카 컨테이너가 추가되었다. 하지만 sidecarContainers같은 게 추가된 게 아니라 initContainersrestartPolicy: Always가 추가되어 다음 컨테이너의 시작을 막지 않고 종료 시 재시작되며 startup/readiness/liveness 프로브도 지원하며 일반 컨테이너가 모두 종료되면 종료되는 특징을 가진다. 이 동작을 이해할 수 있는 그림과 함께 예제도 제공해서 이해하기 좋다.(영어)
  • Dynamic Node Labeling via Node Feature Discovery on Kubernetes : Node Feature Discovery(NFD)를 사용해서 노드의 하드웨어 기능을 노드에 라벨링 해서 스케줄링하는 방법을 소개한다. NFD를 클러스터에 설치하면 기본적으로 하드웨어를 탐지해서 노드에 라벨을 추가하는데 사용자가 파악하기 쉽게 라벨을 매핑하면 그것에 맞게 노드 라벨에 추가되고 Pod을 nodeSelector를 사용해서 스케줄링할 때 GPU 등 원하는 하드웨어가 있는 노드에 스케줄링할 수 있다.(영어)
  • The Plan for InfluxDB 3.0 Open Source : 분산형 시계열 데이터베이스인 InfluxDB 3.0의 오픈소스 버전은 앞으로 InfluxDB Edge라고 부를 것이며 InfluxDB Edge를 릴리스하고 추가기능이 포함된 무료 커뮤니티 에디션인 InfluxDB Community를 릴리스할 것이라고 한다. InfluxDB Edge는 기존 레퍼지토리에서 개발하지만, 커뮤니티 에디션은 개발 과정이 이 레퍼지토리에 포함되지 않을 것이라고 한다. InfluxDB 3.0 아키텍처에는 1.x와 2.x의 역 인덱스(TSI), 시계열 병합 트리(TSM) 저장소 엔진이 포함되어 있지 않아서 InfluxDB Edge는 최근 데이터를 수집하고 쿼리하는데 최적이고 1.x와 2.x의 사용 사례를 모두 대체하지 않는다. 대신 더 오랜 기간의 데이터에 유용하도록 InfluxDB Community를 별도로 릴리스할 계획이다.(영어)
  • Linux Foundation Launches OpenTofu: A New Open Source Alternative to Terraform : Terraform의 라이센스가 바뀌면서 만들어진 오픈소스 Terraform의 대안을 만들기 위해 만들어진 OpenTF가 Linux 재단으로 들어가면서 이름이 OpenTofu가 되었고
  • Introducing Kargo : Argo 프로젝트를 만드는 Akuity에서 GitOps에 맞게 CD 파이프라인을 재구성해서 각 스테이지를 연결해서 배포 조건, 생명 주기, 테스트를 설정할 수 있다.(영어)
  • npm provenance general availability : npm에서 GitHub Actios와 GitLab CI/CD에서 발생하였을 때 출처를 표기하는 기능이 추가되었다. 이 기능은 퍼플릭 패키지와 퍼블릭 저장소에서만 사용할 수 있으면 어떤 커밋에서 어떤 빌드 파일로 발생하였는지를 쉽게 확인할 수 있게 연결해 준다.(영어)

볼만한 링크

  • ‘구글 반독점 소송’, 우리의 미래를 바꿀 것인가 : 미국 정부가 구글에 제기한 반독점 소송과 관련해서 컬럼비아 대학교 로스쿨 교수인 팀 우가 뉴욕타임스에 The Google Trial Is Going to Rewrite Our Future의 번역 글이다. 과거에 그랬듯이 반독점 소송은 과거의 위법 사실보다는 치열한 테크 기업 사이에서 앞으로의 경쟁 구도에 영향을 미칠 것이기에 더 중요한 재판이다. 미국 정부는 구글이 지난 10년간 막대한 돈을 들여 구글 검색 엔진을 쓰도록 하면서 공정한 경쟁을 막았다고 하고 있다. 더 자세한 재판 배경은 막 오른 '세기의 소송'... 구글은 독점 사업자인가 아닌가를 참고하면 된다.(한국어)
  • Announcing the GitHub Innovation Graph : 각 연구자가 GitHub의 데이터에 관심 있지만 데이터를 얻는 데 많은 장벽이 있다는 것을 깨닫고 이를 쉽게 확인하고 사용할 수 있도록 Innovation Graph를 공개했다. Innovation Graph에서 GitHub 내의 커밋, 저장소, 개발자, 프로그래밍 언어의 횟수를 국가별로 확인할 수 있고 이 데이터를 저작권이 없는 CC0-1.0 라이센스로 다운로드 받을 수 있다.(영어)
  • ChatGPT can now see, hear, and speak : ChatGPT가 음성과 이미지를 지원하게 되어 음성으로 ChatGPT와 대화를 나누거나 이미지를 올려서 결과를 얻을 수 있게 되었다. 이 기능은 순차적으로 사용자에게 적용될 예정이다.(영어)
  • TypeScript Origins: The Documentary : TypeScript에 대한 1시간 20분 정도 분량의 다큐멘터리가 나왔다.(영어)

IT 업계 뉴스

  • Splunk and Cisco Unite To Accelerate Digital Resilience as One of the Leading Global Software Companies : 네트워크 하드웨어, 보안 등을 제공하는 Cisco(NASDAQ: CSCO)가 데이터 플랫폼을 제공하는 Splunk(NASDAQ: SPLK)를 인수했다. 보도자료에 따르면 현금으로 주당 157달러, 지분 가치로 약 280억 달러(약 36조 원)에 인수한다고 한다.(영어)
  • An open letter to our community : Unity가 최근 설치마다 과금하는 런타임 요금제를 발표한 뒤 커뮤니티에 거센 저항을 받고 사과문을 올렸다. Unity 퍼스널 요금제는 계속 무료로 유지되고 런타임 요금을 과금하지 않는다고 한다. 또한 한도도 10만 달러에서 20만 달러로 높이고 Made with Unity 스플래시 화면에 대한 요구사항도 제거하고 12개월 후 수익이 100만 달러 미만인 게임에는 수수료가 적용되지 않는다고 한다. Unity Pro와 Unity Enterprise 요금제에 대해서도 런타임 요금제는 2024년 이후 다음 Unity LTS 버전부터 적용되며 이미 출시된 게임의 업그레이드에는 적용되지 않는다.(영어)
  • Announcing Microsoft Copilot, your everyday AI companion : Microsoft Copilot이 9월 26일부터 Windows 11 무료 업데이트로 배포되기 시작해서 올가을에는 Bing, Edge, Micofost 365에 적용되어 AI 사용을 단일 환경으로 통합할 예정이라고 한다.(영어)
  • DALL·E 3 : 텍스트를 이미지로 만들어 주는 DALL·E 3가 나왔다. 10월에 ChatGPT Plus와 엔터프라이즈 플랜에서 사용할 수 있는 예정이고 현재는 리서치 프리뷰 상태이다.(영어)
  • John Carmack and Rich Sutton partner to accelerate development of AGI : 둠과 퀘이크를 만든 거로 유명한 존 카맥이 강화 학습으로 유명한 리처드 서튼과 파티너쉽을 맺고 AGI 개발을 하기로 했다.(영어)
  • Unified Acceleration Foundation Forms to Drive Open Accelerated Compute and Cross-Platform Performance : Linux 재단에서 표준 가속기 프로그래밍 모델을 제공하기 위한 Unified Acceleration(UXL) 재단을 발표했다. 이 UXL 재단은 CPU, GPU, FPGA, 가속기를 아우르는 오픈 프로그래밍 모델인 oneAPI 이티셔티브 진화된 버전이고 Nvidia CUDA의 오픈소스 버전이라고 생각하면 된다.(영어)

프로젝트

  • Photoshop on the web : Web 버전의 Adobe Photoshop이 릴리스 됐다.
  • Remix Auth TOTP : Remix Auth용 TOTP
  • Robusta KRR : Kubernetes 클러스터에서 리소스 최적화를 추천해 주는 CLI 도구
  • ts-remove-unused : Line에서 사용하지 않는 TypeScript 코드를 제거해 주는 CLI 도구를 오픈소스로 공개했다.

버전 업데이트

2023/10/01 15:20 2023/10/01 15:20