(번역) 2023년 웹 개발 트렌드 10가지 (2023-03-06), 한국어 번역 — (메타) 프레임워크의 부상, SSR, SSG, ISR을 비롯한 다양한 렌더링 패턴의 부상, 엣지 컴퓨팅으로 인터랙션 시간 최적화, 서버리스 데이터베이스의 진화, 대안 자바스크립트 런타임의 개척, 다시 시작된 모노레포 열풍, 유틸리티 우선 CSS, 타입스크립트에 전달되는 단 대 단 타입 안전성, 빌드 도구의 획기적 개선, AI 기반 개발 등.
Common Beginner Mistakes with React (2023-03-15), 영어 — React 초보자가 저지르는 흔한 실수: 0의 falsy 간과, state를 직접 변경, key 미지정, 공백 문자 누락, 상태 변경 직후 접근, 다중 엘리먼트 반환, 비제어 컴포넌트인 척하던 제어 컴포넌트, style을 오브젝트로 넘기지 않음, effect에서 async를 잘못 사용
tosspayments-restdocs: 선언형 문서 작성 라이브러리 (2023-03-22), 한국어 — Spring REST Docs는 장황하고 복잡하게 REST 문서를 선언해야 하므로 tosspayments-restdocs를 만들며 선언형 프로그래밍의 장점 소개 및 타입 추론의 유용성을 API 설계에 녹여내기 등을 회고.
The Error Model (2016-02-07), 영어 — 버그와 복구 가능한 에러를 같은 방식으로 다루면 안된다. 기존 에러 처리 방식 탐구: 1) 에러 코드/결과-에러 튜플: 사용성 별로고 에러 체크 까먹을 수 있음. 2) Result<T, E> 스타일 자료구조: 복구 가능한 에러 디자인에서 훌륭한 사용성. 3) 비검사 예외: RAII도 귀찮게 하고 코드의 신뢰성을 까먹어서 별로임. 4) 검사 예외: 에러 전파 지멋대로 고칠 수 있고, 사람들 다 불편해함; 자 그래서. 버그는 복구 가능 에러여서는 안되므로, Midori(저자의 언어)에서는 Abandonment라고 해서 복구 불능 에러 발생 시 격리된 프로세스 전체를 버리는 걸 제안(Rust의 panic!에 가까움). 그 외 throws를 Result<T, E>의 문법 설탕으로 제안하고, 나아가, Effect로 일반화까지 제안하는 등. 옛날 글임에도 상당히 현대적인 개념들을 분석해 제안함.
Must move type (2023-03-16), 영어 — Rust에 must move 타입(PL term으로는 linear type)을 제안하고, async drop/parallel structured concurrency 등을 제공할 수 있다고 설명하는 글
What are JavaScript variables made of (2022-01-21), 영어 — C/C++/Rust 등의 언어에 어울리는 “박스 모델(값을 ‘소유’)” 대신 “레이블 모델(값을 ‘지칭’)”을 멘탈 모델로 사용해서 JS 변수를 이해해야 한다는 글.