Blog

TypeScript의 `string.length`는 왜 거짓말을 할까

자바스크립트의 `string.length`가 이모지와 복잡한 문자 앞에서 어떻게 우리를 배신하는지, 그리고 이 혼돈을 해결할 현대적인 API, `Intl.Segmenter`의 모든 것을 파헤쳐 봅니다.

August 17, 20254 minutes

Git은 대체 어떻게 파일을 관리하는 걸까

매일 사용하는 git commit, 그 뒤에선 무슨 일이 벌어질까요? Git의 핵심인 Blob, Tree, Commit 객체의 비밀을 파헤치고, Ruby로 직접 미니 Git을 만들어보며 콘텐츠 기반 파일 시스템의 천재성을 파헤쳐 봅니다.

August 17, 20256 minutes

그 테스트 코드, 왜 읽기 힘든지 알려드릴까요

테스트 코드만 보면 머리가 아픈가요? describe와 beforeEach의 무분별한 중첩이 어떻게 테스트의 가독성을 해치는지, 그리고 명확성을 되찾는 AHA 테스트 원칙과 함수형 접근법을 Kent C. Dodds의 아티클을 통해 깊이 있게 파헤쳐 봅니다.

August 17, 20255 minutes

TypeScript 배열, `T[]` 대신 `ReadonlyArray<T>`를 써야 하는 이유

함수 하나 호출했을 뿐인데 원본 배열이 망가진 경험, 있으신가요? 이런 사이드 이펙트 버그를 원천 차단하는 TypeScript의 강력한 무기, `ReadonlyArray`의 모든 것을 알려드립니다. 이제 불변성은 선택이 아닌 필수입니다.

August 17, 20255 minutes