원본(Original) 소스 코드와 변환된(transpiled) 소스 코드 사이의 매핑 정보가 선언된 파일


소스맵이 필요한 이유

예전의 웹페이지는 HTML과 CSS, JS로 구축되었음. 그러나 현대의 웹페이지는 매우 복잡한 구조로 발달

⇒ 더 빠르고, 안정적이며, 더 많은 개발 편의를 위해서는 다양한 도구를 써야 함

<aside> 📌 다양한 도구들

하지만, 브라우저는 여전히 HTML과 CSS, JS만 이해할 수 있기 때문에, 이러한 도구를 사용하게 되면 디버깅 과정에서 문제가 발생

그럼에도 불구하고, 현대의 브라우저는 개발자 도구에서 코드 라인의 위치를 정확하게 짚어주는데, 이것이 가능한 이유는 우리가 브라우저에게 원본 소스 코드와 변환된 소스 코드의 관계를 맺어주는 정보인 **소스 맵(Sourse map)**을 제공하기 때문


소스맵의 구조

// script.min.js.map
{
"version": 3,
"file": "script.min.js.map",
"sources": ["src/script.ts"],
"sourcesContent": ["document.querySelector('button')..."],
"names": ["document","querySelector", ...],
"mappings": "AAAAA,SAASC,cAAc,WAAWC, ...",
}