tsconfig.tsbuildinfo 파일이란

2025. 12. 23. 14:23·Development

tsconfig.tsbuildinfo 파일은 TypeScript 컴파일러가 '증분 빌드(Incremental Build)'를 수행하기 위해 생성하는 캐시(Cache) 파일이다.

쉽게 말해, "지난번 컴파일 내용을 기억해두는 메모장"이다.

 

증분 빌드란?
빌드 시간을 단축하기 위한 핵심 최적화 기법.
빌드 과정에서 변경된 소스 코드와 그에 영향을 받는 의존성(Dependencies)만 골라서 다시 빌드하는 것

 


 

 

1. 생성 이유

tsconfig.json 설정에서 아래 옵션 중 하나가 켜져 있을 때 생성된다.

{
  "compilerOptions": {
    "incremental": true, 
    // 또는
    "composite": true     // 프로젝트 참조(Project References)를 사용할 때
  }
}

 

 

2. 역할

빌드 속도를 비약적으로 빠르게 해준다.

  • 없을 때: tsc 명령어를 칠 때마다 프로젝트의 모든 파일을 처음부터 다시 읽고, 파싱하고, 타입을 체크한다. (오래 걸림)
  • 있을 때: 이 파일을 읽어서 변경된 파일만 골라내어 그 부분만 다시 컴파일한다. (엄청 빠름)

이 파일 안에는 파일들의 해시(Hash) 값, 의존성 그래프, 타입 체크 결과 등의 정보가 들어있다.

 

 

3. Git

대부분의 경우 .gitignore에 추가하여 무시하는 것을 권장한다.

❌ Git에 올리지 마세요 (추천)

  • 이유 1: 로컬 개발 환경마다, OS마다 내용이 미세하게 달라질 수 있어 불필요한 충돌(Merge Conflict)이 자주 발생한다.
  • 이유 2: 컴파일된 결과물(아티팩트)이므로 소스 코드와 함께 관리될 필요가 없다. (.class나 build/ 폴더처럼)
  • 해결: .gitignore 파일에 다음 줄을 추가한다.
    *.tsbuildinfo

🔺 예외적으로 올리는 경우

  • 매우 거대한 모노레포(Monorepo) 환경에서 CI(지속적 통합) 빌드 속도를 극한으로 올려야 할 때 전략적으로 커밋하기도 하지만, 일반적인 프로젝트에서는 추천하지 않는다.

 

 

4. 파일 삭제 여부

언제든 삭제해도 상관없다.

  • 이 파일을 지우면 그 다음 빌드는 풀 빌드(Full Build)가 되어 시간이 조금 더 걸릴 뿐, 기능상 문제는 없다.
  • 빌드가 뭔가 꼬인 것 같을 때 tsconfig.tsbuildinfo를 지우고 다시 tsc를 돌리는 것이 좋은 해결책이 되기도 한다. (tsc --build --clean 명령어도 같은 역할)

 

 

요약

tsconfig.tsbuildinfo는 타입스크립트가 "나 지난번에 여기까지 작업했어!"라고 적어둔 저장 파일이다. 개발 속도를 위해 존재하며, 깃에는 올리지 않는 것이 국룰이다.

 

 

 

https://www.typescriptlang.org/tsconfig/

 

TSConfig Reference - Docs on every TSConfig option

From allowJs to useDefineForClassFields the TSConfig reference includes information about all of the active compiler flags setting up a TypeScript project.

www.typescriptlang.org

 

'Development' 카테고리의 다른 글

권한 관리, 언제까지 if-else로 땜빵할 거야? (RBAC부터 Zanzibar 찍먹까지)  (2) 2025.12.08
[Cursor] Playwright로 테스트부터 디버깅까지 한번에 끝내기  (0) 2025.11.11
[CS] "나누기 0"은 왜 어떤 언어에선 에러가 나고, 어떤 언어에선 무한대(Infinity)가 될까?  (1) 2025.11.03
[React] 배포 후 간헐적으로 개발 서버에서 화면 에러가 뜨는 이유  (0) 2025.10.14
[Web] 브라우저 “탭( Tab )”을 노리는 공격, Tabnabbing  (0) 2025.10.13
'Development' 카테고리의 다른 글
  • 권한 관리, 언제까지 if-else로 땜빵할 거야? (RBAC부터 Zanzibar 찍먹까지)
  • [Cursor] Playwright로 테스트부터 디버깅까지 한번에 끝내기
  • [CS] "나누기 0"은 왜 어떤 언어에선 에러가 나고, 어떤 언어에선 무한대(Infinity)가 될까?
  • [React] 배포 후 간헐적으로 개발 서버에서 화면 에러가 뜨는 이유
곽진돔
곽진돔
Developer
  • 곽진돔
    echo "곽박한 세상";
    곽진돔
  • 전체
    오늘
    어제
    • 분류 전체보기 (204) N
      • Development (75) N
        • Linux (13)
        • k8s (3)
        • Docker (5)
        • AWS (1)
        • PHP (35)
        • Python (21)
        • Java (1)
        • SpringBoot (4)
        • JavaScript (2)
        • React (10)
        • MySql (19)
        • MongoDB (1)
      • Daily (6)
      • Study (7)
        • TIL (2)
        • license (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 설정
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    JavaScript
    ssh
    php
    정규표현식
    Selenium
    date
    Python
    react
    IP
    CentOS7
    리액트
    UTF8
    db
    스프링부트
    Linux
    인코딩
    chromedriver
    nodejs
    윈도우
    error
    HTML
    docker
    리눅스
    크롤링
    Java
    Shell
    springboot
    CentOS
    SQL
    MySQL
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
곽진돔
tsconfig.tsbuildinfo 파일이란
상단으로

티스토리툴바