증분 컴파일 (Increamental Compilation)

작동 방식

  1. 파일 상태를 저장한다.
    • 컴파일러는 이전 컴파일 상태를 디스크에 저장한다.
    • .tsbuildinfo에 저장된다.
    • 이 파일에는 컴파일된 파일들, 각 파일의 의존성, 파일 해시 등 변경된 부분을 감지하기 위해 필요한 정보가 저장된다.
  2. 변경을 감지한다.
    • 다음 컴파일 시, 컴파일러는 이 정보를 사용하여 어떤 파일이 변경되었는지, 그리고 어떤 파일을 다시 컴파일해야하는지를 결정한다.
    • 변경되지 않은 파일들은 다시 컴파일하지 않으므로 시간이 절약된다.

단점

  1. 추가 저장 공간이 필요함, 즉 메모리 효율성이 떨어짐
  2. 빌드 정보 파일 관리
    • tsbuildinfo 파일이 손상되거나 삭제되면 컴파일러는 증분 정보를 잃어버리고 전체 컴파일이 필요함
    • 이걸 버전관리에 포함시킬것인지 결정 필요 (보통은 포함하지 않음)
  3. 호환성 문제
    • 일부 빌드 도구 혹은 플러그인과 호환성 문제가 있을 수 있다.
    • 복잡한 빌드 파이프라인에서는 어려움이 따름
  4. 의존성 문제
    • 증분 컴파일은 파일 간의 의존성 관계를 추적한다.
    • 만약 의존성 관리가 제대로 되지 않으면, 예상치 못한 컴파일 문제가 발생 할 수 있다.
    • 잘못된 의존성 추적으로인해 변경사항이 제대로 반영되지 않을 수 있다.