웹개발 관련
- The State of JS 2024 : 매년 발표되는 JavaScript 생태계의 설문조사로 올해는 1만 4천여 명이 응답자로 참여했다. JavaScript 언어의 새 기능이나 브라우저 API의 인지도 등을 볼 수 있다. 다양한 분류로 시각화해 두어서 주류인 기술과 새롭게 관심받는 기술을 알 수 있다.(영어)
- 5 tips to effectively optimize INP in React : React에서 INP(Interaction to Next Paint)를 개선하기 위해 DOM 개수를 줄이는 게 중요한데 Google에서는 1,400개를 권장하지만 보통 2,500개까지는 잘 처리하고 이후부터는 성능이 저하될 수 있다. DOM을 줄이기 위해 컴포넌트 구조를 단순화하고 SSR을 쓰는 것도 도움이 되고 컴포넌트를 단순 버전과 풍부한 버전으로 나누어서 처음에는 단순 버전으로 로드하고 Inersection Observer를 이용해서 화면에 보여질 때 풍부한 버전을 로드하도록 만들 수 있고
<Suspense>
를 사용해서 중요 컴포넌트와 아닌 것은 구분해서 렌더링하는 것도 도움이 된다.(영어) - Data-Driven SEO and Web Performance : 웹사이트의 성능이 SEO에 영향을 미친다고 보통 얘기하지만, 어느 정도인지는 명확지 않고 실제로는 검색 키워드에 따라 성능이 결과에 반영되는 정도가 다르다. 웹사이트의 성능이 SEO 순위에 얼마나 영향을 미치는지 확인할 수 있도록 Keyword Vitals이란 크롬 익스텐션을 만들어서 키워드별로 얼마나 영향을 미치는지 보여주기 때문에 목표로 하는 검색 키워드에 따라 웹사이트 성능에 얼마나 노력을 들일지를 판단할 수 있다.(영어)
그 밖의 개발 관련
- How bloom filters made SQLite 10x faster : SQLite v3.38.0에 포함된 Bloom filter 연구 내용을 정리한 글이다. B-tree 행 기반 스토리지를 사용하는 SQLite를 OLAB 벤치마크 도구인 Star Schema Benchmark를 사용해서 비교하면 DuckDB가 30~50배 빠른 것으로 나타난다. 느린 이유를 파악하기 위해 프로파일링을 해보면 조인으로 인해서 SeekRowID가 많은 CPU 사이클을 사용하는 것을 알 수 있어서 Bloom Filter를 추가해서 행의 존재 여부를 미리 파악하도록 하니 7~10배가 빨라졌다.(영어)
- 언제까지 블룸 필터만 쓸 것인가: Ribbon Filter : 블룸 필터를 사용하면 모든 테이블을 조회하지 않고 일부만 조회할 수 있기 때문에 많이 사용되는데 블룸 필터의 대안으로 등장한 리본 필터에 관해 설명하는 글이다. RocksDB도 LSM 트리를 사용하면서 성능을 위해 블룸 필터를 사용하고 있었으나 리본 필터를 사용하면서 약간의 CPU만 더 사용하면서 1억 개 키에서는 27%, 10만 개 키에서는 30%의 메모리를 아낄 수 있었다고 한다. 이 리본 필터의 원리를 설명한다.(한국어)
- Node.js Now Supports TypeScript By Default : 현재 Current 버전으로 개발되고 있는 Node 23에
--experimental-strip-types
플래그를 제거하는 PR이 머지되었다. 이는 실제로 타입을 검사하는 것이 아니라 타입을 제거 후 실행하는 것이지만 이를 통해 23에서는 ts 파일을 직접 실행할 수 있게 될 예정이다.(영어) - Announcing Hotwire Spark: live reloading for Rails applications : Rails 애플리케이션에서 라이브 리로딩을 할 수 있는 Hotwire Spark를 공개했다.(영어)
- Using GitHub Copilot in your IDE: Tips, tricks, and best practices : VS Code에서 GitHub Copilot을 잘 사용하기 위한 팁을 정리한 글이다.
#editor
로 현재 열어놓은 파일을 참고하거나@workspace
로 전체 워크스페이스에 대해 대화를 나누는 방법 같은 유용한 기능과 Copilot을 잘 쓰기 위해 파일 상단에 파일에 대한 설명을 적어두거나 함수나 변수명을 의미 있게 지어서 Copilot이 답변을 더 잘할 수 있게 하는 방법이 정리되어 있다.(영어) - 나의 GitHub Copilot 활용법 & Tip (for IntelliJ) : IntelliJ에서 GitHub Copilot의 사용법과 그동안의 경험을 통해 언제 GitHub Copoilot을 사용하면 유용한지를 정리해 두었다.(한국어)
인프라 관련
- Incident Report for OpenAI : 지난 12월 11일 OpenAI가 4시간 동안이나 사용할 수 없었던 장애에 대한 보고서이다. 이 문제는 Kubernetes 클러스터의 가시성을 강화하기 위해 컨트롤 플레인 메트릭을 수집하기 시작했는데 이 수집으로 인해서 Kubernetes API 서버에 과부하가 걸렸고 결국 컨트롤 플레인이 다운되었다. 데이터 플레인에서도 DNS는 컨트롤 플레인에 의존하기 때문에 DNS가 업데이트되지 않으면서 문제가 장애가 발생했다.(영어)
- The evolving role of SREs: Balancing reliability, cost, and innovation : 설문조사에 따르면 SRE의 94%가 SRE 직종을 동료에게 추천하겠다고 한 것으로 나타났다. SRE는 인프라 기반부터 비즈니스 목표까지 포괄적인 관점을 가질 수 있으며 비즈니스와 기술만의 상호작용이 업무 만족도의 주요 원인이었고 다양한 기술을 요구하고 있다. SRE의 스킬은 통합가시성, 자동화, 성능 최적화, 장애 대응, 분산 시스템 설계 등으로 나타났고 비용 최적화가 새롭게 SRE의 공식 업무로 자리 잡기 시작했으며 이미 통합 가시성에서 AI/ML을 사용하고 있는 것으로 나타났다.(영어)
- How Pinterest Leverages Honeycomb to Enhance CI Observability and
Improve CI Build Stability : Pinterest에서 Honeycomb를 사용해서 CI의 가시성을 높인 과정이다. 빌드할 때 Buildkite를 사용하는데 Buildkite를 Honeycomb와 통합해서 세부 단계의 트레이스를 보면서 빌드 시간이 증가하거나 실패했을 때 쉽게 파악할 수 있도록 했다.(영어) - Open sourcing h3i: a command line tool and library for low-level HTTP/3 testing and debugging : Cloudflare에서 QUIC으로 실행되는 HTTP/3의 저수준 테스트와 디버깅에 사용할 수 있는 Rust 라이브러리이면서 CLI인 h3i를 오픈소스로 공개했다. Cloudflare에서 HTTP/3를 지원하면서 공격 등 다양한 조건으로 테스트를 할 수 있도록 만들었다.(영어)
- 2024 benchmarks for the DX Core 4 : DX에서 개발자 생산성을 측정하는 프레임워크를 DORA, SPACE, DevEx를 통합한 DX Core 4를 발표하고 500여 개 회사로 벤치마크한 데이터도 공개했다.(영어)
AI 관련
- State-of-the-art video and image generation with Veo 2 and Imagen 3 : Google에서 새로운 비디오 모델인 Veo 2와 Imagen 3의 최신 버전을 공개했다. 또한 Whisk 실험 프로젝트를 사용하면 주제나 이미지를 전달해서 새로운 시각화를 만들 수 있다.(영어)
- OpenAI announces new o3 models : OpenAI에서 o1 모델의 후속 모델인 o3와 o3-mini를 발표했다.(영어)
볼만한 링크
- Ghostty: Reflecting on Reaching 1.0 : HashiCorp의 공동 창업자였던 Mitchell Hashimoto가 2년 전부터 만들고 비공개 베타로 테스트하던 터미널 에뮬레이터 Ghostty의 1.0을 공개했다.(영어)
- Ghostty Is Native—So What? : Mitchell Hashimoto가 만들어서 공개한 터미널 에뮬레이터인 Ghostty에 대해 사람들이 성능에 대해 가장 많이 얘기하지만, 자신은 Ghostty가 네이티브 플랫폼이란 점이 과소평가 되었다고 설명하는 글이다. Ghostty는 macOS와 잘 통합되어 있기 때문에 OS에서 제공하는 기능을 Ghostty에서도 그대로 사용할 수 있다.(영어)
IT 업계 뉴스
- Announcing 150M developers and a new free tier for GitHub Copilot in VS Code : GitHub Copilot이 무료 플랜이 공개되었다. 무료 플랜에서는 2,000번의 코드 완성과 50번의 Copilot Chat을 매달 무료로 사용할 수 있고 기존 Individual 플랜은 Pro 플랜으로 변경되었다.(영어)
프로젝트
- Annotated Logger : 메서드나 클래스에 로거 객체를 주입할 수 있는 Python 패키지로 GitHub에서 공개했다.
- Gitingest : GitHub 저장소를 입력하면 코드 베이스를 텍스트 설명으로 변환해서 LLM에 제공하기 좋은 형태로 만들어 준다.
- curl-impersonate : curl로 요청 보낼 때 Chrome, Edge, Safari, Firefox 처럼 보이도록 하는 curl의 변형 빌드.
버전 업데이트
- Open Policy Agent v1.0.0 : 클라우드 네이티브 환경의 정책 엔진, 릴리스 공지
- Ruby v3.4.0 : 프로그래밍 언어, 릴리스 공지
- Kubernetes v1.32 Penelope : 컨테이너 오케스트레이션 도구, 릴리스 공지
- Phoenix LiveView v1.0.0 : Phoenix 서버의 서버렌더링으로 웹 페이지를 만드는 기능, 릴리스 공지
- React Router v7.1.0 : React의 라우팅 라이브러리, 릴리스 공지
- TinyBase v5.4 : 로컬 우선 앱을 위한 리액티브 데이터 스토어, 릴리스 공지
- Zed v0.166.1 : 코드 에디터, 릴리스 공지
- GitLab v17.7 : 오픈소스 설치형 Git 플랫폼, 릴리스 공지
- Node.js v23.5.0 (Current) : 자바스크립트 런타임, 릴리스 공지
- Kamal 2.4.0 : 배포 도구, 릴리스 공지
- Docker Desktop v4.37 : 데스크톱용 Docker 애플리케이션, 릴리스 공지
- panda v0.50.0 : CSS-in-JS, 릴리스 공지
- Jotai v2.11.0 : React 상태 관리 라이브러리, 릴리스 공지
- Nuxt.js v3.15.0 : 서버렌더링 Vue.js 애플리케이션 프레임워크, 릴리스 공지
- fish shell v3.2.0 : 쉘, 릴리스 공지
- astro v5.1 : JavaScript 웹 프레임워크, 릴리스 공지
Comments