The Plan for React 18 : React 팀에서 React 18 릴리스 작업을 시작하면서 계획을 발표하며 알파 버전도 같이 공개했다. React 18에는 자동 배칭, 스트리밍 서버 렌더링, 새로운 API가 추가될 예정이지만 애플리케이션 코드를 거의 바꾸지 않고도 업그레이드 할 수 있을 것이라고 한다. 수개월 내에 퍼블릭 베타를 공개할 것이라고 한다. 꼭 18 버전을 위한 것은 아니겠지만 새로운 React Docs도 공개되었다.(영어)
이미 Spark와 Ligthroom을 웹으로 구현했지만, Photoshop은 JavaScript의 성능 한계로 구현하지 못했다.
WebAssembly와 Emscripten C++ 툴 체인을 이용해서 C++로 작성된 Photoshop을 웹으로 바로 포팅할 수 있었다.
대부분은 포팅했지만, 성능이 충분치 않았다. 동적 멀티스레딩을 WebAssembly에 필요했고 예외에 기반을 둔 오류 핸들링을 W3C 커뮤니티 그룹과 작업했고 SIMD 인스트럭션같은 성능 프리미티브로 성능을 개선할 수 있었다.
데이터를 디스크에서 메모리로 빨리 옮기기 위해 오리진 트라리얼로 사용할 수 있는 origin private file system API를 사용할 수 있다.
웹은 sRBG 색공간을 사용하고 있지만, Photoshop은 Display P3 색공간을 쓰고 있어서 더 적확히 이미지를 보여주도록 Display P3 Canvas를 사용했다.
수많은 UI 요소를 관리하기 위해 Web Components와 Lit 라이브러리를 사용했다.
Optimizing resource loading with Priority Hints : 브라우저가 리소스를 다운로드할 때 <head>에 있는 <link>나 CSS를 먼저 다운로드받거나 뷰포트 내의 리소스를 먼저 다운로드받는 등 최적화를 하지만 이 우선순위 힌트를 줄 수 있는 importance 속성을 설명한다. importance를 hign나 low, auto로 지정할 수 있고 이 우선순위 힌트는 실험적 기능으로 Chrome 96부터 origin trial로 이용할 수 있다. 크롬이 처리하는 우선순위가 표로 잘 나와 있고 우선순위 힌트를 사용했을 때 얼마나 빨라지는 지도 비교해서 보여주고 있다.(영어)
2021년에 살펴볼 법한 브라우저 개발자 도구의 유용한 스타일 관련 기능 : 최신 브라우저에서 CSS를 디버깅하는 데 도움이 되는 최신 기능을 정리한 글이다. 개발자 도구에서 flex나 grid를 상태를 쉽게 확인하고 변경해 볼 수 있는 기능과 폰트를 조정하는 기능을 설명하고 페이지에서 사용되지 않은 CSS를 확인하는 기능 등을 소개한다.(한국어)
github.com에서 Ctrl + k나 Cmd + k를 누르면 빠르게 원하는 곳으로 이동할 수 있는 커멘트 팔레트를 볼 수 있다.
아직 프라이빗 베타이지만 Pull Request를 바로 머지하는 대신 머지 큐에 넣고 최신 베이스 브랜치와 검사를 해준 뒤에 머지할 수 있는 머지 큐가 추가되었다.
Oracle's JDK 17 - Free Again for Commercial Use : Oracle이 2018년 OracleJDK의 프로덕션 사용의 과금을 하겠다는 결정을 되돌려서 NFTC 라이센스하에 무료로 프로덕션 사용을 할 수 있게 한다고 발표했다. 이 NFTC 라이센스는 Oracle JDK 17과 그 이후 버전에 적용된다.(영어)
Web Browser Engineering : 웹 브라우저를 Python으로 구현하는 온라인 튜토리얼이다. 튜토리얼을 다 따라하진 않았지만, 웹페이지 다운로드부터 페이지 그리기, 서버와의 통신, 스크립트 실행까지 단계별로 설명하고 있고 챕터로 보면 3/4 정도 완료되었다.(영어)
인프라 관련
쿠버네티스 API서버는 정말 그냥 API서버라구욧 : kube-apiserver와 통신할 때 보통 kubectl을 이용하게 되지만 이 kube-apiserver가 그냥 API 서버라는 것을 보여주기 위해 kubectl 대신 curl로 요청해 보는 과정을 설명한 글이다. 서버 주소를 알아 온 뒤 인증을 위해서 토큰을 추출하고 API에 직업 HTTP 요청을 보내서 kubectl에서 이용하든 클러스터의 정보를 조회하는 과정을 보여준다. kube-apiserver에서 OpeanAPI 스펙 문서도 제공하므로 이를 이용하면 API 목록도 확인할 수 있다.(한국어)
Logstash의 Kafka Input 성능 개선 이야기 : Logstash를 사용하면서 Kafka Lag가 급격히 증가하는 문제를 해결하기 위한 개선 과정을 설명한다. 처음에는 파티션 수를 늘렸지만 해결되지 않아서 자세히 보니 파티션에 컨슈머가 고르게 붙어있지 않은 문제를 발견하고 partition_assignment_strategy를 사용해서 라운드 로빈을 적용했으나 트래픽이 늘어나자 다시 Lag가 증가하기 시작했다. 그래서 Lag의 의미를 자세히 찾아보니 마지막에 생성된 메시지와 컨슈머가 가져갔다고 표시한 오프셋의 차이라는 것을 알게 되어 auto_commit_interval_ms를 5초에서 1초로 줄여서 Lag를 해결했다고 한다.(한국어)
[번역문] 오징어 게임 스트리밍 증가로 망사업자(ISP)들이 더 많은 돈을 요구하는 중 : Vice의 ISPs Want More Money Because So Many People Are Streaming Squid Game를 오픈넷에서 번역한 글이다. 오징어 게임으로 인터넷 트래픽이 증가했다고 전 세계의 ISP가 넷플릭스에 돈을 요구하고 있다는 얘기고 국내의 ISP인 SK브로드밴드고 넷플릭스 때문에 망 트래픽이 24배 증가했다고 넷플릭스에 금전적인 책임을 요구하고 있다고 한다. 광대역 전문가들은 "SP들은 인기 있는 서비스를 제공하고, 이를 제공할 의무가 있기 때문에 본인들이 피해자라고 주장하는 것은 타당하지 않습니다" 하며 소비자가 오징어 게임을 선택한 것이지 넷플릭스가 ISP에 강제하고 있는 것이 아니라고 했다고 한다. ISP는 빅 테크기업 들이 ISP에 무임승차하고 있다고 하지만 독점력을 가진 통신사를 상대로 누구도 무임승차할 수 없다고 하며 이는 망 구축/운영 비용을 남에게 떠넘기려는 전략이라고 하고 있다.(한국어)
‘메타’를 소개합니다 – 마크 주커버그(번역) : Facebook의 마크 주커버그가 회사의 이름은 Meta로 바꾸며 쓴 글을 번역한 글이다. 기존 Facebook이 사람과 사람을 연결한다는 비전은 달라지지 않았지만 메타버스로의 확장을 얘기하면 회사명을 Meta로 바꾸었다고 하고 있다. 개인적으로 "돈을 벌기 위해 서비스를 만들지 않습니다. 최고의 서비스를 만들기 위해 돈을 법니다"라는 부분은 최근 페이스북의 내부 고발로 시작된 내용을 보면 공감하기는 어렵다.(한국어)
과기정통부, 케이티(KT) 연결망(네트워크) 장애 원인분석 결과 발표 : 지난 25일 있었던 KT의 장애에 관한 결과발표이다. 조사를 해보았지만, DDoS 공격은 없었고 exit 명령어의 누락으로 BGP의 정보가 IS-IS에 전송되면서 라우팅 문제가 생겼다고 한다.(한국어)
Comments