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 버전을 선택합니다.
•
나머지 메타데이터 매핑은, 실제 프로젝트에서 필요할 때(저작권, 라이선스, 제공기관 등)를 하나씩 매핑해 주면 됩니다.
