매니페스트 파일
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
매니페스트 파일은 소프트웨어 배포, 애플리케이션 실행, 웹 애플리케이션 캐싱 등 다양한 목적으로 사용되는 파일이다. 패키지 매니페스트는 리눅스 배포판에서 소프트웨어 패키지를 관리하기 위해 사용되며, 파일 목록, 버전 정보, 암호화 해시 등을 포함한다. 마이크로소프트 윈도우에서 애플리케이션 매니페스트는 애플리케이션의 실행에 필요한 정보와 의존성을 정의하며, 어셈블리 매니페스트는 어셈블리 구성 요소의 식별 정보를 기술한다. HTML5 캐시 매니페스트는 웹 애플리케이션의 오프라인 실행을 지원하며, 웹 매니페스트는 프로그레시브 웹 앱(PWA)의 설치 및 검색을 용이하게 한다.
더 읽어볼만한 페이지
- 파일 확장자 - 스크래치 (프로그래밍 언어)
스크래치는 MIT 미디어 연구소에서 개발한 어린이 및 입문자를 위한 시각적 프로그래밍 언어이며, 블록 기반 방식을 통해 애니메이션, 게임, 스토리 등을 만들 수 있도록 설계되었고, 코드 공유 및 재사용을 장려하며 다양한 교육 환경에서 활용된다. - 파일 확장자 - .sys
`.sys` 파일은 도스 기반 운영 체제에서 운영 체제의 핵심 구성 요소 및 장치 드라이버로 사용되었으며, 시스템 부팅과 하드웨어 설정을 제어하는 데 중요한 역할을 수행한다. - 파일 포맷 - 바로 가기
바로 가기는 운영체제에서 파일, 폴더, 프로그램, 웹 페이지에 대한 참조를 제공하는 기능 및 파일로, 사용자들이 원본에 빠르게 접근하도록 GUI 환경의 사용성을 향상시킨다. - 파일 포맷 - EXE
EXE 파일 형식은 운영 체제에 따라 다양한 종류가 있는 실행 파일의 한 형태로, DOS MZ 실행 파일에서 PE, PE32+까지 발전해 왔으며, 코드, 데이터, 스택을 별도 관리하고 재배치 항목을 통해 실행 환경에 유연하게 대응하는 특징을 가진다.
매니페스트 파일 | |
---|---|
설명 | |
매니페스트 파일 (manifest file) | |
정의 | 그룹 내 다른 파일의 메타데이터를 포함하는 파일 |
활용 | 연락처 제공자가 사용자 정의 디렉터리를 만들고 장치와 온라인 서비스 간에 데이터를 전송하는 데 사용될 수 있음 |
예시 | Android 애플리케이션의 AndroidManifest.xml Java Archive (JAR) 파일의 META-INF/MANIFEST.MF 클라우드 배포 매니페스트 Electron 애플리케이션의 package.json Snap 패키지의 snap.yaml Docker 이미지의 Dockerfile Windows 애플리케이션의 .manifest 파일 |
2. 패키지 매니페스트
리눅스 배포판은 소프트웨어 배포를 위해 패키지 관리자에 크게 의존하며, 패키지는 매니페스트 파일을 포함하는 압축 파일 형태이다. 매니페스트 파일은 주로 배포판에 포함된 파일 목록을 나열하고, 다양한 패키징 도구에서 처리하거나 사람이 직접 확인하는 데 사용된다.
매니페스트는 JAR (자바로 작성된 소프트웨어 배포에 사용)처럼 버전 번호, 실행을 위한 엔트리 포인트 같은 추가 정보를 포함할 수 있다. 또한, 각 파일의 암호화 해시나 체크섬을 선택적으로 포함하여, 암호화 서명을 통해 배포 패키지 내용의 진위와 무결성을 확인하고 파일 변경 여부를 알 수 있도록 한다.[1]
2. 1. 패키지 매니페스트의 역할
리눅스 배포판은 소프트웨어 배포를 위해 패키지 관리 시스템에 크게 의존한다. 이 방식에서 패키지는 매니페스트 파일을 포함하는 압축 파일이다. 매니페스트 파일의 주요 목적은 배포에 포함된 파일을 열거하여 다양한 패키징 도구에서 처리하거나 사람이 읽을 수 있도록 하는 것이다. 매니페스트는 추가 정보를 포함할 수 있는데, 예를 들어 JAR (자바 프로그래밍 언어로 작성된 소프트웨어 제공을 위한 패키지 형식)에서는 버전 번호와 실행을 위한 진입점을 지정할 수 있다. 매니페스트는 선택적으로 각 파일의 암호화 해시 또는 체크섬을 포함할 수 있다. 이러한 매니페스트 파일에 대한 암호화 서명을 생성함으로써 배포 패키지의 전체 내용에 대한 진위 여부와 무결성을 검증할 수 있으며, 파일 중 하나라도 변경하면 매니페스트 파일의 체크섬이 무효화된다.[1]2. 2. 패키지 매니페스트의 활용
리눅스 배포판은 소프트웨어 배포를 위해 패키지 관리 시스템에 크게 의존한다. 이 방식에서 패키지는 매니페스트 파일을 포함하는 압축 파일이다. 주요 목적은 배포에 포함된 파일을 열거하여 다양한 패키징 도구에서 처리하거나 사람이 읽을 수 있도록 하는 것이다. 매니페스트는 추가 정보를 포함할 수 있다. 예를 들어, JAR (자바로 작성된 소프트웨어 제공을 위한 패키지 형식)에서는 버전 번호와 실행을 위한 진입점을 지정할 수 있다. 매니페스트는 선택적으로 각 파일의 암호화 해시 또는 체크섬을 포함할 수 있다. 이러한 매니페스트 파일에 대한 암호화 서명을 생성함으로써 배포 패키지의 전체 내용에 대한 진위 여부와 무결성을 검증할 수 있으며, 파일 중 하나라도 변경하면 매니페스트 파일의 체크섬이 무효화된다.[1]3. 애플리케이션 및 어셈블리 매니페스트
마이크로소프트 윈도우에서 윈도우 사이드 바이 사이드(WinSxS)에 의존하는 소프트웨어는 애플리케이션 매니페스트와 어셈블리 매니페스트가 필요하다. 애플리케이션 매니페스트는 실행 파일에 포함되거나 별도의 XML 파일 형태로 제공되며, 이름, 버전, 신뢰 정보, 실행 권한, 의존성 등의 정보를 담고 있다.[6] 어셈블리 매니페스트는 어셈블리 구성 요소의 식별 정보를 기술하며, 애플리케이션 매니페스트에서 참조된다.[7]
3. 1. 애플리케이션 매니페스트
마이크로소프트 윈도우에서, 윈도우 사이드 바이 사이드(WinSxS)에 의존하는 소프트웨어는 애플리케이션 매니페스트가 필요하며, 이 매니페스트는 실행 파일에 포함되거나 이와 함께 제공되는 별도의 XML 파일에 들어 있는 XML 문서이다. 애플리케이션 매니페스트에는 이름, 버전, 신뢰 정보, 실행에 필요한 권한, 다른 구성 요소의 의존성이 포함되어 있다.[6]어셈블리 매니페스트는 애플리케이션 매니페스트와 매우 유사하지만 어셈블리로 알려진 구성 요소의 식별 정보를 기술하고 있다. 이 어셈블리들은 애플리케이션 매니페스트에서 참조된다.[7]
다음은 애플리케이션 매니페스트의 예시이다. 이 애플리케이션 매니페스트는 보안(security)과 의존성(dependency)의 두 가지 핵심 부분으로 구성되어 있다. 보안 부분은 애플리케이션이 "asInvoker" 보안 수준을 요구함을 의미한다. 즉, 실행 시 어떠한 보안 수준에서도 동작이 가능하다. 의존성 부분은 응용 프로그램이 버전 번호 "9.0.21022.8"의 "Microsoft.VC90.CRT"라는 구성 요소가 필요함을 나타낸다.
```xml
3. 2. 어셈블리 매니페스트
어셈블리 매니페스트는 애플리케이션 매니페스트와 매우 유사하지만 어셈블리로 알려진 구성 요소의 식별 정보를 기술하고 있다. 이 어셈블리들은 애플리케이션 매니페스트에서 참조된다.[7]4. HTML5 캐시 매니페스트
HTML5 캐시 매니페스트는 웹 애플리케이션이 오프라인에서도 작동하도록 돕는 캐싱 메커니즘을 제공한다. 이 파일은 네트워크 연결이 없을 때 웹 애플리케이션 실행을 위한 플레인 텍스트 파일이며, "text/cache-manifest" 콘텐츠 타입으로 서비스된다.[8]
4. 1. HTML5 캐시 매니페스트의 구조
HTML5 캐시 매니페스트는 네트워크 연결이 없을 때 실행을 도와주는 웹 애플리케이션과 함께 제공되는 텍스트 파일이다. 캐싱 메커니즘은 이 파일을 읽고 로컬에서 콘텐츠를 사용할 수 있도록 보장한다. HTML5 캐시 매니페스트는 콘텐츠 타입이 "text/cache-manifest"로 설정된 상태에서 서비스된다.[8]캐시 매니페스트의 예는 다음과 같다.
CACHE MANIFEST
/test.css
/test.js
/test.png
4. 2. HTML5 캐시 매니페스트의 활용
HTML5 캐시 매니페스트는 네트워크 연결이 없을 때 실행을 도와주는 웹 애플리케이션을 수반하는 플레인 텍스트 파일이다. 캐싱 메커니즘은 이 파일을 읽고 로컬에서 콘텐츠를 사용할 수 있도록 보장한다. HTML5 캐시 매니페스트는 콘텐츠 타입이 "text/cache-manifest"로 설정된 상태에서 서비스된다.[8]캐시 매니페스트의 예는 다음과 같다:
CACHE MANIFEST
/test.css
/test.js
/test.png
5. 웹 매니페스트 (Webmanifest)
웹 매니페스트는 프로그레시브 웹 앱(PWA) 설치 및 사용자 경험 향상을 위한 정보를 담고 있는 JSON 파일이다.
5. 1. 웹 매니페스트의 역할
웹 매니페스트는 JSON 파일로, 프로그레시브 웹 앱에서 URL을 통해 쉽게 공유하고, 검색 엔진에서 검색 가능하게 하며, 복잡한 설치 절차를 완화하는 데 사용된다.[5] 또한, PWA는 홈 화면에 추가, 스플래시 화면 표시 등 네이티브 앱 스타일의 상호 작용과 탐색을 지원한다.[5]참조
[1]
웹사이트
Researchers discover HiddenAds malware in a dozen Android apps that were distributed on the Google Play Store
https://www.ghacks.n[...]
G Hacks
2015-08-01
[2]
웹사이트
Application Manifests
https://msdn.microso[...]
Microsoft
2015-12-23
[3]
웹사이트
Assembly Manifests
https://msdn.microso[...]
Microsoft
2015-12-23
[4]
웹사이트
7.7 Offline Web applications
https://html.spec.wh[...]
W3C
2015-12-22
[5]
웹사이트
"Web App Manifest", Working Draft
https://www.w3.org/T[...]
W3C
2016-09-12
[6]
웹인용
Application Manifests
https://msdn.microso[...]
마이크로소프트
2015-12-23
[7]
웹인용
Assembly Manifests
https://msdn.microso[...]
마이크로소프트
2015-12-23
[8]
웹인용
7.7 Offline Web applications
https://html.spec.wh[...]
W3C
2015-12-22
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com