웹개발 관련
- 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 환경을 구성하는 방법을 설명한다.(영어)
인프라 관련
AI 관련
- Introducing the Realtime API : OpenAI에서 ChatGPT의 고급 음성 모드처럼 사용할 수 있는 Realtime API를 공개했다. Realtime API는 사전 설정된 6가지 음성을 사용하여 자연스러운 음성 대화를 지원하고 Chat Completions API를 통해 오디오 입출력도 가능하다.(영어)
- Meta Movie Gen : Meta에서 동영상을 만드는 생성형 AI에 대한 연구 논문을 발표했다.(영어)
볼만한 링크
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
버전 업데이트
- Deno v2.0 : TypeScript 런타임, 릴리스 공지
- Node.js와 npm 하위호환성 지원
package.json, node_modules 네이티브 지원
deno install, deno add, deno remove 명령어로 패키지 관리
- LTS 릴리스
- Python v3.13.0 : 프로그래밍 언어, 릴리스 공지
- PyPy 기반의 새롭게 개선된 인터랙티브 인터프리터
- GIL을 비활성화해서 스레드를 더 많이 실행할 수 있는 실험적인 free-threaded 빌드 모드
- 상당한 성능 개선을 위한 기반 작업으로 예비적이고 실험적인 JIT
- Valkey v8.0.0 : Redis의 오픈소스 포크인 키밸류 인메모리 데이터 스토어, 릴리스 공지
- Ubuntu 24.10 Oracular Oriole : Linux 배포판, 릴리스 공지
- mitmproxy 11 : HTTPS 프록시, 릴리스 공지
- eleventy v3.0.0 : Node.js 정적 사이트 생성기, 릴리스 공지
- Tauri v2.0 : 데스크톱/모바일 크로스 플랫폼 어플리케이션 프레임워크, 릴리스 공지
- Keycloak 26.0.0 : 아이덴티티 접근제어(IAM), 릴리스 공지
- Observable Framework v1.12.0 : 데이터 앱이나 대시보드, 리포트를 위한 정적 사이트 생성기, 릴리스 공지
- pnpm v9.12.0 : Node.js 패키지 매니저, 릴리스 공지
- Open Policy Agent v0.69.0 : 클라우드 네이티브 환경의 정책 엔진, 릴리스 공지
- Homebrew v4.4.0 : OS X 패키지 매니저, 릴리스 공지
- Flux v2.4.0 GA : Kubernetes 배포 도구, 릴리스 공지
- ClickHouse v24.9 : 컬럼형 데이터베이스, 릴리스 공지
- Node.js v20.18.0 (LTS) : 자바스크립트 런타임, 릴리스 공지
- Falco 0.39.0 : 클라우드 네이티브 런타임 보안, 릴리스 공지
- karmada v1.11 : 멀티 클러스터, 멀티 클라우드 Kubernetes 관리 시스템, 릴리스 공지
- Git v2.47.0 : 분산 형상관리 도구, 변경사항
- julia v1.11 : 프로그래밍 언어, 릴리스 공지
- Volcano 1.10.0 : 클라우드 네이티브 배치 스케쥴링 시스템, 릴리스 공지
- Argo Workflows v3.5.0 : 컨테이너 기반 워크플로우 엔진, 릴리스 공지
- Remix v2.13.0 : 풀스택 웹 프레임워크, 릴리스 공지
- React Router v6.27.0 : React의 라우팅 라이브러리, 릴리스 공지
- Kargo v0.9.0 : Kubernetes용 배포 도구, 릴리스 공지
- Vault v1.18 : 시크릿 정보 관리 도구, 릴리스 공지
- Boundary v0.18 : 인프라 접근 관리, 릴리스 공지
- Consul 1.20 : 서비스 디스커버리/설정 도구, 릴리스 공지
Comments