웹개발 관련
- Forking Chrome to turn HTML into SVG : Chromium을 포크해서 HTML 페이지를 SVG로 변환하는 프로젝트인 html2svg를 만드는 과정을 설명한 글이다. Blink와 Skia 코드를 수정해서 페이지를 SVG로 변환하는 함수를 만들고 폰트나 그림자 등의 문제를 해결하는 과정이 나와 있다.(영어)
그 밖의 개발 관련
- Seeing through hardware counters: a journey to threefold performance increase : Netflix에서 Java 서비스 중 하나인 GS2를 m5.4xl(vCPU 16개)에서 m5.12xl(vCPU 48개)로 올려서 성능이 3배 증가할 것으로 기대했지만 처리량은 25%만 증가했고 지연시간을 오히려 증가하는 문제를 발견했다. 매트릭을 살펴보다가 CPU와 대기시간이 낮은 노드가 있다는 것을 발견했다. 더 낮은 수준을 보기 위해 PMC를 살펴보다가 2개의 코어가 동일한 L1 캐시 라인을 공유하면서 관련 없는 변수에서 읽고 쓸 때 발생하는 False Sharing의 일반적인 패턴을 볼 수 있었고 JDK의 동작을 수정하진 않고 데이터 레이아웃에서
_secondary_super_cache
, _secondary_supers
에 패딩을 추가해서 느린 노드가 사라지게 되었다. 하지만 여전히 목표인 250 RPS에 못 미치는 150 RPS만 처리할 수 있었고 이 문제는 동일한 변수를 여러 스레드/코어에서 읽고 쓰는 True Sharing임을 깨닫고 공유 변수에 모두 쓰지 않고 JVM의 보조 슈퍼클래스 캐시를 효과적으로 우회하도록 수정하고 3.5배의 성능 향상을 이루었다고 한다.(영어)
- Werner Vogels – Amazon 분산 컴퓨팅 선언문 (1998) : Amazon의 CTO의 Werner Vogels가 1998년 아마존에서 작성되었던 분산 컴퓨팅 선언문을 공개했다. 25년이 지난 지금 놀라운 얘기는 아니지만, 당시에 저렇게 생각했다는 게 놀랍기도 하고 Amazon의 주문량을 10배 지원하려면 어떻게 해야 하는지로 시작하는 게 귀엽기도 하다.(지금은 10배 수준이 아닐 테니..) 이를 위해 서비스 기반 아키텍처(SOA)로 바꾸고 아마존은 메시지 기반 워크플로 모델이 적합하며 이 워크플로 진행 중 상태 변경을 위해 Pub/Sub 모델을 사용해야 한다고 하고 있다.(한국어)
- It’s time to leave the leap second in the past : Meta에서 쓴 글로 UT1과 UTC를 보정하는 윤초(Leap Second)가 지금까지는 괜찮았지만 윤초의 문제가 많이 발생하고 있고 앞으로는 음의 윤초가 생길 가능성이 있기 때문에 페이스북에서는 현재의 윤초를 그대로 유지하려고 노력하고 있다고 한다. GeekNews의 한국어 요약을 봐도 좋다.(영어)
- Sapling: Source control that’s user-friendly and scalable : Meta에서 10년 동안 내부에서 개발해서 사용 중이던 Git 호환 클라이언트를 오픈소스로 공개했다. Git 호환 클라이언트라 Git과 함께 쓸 수 있고 ReviewStack을 같이 쓰면 GitHub에서 stacked changes도 쉽게 볼 수 있다.(영어)
- Node.js 18.x runtime now available in AWS Lambda : AWS Lambda에서 Node.js의 새 LTS 버전인 18.x를 사용할 수 있게 되었다.(영어)
인프라 관련
- AWS re:Invent 2022 : 11월 28일부터 12월 2일까지 미국 라스베가스에서 AWS의 re:invent가 열리고 있다. 아직 re:Invent가 진행 중이라 계속 새로운 제품과 기능이 발표되고 있다. 하위 목록은 그중 흥미로운 것들만 모을 생각이었지만 아직 글을 못 찾은 내용도 있다.(한국어)
- NRISE를 지탱하는 기술 — 인프라 : 위피와 콰트를 운영하는 엔라이즈에서 지난 1년간 인프라를 개선 시킨 과정과 도입한 도구를 정리한 글이다. 기존 인프라를 EKS와 풀 매니지드 서비스로 전환하는 것을 목표로 하고 Terraform, Helm, Helmfile을 도입하고 Kubernetes는 Karpenter와 KEDA로 스케일링하고 있으며 Argo CD와 GitHub Actions 등을 쓰고 있다고 한다.(한국어)
- Introducing the Dagger Node.js SDK : CI/CD 엔진인 Dagger의 Node.js SDK가 공개되었다. Go, Python SDK에 이어 세 번째 SDK다.(영어)
- Finch – 오픈 소스 기반 컨테이너 빌드 클라이언트 프로젝트 출시 : OCI 컨테이너 이미지를 빌드 및 실행할 수 있는 AWS의 오픈소스 프로젝트. 현재는 초기라 macOS만 지원한다.(한국어)
IT 업계 뉴스
프로젝트
- Circuit : Slack에서 오픈소스로 공개한 Kotlin 애플리케이션 프레임워크.
- tfautomv : Terraform 코드를 리팩토링할 때 상태와 코드를 비교해서
move
블록을 만들어주는 프로젝트
- tea : Homebrew를 만든 사람이 새로운 패키지 매니저 인프라스트럭처를 공개했고 Homebrew를 대체할 목적은 아니라고 한다.
버전 업데이트
- Spring Framework v6.0 GA : Java 프레임워크, 릴리스 공지
- Spring Boot v3.0.0 GA : 스프링 애플리케이션의 구축을 도와주는 도구, 릴리스 공지
- Java 17 기반
- GraalVM의 네이티브 이미지 생성 지원
- Spring Batch 5.0 GA : 스프링 배치 프레임워크, 릴리스 공지
- Spring Security v5.8, v6.0 GA : Spring 인증 프레임워크, 릴리스 공지
- Spring Integration v6.0 GA : Spring 네/외부 메시징 프레임워크, 릴리스 공지
- Spring Data 2022.0.0 GA : Spring 기반 데이터 접근 라이브러리, 릴리스 공지
- Stable Diffusion 2.0 Release v2 : 텍스트를 이미지로 변환하는 모델, 릴리스 공지
- Wasmer v3.0 : WebAssembly 런타임, 릴리스 공지
wasmer run
으로 WAPM 패키지 직접 실행
- 개선된 API와 메모리 관리
- 아티팩트의 제로 카피 역직렬화
- Angular v15.0.0 : JavaScript 프레임워크, 릴리스 공지
- Ant Design 5.0.0 : React 디자인 컴포넌트, 릴리스 공지
- MLflow v2.0 : 머신러닝 라이프사이클 플랫폼, 릴리스 공지
- RedwoodJS v3.5.0 : 풀스택 웹프레임워크, [릴리스 공지]https://github.com/redwoodjs/redwood/releases/tag/v3.5.0)
- Rollup v3.5.0 : JavaScript 번들러, 변경 사항
- Playwright v1.28.0 : Chromium, Firefox, WebKit 브라우저 자동화 Node.js 라이브러리, 릴리스 공지
- Prettier v2.8.0 : JavaScript/TypeScript 포매터. 릴리스 공지
- SQLite v3.40.0 : SQL 데이터베이스 엔진, 릴리즈 공지
- alpine Linux 3.17.0 : Linux 배포판, 릴리스 공지
- ESLint v8.28.0 : JavaScript 코드 분석 도구, 릴리스 공지
- Fastify v4.10.0 : Node.js 웹 프레임워크, 릴리스 공지
- Nightwatch.js v2.5.0 : 웹어플리케이션 E2E 테스트 도구, 릴리스 공지
- Nuxt.js v3.0.0 : 서버렌더링 Vue.js 애플리케이션 프레임워크, 릴리스 공지
- Consul 1.14 : 서비스 디스커버리/설정 도구, 릴리스 공지
- Istio v1.16 : 서비스 매쉬, 릴리스 공지
- External Authorization이 베타로 승격됨
- Kubernetes Gateway API가 베타로 승격됨
- TypeScript v4.9 : Microsoft가 만든 JavaScript transpiler, 릴리스 공지
- Stimulus v3.2.0 : JavaScript 프레임워크, 릴리스 공지
- Prisma v4.7.0 : TypeScript/Node.js 데이터베이스 툴킷, 릴리스 공지
interactiveTransactions
이 프로덕션 레디가 됨
relationMode
가 안정상태가 됨
- Node.js v19.2.0 (Current) : 자바스크립트 런타임, 릴리스 공지
- CDK for Terraform v0.14.0 : Terraform Cloud Development Kit, 릴리스 공지
- Grafana v9.3 : 매트릭 대쉬보드, 릴리스 공지
- Electron v22.0.0 : 크로스 플랫폼 데스크톱 애플리케이션 플랫폼, 릴리스 공지
Outsider
2022/12/01 09:45
2022/12/01 09:45
Comments