FITS 외부 파일 캡슐화 규약

FITS 외부 파일 캡슐화 규약

초록

이 논문은 NOAO IRAF 그룹이 개발한 FITS ‘FOREIGN’ 확장 규약을 소개한다. PNG와 같은 임의의 파일이나 파일 트리를 FITS 파일 안에 삽입하고, 필요 시 원본 형태로 복원할 수 있게 한다. 구현은 IRAF fitsutil 패키지의 fgread/fgwrite 명령을 통해 제공된다.

상세 분석

‘FOREIGN’ 확장은 기존 FITS 표준에 새로운 HDU 타입을 추가함으로써, 이미지·표 데이터 외에 완전한 파일 시스템 객체를 보존할 수 있는 메커니즘을 제공한다. 핵심 메타데이터는 EXTNAME=‘FOREIGN’, XTENSION=‘FOREIGN’ 헤더와 함께, 파일명, 파일 크기, 파일 타입, 압축 여부, 타임스탬프, 권한 비트 등을 기술하는 키워드(예: FILENAME, FILESIZE, FILETYPE, COMPRESS, MODTIME, MODE)로 구성된다. 이러한 키워드는 파일 복원 시 원본 파일 시스템 구조를 정확히 재현하도록 설계되었으며, 특히 트리 구조를 지원하기 위해 디렉터리 구분자를 포함한 상대 경로를 허용한다.

압축 옵션은 gzip 기반으로 구현되어, 대용량 바이너리 파일을 효율적으로 저장하면서도 FITS 헤더에 압축 전후의 체크섬을 기록한다. 체크섬은 FITS 표준의 CHECKSUM, DATASUM 키워드를 재활용하거나, 필요 시 별도 FOREIGN_CHECKSUM을 정의해 무결성을 검증한다. 또한, 파일 복원 과정에서 fgread는 헤더에 명시된 압축 방식과 권한 비트를 해석해, 원본 파일이 갖고 있던 실행 권한·읽기·쓰기 모드를 그대로 재현한다.

이 규약은 기존 FITS 파이프라인에 최소한의 침투적 변경만으로 통합될 수 있다. FITS 파일은 여전히 기존 이미지·표 확장과 호환되며, ‘FOREIGN’ HDU는 무시하거나 그대로 전달될 수 있다. 따라서 데이터 아카이브, 파이프라인 중간 결과 저장, 혹은 시뮬레이션 출력물과 같은 비정형 데이터와 메타데이터를 함께 보관하는 데 유용하다. 특히 NOAO 고성능 파이프라인에서 PNG 미리보기 이미지를 FITS에 포함시킨 사례는, 시각적 검증을 위한 메타데이터와 과학 데이터가 동일 파일에 존재함으로써 관리 복잡성을 크게 낮춘 좋은 예시다.

보안 측면에서는 외부 파일이 실행 파일일 경우, 복원 시 실행 권한을 그대로 부여하지 않도록 옵션을 제공한다. 또한, 파일 이름에 포함될 수 있는 특수 문자나 경로 탐색 문자(‘..’)를 필터링해, 악의적인 경로 조작을 방지한다. 이러한 방어 메커니즘은 FITS 파일을 공유하거나 장기 보관할 때 중요한 안전 장치가 된다.

전반적으로 ‘FOREIGN’ 확장은 FITS 포맷의 확장성을 입증하며, 과학 데이터와 부수적인 파일을 하나의 컨테이너에 묶어 관리·전송·보관 효율을 극대화한다는 점에서 의미가 크다.