매니페스트 파일

매니페스트 파일()은 컴퓨팅에서 집합의 일부 또는 논리정연한 단위인 파일들의 그룹을 위한 메타데이터를 포함하는 파일이다. 예를 들어, 컴퓨터 프로그램의 파일들은 이름, 버전 번호, 라이선스, 프로그램의 구성 파일들을 가질 수 있다.

이 용어는 화물 목록(ship manifest)이 선원 및 화물을 나열하는 화물 수송 절차로부터 가져온 것이다.

패키지 매니페스트 
리눅스 배포판은 소프트웨어 배포를 위해 패키지 관리자에 크게 의존한다. 이 스킴에서 패키지는 매니페스트 파일을 포함하는 압축 파일이다. 주 목적은 배포판에 포함된 파일들을 열거하는 것으로, 다양한 패키징 도구들에 의해 처리되거나 인간의 소비를 위해 사용된다. 매니페스트들은 추가적인 정보를 담고 있는 경우가 있는데, 이를테면 JAR(자바로 작성된 소프트웨어 배포 시 사용하는 패키지 포맷)의 경우 버전 번호, 그리고 실행을 위한 엔트리 포인트를 지정할 수 있다. 매니페스트는 개별 파일의 암호화 해시나 체크섬을 선택적으로 포함할 수 있다. 매니페스트 파일을 위한 암호화 서명을 만듦으로써 배포판 패키지의 모든 내용이 진실하고 무결한지를 확인할 수 있으며 파일 중 어떤 것이라도 변경하면 매니페스트 파일의 체크섬의 유효성에 부합하지 않게 된다.

애플리케이션 및 어셈블리 매니페스트 

마이크로소프트 윈도우에서, 윈도우 사이드 바이 사이드(WinSxS)에 의존하는 소프트웨어는 애플리케이션 매니페스트가 필요하며, 이 매니페스트는 실행 파일에 임베디드되거나 이와 수반되는 별도의 XML 파일에 포함되어 있는 XML 문서이다. 이름, 버전, 신뢰 정보, 실행에 필요한 권한, 다른 구성요소의 의존성이 내재되어 있다.

어셈블리 매니페스트는 애플리케이션 매니페스트와 매우 유사하지만 어셈블리로 알려진 구성 요소의 식별 정보를 기술하고 있다. 이 어셈블리들은 애플리케이션 매니페스트에서 참조된다.

애플리케이션 매니페스트의 예는 다음과 같다. 이 애플리케이션 매니페스트는 2개의 핵심 부분이 있다: 보안(security), 의존성(dependency). 보안 부분은 애플리케이션이 "asInvoker" 보안 수준을 요구함을 의미한다. 즉, 실행 시 어떠한 보안 수준에서도 동작이 가능하다. 의존성 부분은 응용 프로그램이 버전 번호 "9.0.21022.8"의 "Microsoft.VC90.CRT"라는 구성 요소가 필요함을 이야기한다.
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <!--I am okay with whatever security privilege level-->
        <requestedExecutionLevel level='asInvoker' uiAccess='false' />
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentAssembly>
      <!--I need Microsoft Visual C++ 2008 Runtime to run-->
      <assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
  </dependency>
</assembly>

HTML5 캐시 매니페스트

HTML5의 캐시 매니페스트는 네트워크 연결이 없을 때 실행을 도와주는 웹 애플리케이션을 수반하는 플레인 텍스트이다. 캐싱 매커니즘은 이 파일을 읽고 로컬에서 콘텐츠를 사용할 수 있도록 보장한다. HTML5 캐시 매니페스트는 콘텐츠 타입이 "text/cache-manifest"로 설정된 상태에서 서비스된다.

캐시 매니페스트의 예는 다음과 같다:
CACHE MANIFEST 
/test.css
/test.js
/test.png

각주 

파일 포맷
파일 확장자