웹개발 관련
- Non-blocking
<canvas />
Rendering in Concurrent React : React 18에 concurrent 기능이 들어깄지만 컴포넌트 렌더링만 지원하고 컴포넌트 이팩트는 여전히 메인 스레드를 블로킹한다. 브라우저가 오래 걸리는 작업을 실행 중일 때 페이지를 느리게 만드는데 여기서 오래 걸리는 작업은 50ms 이상 걸리는 작업을 의미한다. 메인 스레드를 블로킹하지 않는 방법은 병렬성(parallelism)과 동시성(concurrency)이 있는데 WebWorker는 제약 사항도 많으므로 WebWorker가 적합하지 않으면 동시성과 스케줄링을 사용해야 한다. 제너레이터 함수를 사용해서 10ms마다 작업을 멈추고 다른 작업을 하게 하면 브라우저는 6ms의 여유를(60FPS를 위한 16ms) 가지게 하는 게 일반적이고 어떤 작업을 해야 할지를 위해 스케쥴링이 필요하다. React팀이 만든 scheduler가 있지만 이를 렌더링이 아닌 이팩트에도 쓰기 위해 use-transition-effect를 만들었다. 해당 패키지를 꼭 쓰지 않더라도 각 단계에서 비교할 수 있는 예제까지 제공하고 있어서 성능을 비교해 보기 좋다.(영어)
- Webpack Module Federation 도입 전에 알아야 할 것들 : 다른 웹에서 원격으로 모듈을 임포트해서 사용할 수 있는 Webpack Module Federation의 동작 방식을 설명한다. 원격 모듈은 다른 도메인에서 가져올 수 있고 별도로 빌드할 수 있지만 모듈의 타입을 알기가 어렵고
remoteEntry.js
의 경로를 관리해야 하는 불편함이 존재한다.(한국어)
- Ecma International approves ECMAScript 2022: What’s new? : ECMAScript 2022 명세가 표준으로 승인되었다. 클래스에 새로 추가된 instance 퍼블릭 필드, 정적 퍼블릭 필드, 최상위
await
, error.cause
등 새로운 기능이 정리되어 있다.(영어)
- W3C to become a public-interest non-profit organization : W3C가 23년 1월 새로운 법인을 만들어서 비영리 단체가 된다고 한다. Tim Berners-Lee는 1994년 MIT의 호스팅 제안을 받아들여서 미국, 일본, 프랑스, 중국의 대학교와 파트너 관계로 호스팅 모델로 운영했다. 하지만 새로운 웹 기능의 요구사항이 높아짐에 따라 새로운 거버넌스가 필요해져서 공익 비영리 단체로 진화한다고 한다.(영어)
그 밖의 개발 관련
인프라 관련
볼만한 링크
- 토스에서의 시간을 돌아보며 : Toss에서 프론트엔드 리더(명확히 얘기하진 않지만, 글의 내용으로 봤을 때)로 일하고 나서의 경험을 적은 글이다. Toss는 DRI(Directly Responsible Indivisual)라고 각자가 최종의사 결정권을 갖는 문화가 있고 이 문화를 통해서 빠르게 일할 수 있는 문화를 가지게 되었다. 뒷부분은 프론트엔드 챕터에 대한 얘기로 이어지는데 각자 자기 일을 하는 소규모 챕터에서 규모가 커지면서 주니어 개발자가 합류하게 되고 이러한 분들이 자신감을 잃지 않도록 도와주는 사람을 배치하고 "싼 똥"을 자랑하는 자리와 강점 찾기 테스트 등 성장에 대한 다양한 시도를 한 과정이 나온다.(한국어)
- Developer Experience at Vercel : Vecel의 VP of Developer Experience(DX)인 Lee Robinson이 DX에 관해 쓴 글이다. Vecel에서 DX를 제품의 성장을 이끄는 핵심으로 엣지 컴퓨팅에 미래가 있고 프론트엔드 개발자의 역량을 강화하고 개발자가 React 사이트를 만들 수 있는 프레임워크를 제공하고 있다고 한다. Vecel에서 DX의 4가지 기둥이 있는데 교육, 문서, 커뮤니티, 템플릿이고 좋은 DX를 제공하기 위해 노출 시간을 늘리고 만들면서 직접 테스트가 되어 배우고 개발자에게 공감하고 엄청 좋은 게 아니라면 선택하지 않아서 중요한 작업에 집중할 수 있게 한다고 한다.(영어)
- 국내 최고의 개발 문화를 가진 회사는? – 설문 조사 결과 : 윤석찬 님이 국내 개발자 문화 현황을 설문 조사한 결과를 공유했다. 아래 12가지 기준으로 설문을 진행했고 전체 결과 외에도 중소기업, 스타트업, 인터넷 기업, 게임 기업, 대기업별로 나누어서도 결과를 보여주고 있습니다.(한국어)
- 코딩 테스트 인터뷰
- 자율적 개인 개발 장비 선택
- 자율적 팀 개발 환경 선택
- 소스 코드 리뷰 및 테스트
- 개발자 기여 로드맵/백로그
- 지속적 통합 및 배포(CI/CD)
- 내부 소스 레퍼지터리 공유
- API를 기반한 연동 및 소통
- 기술을 이해하는 팀장/매니저
- 개발자 레벨 혹은 경력 관리
- 참여형 지식 공유 플랫폼
- 개발자 관계(DevRel) 활동
IT 업계 뉴스
프로젝트
- Maccy : macOS용 클립보드 관리자
- Oh Shit, Git!?! : 커밋 후 빠진 걸 발견했다거나 잘못된 브랜치에 커밋하는 등 Git에서 실수한 상황을 어떻게 해결해야 하는지 정리해 놓은 사이트.
- Checklist Design : 로그인 페이지, 404 페이지, 엘리먼트, 흐름 등 빠뜨린 게 없는지 확인할 수 있도록 체크리스트를 정리해 놓은 사이트.
버전 업데이트
- Vim v9.0 : 텍스트 에디터, 변경사항
- Next.js 12.2 : 서버렌더링 React 애플리케이션 프레임워크, 릴리스 공지
- 동적 라우팅을 위한 미들웨어(안정)
- 재배포없이 컨텐츠를 업데이트하는 온디맨드 ISR(안정)
- 고성능 API 엔드포인트를 위한 엣지 API 라우트(실험)
- 엣지에서 서버렌더링을 하는 엣지 SSR(실험)
- 플러그인으로 컴파일을 확장하는 SWC 플러그인(실험)
- Vitess 14.0 : MySQL 클러스터링 시스템, 릴리스 공지
- Fresh v1.0 : Deno 풀스택 웹 프레이워크, 릴리스 공지
- Mattermost v7.0 : 기업용 메시징 플랫폼, 릴리스 공지
- RedwoodJS v2.0.0 : 풀스택 웹프레임워크, 릴리스 공지
- Git v2.37.0 : 분산 형상관리 도구, 변경사항
- Prisma v4.0.0 : TypeScript/Node.js 데이터베이스 툴킷, 릴리스 공지
- Rust 1.62.0 : 프로그래밍 언어, 릴리스 공지
- Vault v1.11 : 시크릿 정보 관리 도구, 릴리스 공지
- 동적으로 서비스 어카운트를 생성하는 새로운 Kubernetes 시크릿 엔진
- PKI 시크릿 엔진이 무중단 인증서 교체를 지원
- 리로스/리스타트시 Vault 에이전트가 PKI 인증서를 다시 가져오지 않도록 하는 옵션 추가
- nginx v1.23.0 : 웹 서버, 변경사항
- Turborepo v1.3.0 : JavaScript/TypeScript 빌드 시스템, 릴리스 공지
- Nightwatch.js v2.2.1 : 웹어플리케이션 E2E 테스트 도구, 릴리스 공지
- ESLint v8.18.0 : JavaScript 코드 분석 도구, 릴리스 공지
- Selenium v4.3.0 : 브라우저 자동화 프레임워크, 릴리스 공지
- Fastify v4.1.0 : Node.js 웹 프레임워크, 릴리스 공지
- GitLab v15.1 : 오픈소스 설치형 Git 플랫폼, 릴리스 공지
- SQLite v3.39.0 : SQL 데이터베이스 엔진, 릴리즈 공지
- Spark v3.3.0 : 대용량 데이터 처리 엔진, 릴리스 공지
- ESLint v8.18.0 : JavaScript 코드 분석 도구, 릴리스 공지
- Volcano 1.6.0 : 클라우드 네이티브 배치 스케쥴링 시스템, 릴리스 공지
- Traefik Proxy v2.8 : HTTP 리버스 프락시/로드 밸런서, 릴리스 공지
- Kuma v1.7 : 서비스 메쉬의 컨트롤 플레인, 릴리스 공지
- fish shell v3.5.0 : 쉘, 릴리스 공지
Outsider
2022/07/01 09:15
2022/07/01 09:15
Comments