웹개발 관련
- The Plan for React 18 : React 팀에서 React 18 릴리스 작업을 시작하면서 계획을 발표하며 알파 버전도 같이 공개했다. React 18에는 자동 배칭, 스트리밍 서버 렌더링, 새로운 API가 추가될 예정이지만 애플리케이션 코드를 거의 바꾸지 않고도 업그레이드 할 수 있을 것이라고 한다. 수개월 내에 퍼블릭 베타를 공개할 것이라고 한다. 꼭 18 버전을 위한 것은 아니겠지만 새로운 React Docs도 공개되었다.(영어)
- Photoshop's journey to the web : Phtoshop을 web으로 구현하기까지 구현 과정을 설명한다. 현재 Photoshop web 버전은 비공개 베타이다.(영어)
- 이미 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를 확인하는 기능 등을 소개한다.(한국어)
그 밖의 개발 관련
인프라 관련
- 쿠버네티스 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를 해결했다고 한다.(한국어)
볼만한 링크
IT 업계 뉴스
프로젝트
버전 업데이트
- Next.js 12 : 서버렌더링 React 애플리케이션 프레임워크, 릴리스 공지
- SWC로 로컬 갱신이 3배 빨라졌고 프로덕션 빌드는 5배 빨라졌다.
- 인증, 리다이렉션, 로깅 등에 사용할 수 있는 미들웨어 도입
- Vitess 12.0 : MySQL 클러스터링 시스템, 릴리스 공지
- Node.js v16.13.0 (LTS) : 자바스크립트 런타임, 릴리스 공지
- 새로운 LTS 버전
- 2022년 10월까지 Active LTS로 지원되고 2024년 4월까지 maintenance로 지원될 예정
- Node.js v17.0.0 (Current) : 자바스크립트 런타임, 릴리스 공지
- GitHub CLI v2.2.0 : GitHub 공식 CLI 도구, 릴리스 공지
- Codespace를 제어할 수 있는 명령어 추가
- Codespace에 SSH로 접속할 수 있는
gh codespace ssh
추가
- Python v3.10.0 : 프로그래밍 언어, 릴리스 공지
- Babel v7.16.0 : JavaScript 컴파일러, 릴리스 공지
- Class의 static 블록 기본 활성화
- TypeScript 4.5의 type-only 문법 지원
- ESLint 8 지원
- Kong Ingress Controller 2.0 : Kubernetes 인그레스 컨트롤러, 릴리스 공지
- Harbor v2.4 : 컨테이너 이미지 저장소, 릴리스 공지
- Meteor v2.5 : 웹앱 플랫폼, 릴리스 공지
- Crossplane v1.5.0: 외부 인프라 관리용 Kubernetes 애드온, 릴리스 공지
- GitLab v14.4 : 오픈소스 설치형 Git 플랫폼, 릴리스 공지
- PyTorch v1.10.0 : Python 딥러닝 프레임워크, 릴리스 공지
- pnpm v6.20.0 : Node.js 패키지 매니저, 릴리스 공지
- Prisma v3.3.0 : TypeScript/Node.js 데이터베이스 툴킷, 릴리스 공지
- Scala 3.1.0 : 프로그래밍 언어, 릴리스 공지
- pgAdmin 4 v6.1 : PostgreSQL 클라이언트 도구, 릴리스 공지
- CDK for Terraform v0.7.0 : Terraform Cloud Development Kit, 릴리스 공지
Outsider
2021/11/02 02:28
2021/11/02 02:28
Comments