TypeScript를 사용하다 보면 외부 라이브러리(Third Party Library)가 제공하는 기본 타입만으로는 비즈니스 요구사항을 충족하지 못할 때가 있다. declare module을 활용하여 기존 라이브러리의 타입을 확장(Override)하는 Module Augmentation 기법과 그 원리인 선언 병합(Declaration Merging)을 정리한다. TypeScript: 외부 라이브러리 타입 확장하기 (Module Augmentation)TypeScript 환경에서 개발하다 보면 외부 라이브러리에서 정의해 둔 타입이 실제 프로젝트의 요구사항과 맞지 않아 애를 먹는 경우가 종종 발생한다. 예를 들어, 인증 라이브러리인 next-auth를 사용할 때, 세션 객체에 role이나 id 같은 커..