IIIF Server 설정

Omeka S의 IIIF Server/Universal Viewer 설정은 “아이템에서 어떤 메타데이터를 가져와 IIIF manifest(설명 JSON)를 만들고, 그걸 Universal Viewer가 어떻게 불러올지”를 정하는 화면입니다.

IIIF manifest란 무엇인가?

IIIF manifest는 “하나의 디지털 객체(혹은 객체 묶음)를 설명하는 JSON 문서”입니다.
여기에는 대략 다음 정보가 들어갑니다.
이 리소스의 제목, 설명, 저작권, 제작자 등
포함된 이미지/음원/영상 파일들의 목록(어떤 순서로, 어떤 크기로 보여줄지)
실제 이미지/미디어 파일을 가져올 수 있는 IIIF 이미지 API 주소들
Universal Viewer는 직접 이미지 파일을 보는 게 아니라, 이 manifest를 먼저 읽고 그 안에 적힌 정보대로 페이지·슬라이드·타임라인을 구성합니다.
Omeka S의 IIIF Server 모듈이 “아이템 메타데이터 + 첨부 파일”을 이용해서 이 manifest를 자동 생성해 주는 역할을 합니다.
예를 들어, 10장의 사진이 들어 있는 하나의 아이템이 있으면, IIIF manifest에는 그 10장을 각 “캔버스(canvas)”로 등록하고, Universal Viewer는 이 manifest를 읽어 10페이지짜리 뷰어로 만들어 줍니다.

IIIF Server 설정 화면의 큰 구조

1.
기본 IIIF manifest 버전: IIIF Presentation API 2 또는 3 중 무엇으로 manifest를 만들지를 선택합니다.
2.
외부 manifest 속성 사용 여부dcterms:hasFormat 같은 속성에 외부에서 이미 만든 manifest URL이 들어 있는 경우, Omeka가 자체 생성 대신 그것을 사용하도록 할 수 있습니다.
3.
응답에 CORS 헤더 추가: 다른 도메인에서 이 manifest/이미지에 접근할 수 있도록 허용할지 여부입니다.
4.
manifest 안에 넣을 메타데이터 선택: 제목, 제작자, 저작권, 라이선스 등의 프로퍼티를 어떤 Omeka 속성에서 가져올지 매핑합니다.
5.
리소스 링크·썸네일 등 고급 옵션:
“Resource page”, “Resource link text” 등: 뷰어에서 “원본 페이지로 이동” 링크를 어디로 보낼지.
“Logo”, “Provider”, “Rights”, “Default viewing direction” 등: manifest 안에 기관 정보와 읽기 방향 등을 넣습니다.
6.
External image server / Image API: IIIF 이미지 API 버전과 실제 이미지를 서비스할 서버(내장 Image Server, 외부 Cantaloupe 등)를 지정합니다.
7.
Cache manifests / Store dimensions: 미리 manifest와 이미지 크기 정보를 계산해 두어 속도를 올릴지, 어떤 아이템만 캐시할지 정합니다.

CORS가 무엇인지, 왜 필요한지

CORS(Cross-Origin Resource Sharing)는 “웹 브라우저가 다른 도메인에 있는 리소스를 가져와서 사용하는 것을 허용할지 제어하는 규칙”입니다.
예:
Omeka가 archive.example.org에서 돌아가고,
IIIF 이미지 서버가 iiif.example.net에서 돌아가면,
브라우저는 기본적으로 archive.example.org 페이지에서 iiif.example.net의 이미지를 마음대로 불러오지 못합니다.
이때 IIIF/이미지 서버 응답 헤더에
Access-Control-Allow-Origin: *
또는 특정 도메인(예: Access-Control-Allow-Origin: https://archive.example.org)
를 넣어주면, Universal Viewer가 다른 도메인의 manifest/이미지에 접근할 수 있게 됩니다.
Omeka IIIF Server 설정의 “Append CORS headers to webserver response”는 이 헤더를 자동으로 붙일지를 정하는 옵션입니다.
같은 도메인 안에서 Omeka+이미지 서버를 사용한다면 큰 문제는 잘 안 생기지만,
서브도메인 분리, 프록시, 외부 IIIF 서버 등을 쓸 때는 CORS 설정이 맞지 않으면 UV에서 이미지가 “계속 로딩”만 하거나 오류가 납니다.

설정 항목을 읽는 실무적 팁

IIIF Server 설정이 너무 많아 보여도, Universal Viewer를 쓰는 데 필수적으로 손봐야 하는 부분은 몇 개뿐입니다.
“Default IIIF api version of the manifest”: 2 또는 3 중 하나만 선택 (요즘은 3 권장).
“Property supplying an external manifest”: 외부 manifest를 안 쓰면 비워둡니다.
“Append CORS headers…”: 같은 서버라면 켜도 되고 꺼도 되지만, 이후 다른 도메인에서 뷰어를 임베드할 계획이면 켜 두는 편이 편합니다.
“External image server” 섹션:
Omeka Image Server 모듈을 쓰면 “No image server” 대신 해당 옵션에 맞는 Image API 버전을 선택합니다.
나머지 메타데이터 매핑은, 실제 프로젝트에서 필요할 때(저작권, 라이선스, 제공기관 등)를 하나씩 매핑해 주면 됩니다.