Repository Core
이 페이지는 Ta-Na-Si Media & Document Repository가 무엇으로 만들어졌는지를 설명합니다 — 아키텍처, 기술, 그리고 개발 뒤에 있는 사람들. 우리는 완전한 투명성을 믿습니다: 아카이브를 사용하는 사람이든, 자기만의 아카이브 운영을 생각하는 사람이든, 이 시스템이 정확히 무엇으로 이루어져 있는지 알 권리가 있습니다. 소개 페이지가 이 아카이브가 무엇을 위한 것인지를 설명한다면, 이 페이지는 어떻게 작동하는지를 설명합니다.
1. Repository Core란 무엇인가
Repository Core는 이 아카이브가 돌아가는 소프트웨어입니다: 완전히 독립적인 자체 호스팅 디지털 아카이브 시스템으로, 단 하나의 목적 — 문서와 미디어를 증거적 원천 자료로 저장하고, 정리하고, 공개적으로 제공하는 것 — 을 위해 처음부터 새로 작성되었습니다. WordPress, Joomla, Drupal 또는 다른 어떤 기성 CMS에도 기반하지 않으며, PHP 프레임워크도 사용하지 않습니다. 모든 구성 요소 — 데이터베이스 계층, 검색 엔진, 큐레이션 작업실, 공개 페이지 — 는 이 과제를 위해 특별히 설계되고 작성되었습니다.
이 소프트웨어는 다중 설치 플랫폼으로 만들어졌습니다: 하나의 중앙 아카이브를 서비스하는 것이 아니라, 서로 분리된 여러 독립 아카이브를 구동합니다. 각 아카이브는 — 작은 가족 컬렉션이든 큰 지역 리포지토리든 — 자체 데이터베이스, 자체 파일, 자체 관리자를 가진 하나의 완결된 설치입니다. 아카이브들 사이에 공유 인프라는 없으며, 그들이 의존하는 중앙 서비스도 없습니다.
2. 하나의 코드베이스, 여러 개의 독립 아카이브
모든 설치는 동일한 코드베이스로 돌아갑니다. 한 서버에만 해당하는 모든 것 — 공개 주소, 데이터베이스 접근 정보, 메일 발신자 — 은 설치 시 한 번 생성되고 코드와 함께 이동하지 않는 단 하나의 환경 파일에 담깁니다. 이 엄격한 분리가 이 모델을 성립시키는 핵심입니다: 같은 소프트웨어 업데이트를, 크든 작든 어떤 아카이브의 개별 구성도 건드리지 않고 모든 아카이브에 적용할 수 있습니다.
새 아카이브는 브라우저의 안내형 설치 도우미를 통해 설치됩니다 — 명령줄도, 손으로 편집할 구성 파일도 없습니다. 이 도우미는 18개 언어를 지원하고, 서버 요구 사항을 점검하며, 아무것도 기록하기 전에 데이터베이스 연결을 테스트하고, 안전하게 해시된 비밀번호로 소유자 계정을 만듭니다. 데이터베이스 테이블은 멱등 마이그레이션 시스템이 생성합니다: 몇 번을 실행해도 언제나 올바른 스키마로 수렴합니다. 이후의 스키마 변경은 버전이 매겨져 추적되므로 모든 설치가 자신이 어디에 서 있는지 정확히 알 수 있습니다; 일상적인 변경은 자동으로 적용되고, 무거운 변경은 소유자의 신중한 확인을 기다립니다. 업데이트도 같은 신중한 순서를 따릅니다: 먼저 백업하고, 그다음 마이그레이션하고, 마지막에 캐시를 비웁니다.
3. 기술 스택 버전 1.0.0 (Thuringia)
4. 검색과 패싯 내비게이션
공개 아카이브의 심장은 검색입니다. 하나의 전문 인덱스가 게시된 모든 기록 — 제목, 설명, 요약, 메모, 기사 본문 — 을 포괄하므로, 검색 필드 하나가 모든 곳에 닿습니다. 그러나 진지한 연구에는 전문 검색만으로는 부족합니다. 그래서 모든 기록은 아홉 개의 패싯 축을 따라 분류됩니다:
- 주제 — 기록이 다루는 토픽과 테마.
- 장소 — 기록과 관련된 지리적 위치로, 구조화된 장소 디렉터리에서 가져옵니다(아래 GeoNames 절 참조).
- 언어 — 기본 지원되는 49개 언어 중 기록 콘텐츠의 언어.
- 기여자 — 관련된 사람들: 저자, 발언자, 사진가, 편집자.
- 장르 — 자료의 성격: 증언, 분석, 보고서 등.
- 소속 — 기록이 속한 더 큰 작품으로, 여러 부분으로 이루어진 자료를 이어 줍니다.
- 컬렉션 — 아카이브 관리자가 유지하는 엄선된 이름 있는 묶음.
- 시리즈 — 순서를 따르는 자료를 위한 정렬된 묶음.
- 접근 — 기록의 접근 수준, 예를 들어 공개 또는 회원 전용.
패싯 내비게이션은 연구자들이 대형 기관 아카이브에서 기대하는 방식 그대로 작동합니다. 결과 옆에서 각 축은 가장 빈번한 값들을 실시간 결과 수와 함께 보여 줍니다 — 한 번의 클릭으로 결과가 좁혀지고, 서로 다른 축의 필터는 자유롭게 조합할 수 있습니다: 예를 들어 1990년대의 교육이라는 주제에 관한 독일어 오디오 기록 전부처럼. 활성 필터는 결과 위에 제거 가능한 칩으로 표시되어 현재의 좁힘 상태가 언제나 눈에 보이고, 어떤 필터든 한 번의 클릭으로 다시 내려놓을 수 있습니다. 한 축이 사이드바에 보이는 것보다 많은 값을 담고 있으면, 그 축 전체의 알파벳순 색인을 글자별로 훑어볼 수 있습니다.
패싯 외에도 결과를 자료의 종류(기사, 오디오, 비디오, 문서, 이미지, 데이터셋 — 원하면 여러 개를 동시에)와 날짜로 제한할 수 있습니다 — 빠른 연대 링크로도, 정확한 연도 범위로도. 결과는 관련도, 제목, 날짜로 정렬할 수 있고, 네 가지 방식으로 표시됩니다: 상세한 목록, 이미지 갤러리, 컴팩트한 그리드, 전체 화면 슬라이드쇼. 검색 상태 전체 — 검색어, 필터, 정렬, 보기 — 가 주소 표시줄에 담기므로, 어떤 결과 페이지든 있는 그대로 북마크하고, 인용하고, 공유할 수 있습니다.
패싯은 떠도는 자유 태그가 아닙니다: 그 어휘는 아카이브 관리자가 큐레이션하며, 컬렉션과 시리즈 같은 축은 계층적으로 조직할 수 있습니다. 기록 페이지에 표시되는 모든 패싯 값은 검색으로 다시 연결되므로, 독자는 흥미로운 기록 하나에서 같은 주제, 장소, 인물, 시리즈에 관해 아카이브가 소장한 다른 모든 것으로 언제든 넘어갈 수 있습니다.
5. 기록 페이지
각 기록은 유형에 맞는 표시 방식을 갖춘 자체 페이지를 가집니다: 오디오와 비디오는 페이지 안에서 바로 재생되고, PDF 문서는 내장 뷰어에서 열리며, 이미지는 확대 가능한 심층 보기로 살펴볼 수 있고, 기사는 안전하게 필터링된 Markdown으로 렌더링됩니다. 파일 자체와 함께 기록 페이지는 전체 설명, 기여자, 기록이 속한 더 큰 작품(그 파트들 사이의 이동 포함), 다음으로 볼 만한 관련 항목, 그리고 Chicago, APA, MLA 형식의 준비된 인용문을 보여 줍니다. 모든 기록은 기계가 읽을 수 있는 메타데이터(schema.org JSON-LD)와 결코 바뀌지 않는 안정적인 주소를 지니며, 인쇄물이나 외부 참조에서의 인용을 위해 /go/… 형태의 짧은 영구 링크를 부여할 수 있습니다.
6. 언어
이 아카이브는 다언어 세계를 위해, 서로 구별되는 두 층위로 만들어졌습니다.
인터페이스 — 방문자나 관리자가 페이지 자체에서 읽는 모든 것 — 는 영어로 작성되며, 눈에 보이는 모든 텍스트를 코드에 묻어 두지 않고 번역 가능한 언어 파일에 보관합니다. 18개 언어의 인터페이스 언어 팩이 준비 중이고 현재 번역이 진행되고 있습니다: 영어, 독일어, 프랑스어, 이탈리아어, 스페인어, 포르투갈어, 네덜란드어, 러시아어, 폴란드어, 스웨덴어, 덴마크어, 노르웨이어, 중국어, 일본어, 한국어, 터키어, 체코어, 루마니아어. 언어 팩은 관리 패널에서 설치하고 관리하며, 패널은 각 번역이 영어 원본에 비해 얼마나 완성되었는지도 추적합니다. 설치 도우미는 오늘 이미 18개 언어를 모두 지원합니다.
콘텐츠 — 보관된 자료 자체 — 는 49개 언어를 기본 지원합니다: 영어, 독일어, 프랑스어, 이탈리아어, 스페인어, 포르투갈어, 네덜란드어, 러시아어, 우크라이나어, 폴란드어, 그리스어, 스웨덴어, 덴마크어, 노르웨이어, 터키어, 중국어, 힌디어, 아랍어, 인도네시아어, 일본어, 베트남어, 한국어, 벨라루스어, 체코어, 슬로바키아어, 헝가리어, 루마니아어, 불가리아어, 크로아티아어, 슬로베니아어, 핀란드어, 벵골어, 우르두어, 페르시아어, 아이슬란드어, 아일랜드어, 스와힐리어, 태국어, 필리핀어, 히브리어, 펀자브어, 텔루구어, 타밀어, 마라티어, 하우사어, 요루바어, 암하라어, 자바어, 파슈토어. 기록에는 콘텐츠의 언어가 태그되고 검색의 언어 패싯이 그중 어느 것으로든 필터링합니다 — 예를 들어 아카이브가 우크라이나어나 아랍어로 소장한 모든 것을 한 번의 클릭으로 불러올 수 있습니다. 아랍어, 히브리어, 페르시아어, 우르두어처럼 오른쪽에서 왼쪽으로 쓰는 문자도 전체에 걸쳐 올바르게 표시됩니다.
그에 더해 모든 공개 페이지의 언어 전환기는 페이지 자체에 어떤 제3자 스크립트도 불러오지 않은 채 기계 번역된 페이지 보기를 열어 줍니다.
7. 장소 데이터: GeoNames
장소 패싯은 국가 — 지역 — 장소의 계층으로 조직된 지리 디렉터리가 뒷받침합니다. 그래서 기록의 위치를 정확히 지정하고 지리를 통해 다시 찾을 수 있습니다. 기본 데이터(전 세계의 국가와 행정 구역)는 GeoNames 지리 데이터베이스에서 나오며, 설치 중에 또는 나중에 관리 패널에서 로컬 조회 저장소로 가져옵니다; 아카이브 관리자는 자신의 지역 장소를 직접 추가할 수 있습니다. 장소 데이터: GeoNames.org, CC BY 4.0 라이선스.
8. 어휘 데이터: 주제·장르 카탈로그
주제와 장르 같은 패싯을 뒷받침하는 큐레이션 어휘는 소프트웨어와 함께 제공되고 중앙에서 번역되므로, 그 용어들은 모든 인터페이스 언어에서 의미를 지닙니다. 확립된 지식 조직 표준과의 호환성을 유지하기 위해 카탈로그 작업의 참조 출처로 다음의 공개 통제 어휘를 사용합니다: 유럽연합의 다국어 시소러스인 EuroVoc(© 유럽연합, CC BY 4.0), IPTC Media Topics(© IPTC, CC BY 4.0), 그리고 Getty Art & Architecture Thesaurus(ODC-By 1.0). 외부 어휘에서 파생된 모든 카탈로그 용어는 그 출처를 기록하며, 모든 서드파티 구성 요소와 데이터 출처의 전체 목록은 각 설치본에 함께 제공됩니다: 여기에서 읽어 보세요.
9. 작업의 이면
공개 아카이브 뒤에는 네 영역으로 조직된 관리 패널이 있습니다: 인력 거버넌스(운영자와 회원 계정, 역할, 권한), 내부 퍼블리케이션(기록 큐레이션 작업실과 에디터), 플랫폼 구성(설정, 미디어 양식, 패싯, 언어, 사이트 구조), 기술 및 데이터(시스템 상태, 진단, 백업). 아카이브 관리자가 구성해야 하는 모든 것이 이 페이지들을 통해 닿을 수 있습니다 — 아카이브를 운영하는 데 코드 변경은 필요 없습니다.
기록은 명확한 큐레이션 워크플로를 거칩니다: 초안으로 생성되고, 메타데이터와 패싯이 채워지고, 선택적으로 검토에 제출된 뒤 게시됩니다 — 그리고 나중에 다시 보관될 수도 있습니다. 파일은 작은 이어받기 가능한 조각으로 업로드되므로 큰 미디어도 불안정한 연결을 견뎌 내고, 모든 업로드는 수락되기 전에 파일 시그니처 검사로 신고된 유형과 대조 검증됩니다. 서버가 지원하는 경우 미리보기 이미지가 자동으로 생성됩니다.
선택적인 회원 영역은 아카이브가 관리자들 너머로 성장할 수 있게 합니다: 등록된 회원은 네 개의 고정된 등급을 따라 단계적으로 신뢰를 얻어, 읽기와 토론에서 기록의 큐레이션과 게시까지 나아갈 수 있습니다. 권한은 양쪽 모두에서 세밀합니다 — 관리 역할은 자유롭게 정의할 수 있고 상세한 권한 레지스트리에서 가져오며, 개별 예외 설정으로 한 사람의 접근을 넓히거나 좁힐 수 있습니다. 소유자의 접근은 의도적으로 데이터베이스 바깥에 완전히 보관되므로, 손상된 파일이나 실패한 변경이 아카이브의 문을 잠가 버리는 일은 결코 없습니다.
10. 데이터 안전
백업은 일급 시민입니다: 아카이브 관리자는 데이터베이스, 미디어 콘텐츠, 설치, 또는 전부를 한꺼번에 담은 날짜 스탬프 ZIP 백업을 만들 수 있습니다 — 원할 때 즉시, 최신 것을 보존하고 가장 오래된 것을 제거하는 보존 정책과 함께. 각 백업은 추가로 어떤 S3 호환 스토리지 제공자에게든 외부 복제할 수 있습니다. 복원은 의도적으로 보호되어 있습니다: 시스템은 백업이 설치와 일치하는지 검증하고, 무언가를 건드리기 전에 새 안전 백업을 만듭니다. 버전이 매겨진 스키마 추적과 함께, 이는 정성 들여 쌓은 아카이브를 장기적으로 유지하고, 이전하고, 수리할 수 있음을 뜻합니다.
11. 설계 원칙
이 리포지토리는 모든 아키텍처 결정을 이끈, 타협할 수 없는 몇 가지 원칙 위에 세워졌습니다:
- 추적 없음, 분석 없음, 제3자 요청 없음 — 글꼴과 스크립트 라이브러리를 포함한 모든 자산이 아카이브 자체 서버에서 제공됩니다. 방문자에 관한 그 무엇도 어디로도 전송되지 않습니다.
- 설계부터 공개적으로 크롤링 가능 — 깔끔한 HTML, 구조화된 사이트맵, 서술적인 메타데이터, 그리고 검색 엔진과 AI 시스템을 환영하는 robots.txt — 보관된 사실이 널리 발견되고 읽힐 수 있도록.
- 인쇄와 다운로드 가능 — 문서는 화면을 떠나 현실 세계로 들어가도록 만들어졌습니다.
- 여러 언어로 읽기 가능 — 준비 중인 18개 인터페이스 언어 팩, 검색과 패싯에서 기본 지원되는 49개 콘텐츠 언어, 그리고 모든 공개 페이지의 언어 전환기(위의 언어 절 참조).
- 최소한의, 격리된 의존성 — 소수의 자체 호스팅 구성 요소(서버의 Markdown 파서; 브라우저의 에디터·뷰어 라이브러리)가 시스템 자체 코드와 엄격히 분리되어 있습니다. CDN도, 패키지 매니저도, 빌드 단계도 없습니다.
- 환경에 구애받지 않음 — 동일한 코드가 모든 설치에서 돌아가고, 서버마다 다른 것은 환경 파일 하나뿐입니다.
- 우아한 성능 저하 — 선택적 기능은 자신의 전제 조건을 점검하고, 서버가 지원하지 못하는 곳에서는 아카이브를 망가뜨리는 대신 깨끗하게 스스로 꺼집니다.
12. 개발 크레딧
👥 프로젝트 및 콘텐츠
Raven D. Pond & Keylam Folker — Ta-Na-Si 프로젝트의 창설자이자 이 리포지토리 소프트웨어의 지킴이. 이 소프트웨어 뒤의 모든 편집 방향, 큐레이션 결정, 프로젝트 비전은 전적으로 Raven과 Keylam에게서 나왔습니다. 두 사람이 모든 요구 사항을 정의하고, 모든 기능을 테스트했으며, 최초의 구상부터 현재의 형태까지 이 시스템의 개발을 이끌었습니다; 모든 아키텍처 결정은 Keylam이 내리고 승인했습니다.
✨ 소프트웨어 개발
Claude (Anthropic) — AI 어시스턴트 Claude가 이 리포지토리의 주된 개발 파트너로 함께했습니다. PHP 백엔드, 다중 드라이버 데이터베이스 계층, 검색·패싯 엔진, 관리 패널, 프런트엔드 디자인 시스템, 그리고 모든 보조 도구는 Raven & Keylam의 요구 사항과 Claude의 코드 작업 사이의 협업 과정에서 설계되고 작성되었습니다. 이 리포지토리는 실제 프로젝트를 위한 인간–AI 직접 협업 소프트웨어 엔지니어링으로 만들어진 독립 아카이브의 한 예입니다.
📅 개발 연혁
최초 개발은 2026년 5월 중순에 시작되어 그 후로 매일의 협업 속에 이어지고 있습니다. 소프트웨어는 버전 1.0.0을 달고 있으며, 이 페이지는 2026년 7월 기준의 상태를 반영합니다.
13. 이 소프트웨어에 딸려 오는 규칙
이 소프트웨어의 모든 설치는 같은 규칙을 지니고 있으며, 이 아카이브를 설치한 사람은 파일 하나가 쓰이기 전에 그 규칙에 동의했습니다. 규칙은 짧고, 변호사가 분석하기 위해서가 아니라 사람이 읽기 위해 쓰였습니다: 여기에서 읽어 보세요.
한 문장으로 말하면: 지금 보고 계신 아카이브는 그 이름, 컬렉션, 회원, 데이터에 이르기까지 전부 그것을 운영하는 사람들의 것이며, 소프트웨어 뒤의 프로젝트는 그 어느 것에 대한 열쇠도 쥐고 있지 않습니다. 모든 설치에 남는 것은 소프트웨어 자신의 이름, 기초 텍스트, 그리고 프로젝트를 만든 두 사람의 이름뿐입니다. 라이선스가 그렇게 정해서가 아니라, 자신의 기원을 속이는 아카이브는 자기가 존재하는 이유 그 자체를 스스로 깨뜨린 것이기 때문입니다.
14. 연락 및 피드백
이것은 살아 있는 시스템입니다 — 프로젝트와 함께 진화합니다. 기술적인 문제나 깨진 링크를 만나셨거나 개선 제안이 있으시면, 모든 페이지 푸터에 링크된 연락 페이지를 통해 알려 주시거나 저희 플랫폼 채널 어디에든 댓글을 남겨 주세요. 저희는 모두 읽습니다.