매니페스트 파일

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

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

패키지 매니페스트편집

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

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

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

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

애플리케이션 매니페스트의 예는 다음과 같다. 이 애플리케이션 매니페스트는 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"로 설정된 상태에서 서비스된다.[3]

캐시 매니페스트의 예는 다음과 같다:

CACHE MANIFEST 
/test.css
/test.js
/test.png

각주편집

  1. “Application Manifests”. 《Side-by-side Assemblies Reference》. 마이크로소프트. 2015년 12월 23일에 확인함. 
  2. “Assembly Manifests”. 《Side-by-side Assemblies Reference》. 마이크로소프트. 2015년 12월 23일에 확인함. 
  3. “7.7 Offline Web applications”. 《HTML Standard》. W3C. 2015년 12월 22일.