저의 프로젝트는 도덕경(Tao Te Ching) 문화에 초점을 맞춘 커뮤니티를 구축하는 것입니다. 저는 온라인으로 전시해야 할 고서 5,000권이 있으며, 이 모든 것을 AVIF 이미지 형식으로 압축했습니다. 이 중 일부 책에는 2,500장의 AVIF 이미지가 포함되기도 합니다.
질문은 다음과 같습니다: 사용자가 온라인으로 책을 읽을 수 있도록 이 이미지들을 단일 디스코스(Discourse) 게시물에 어떻게 삽입할 수 있을까요?
저는 게시물 내에서 사용자에게 다음 기능을 제공할 수 있는 솔루션, 예를 들어 플러그인을 찾고 있습니다:
이미지 사이를 쉽게 오갈 수 있는 기능 (페이지 넘기기와 유사하게).
특정 이미지 번호로 바로 이동할 수 있는 기능.
가장 중요한 것은 이미지가 지연 로드(lazy-loaded)되어야 한다는 점입니다. 사용자가 해당 이미지로 이동할 때만 로드되어야 하며, 게시물이 열릴 때 한꺼번에 로드되어서는 안 됩니다.
제 파일은 모두 숫자 순서로 정렬되어 있으며 AVIF 형식입니다. 각 책은 개별 폴더에 포함되어 있습니다. 이미지의 평균 크기는 150kb이며, 책의 페이지 수는 보통 300페이지에서 1,000페이지 사이이지만, 2,500페이지에 달하는 예외적인 경우도 있습니다.
왜 이런 요구사항이 있을까요?
제 책 컬렉션은 방대하여 현재 350GB를 초과하고 있습니다. 저장소를 관리하기 위해 AVIF로 압축하는 것이 필수적이었습니다.
AVIF와 WebP와 같은 형식은 단일 PDF 파일로 쉽게 패키징할 수 없습니다.
책을 ZIP 또는 RAR 아카이브로 패키징하면 온라인에서 읽을 수 없습니다. CBZ와 같은 전자책 형식을 사용하면 서버에 과부하가 걸리게 됩니다.
앞서 언급했듯이, Discourse는 적어도 라이브러리 호스팅 측면에서는 도움이 되지 않을 수 있습니다. 대신, Discourse 인스턴스와 함께 별도의 이미지 호스팅 서비스를 사용하는 것을 고려해 보시기 바랍니다.
아래에는 원하시는 기능이 많이 포함된 셀프호스팅 사진 갤러리 서비스 목록입니다: 웹 앱 즉시 사용 가능, 사용자 및 모바일 친화적인 인터페이스, 디렉터리 기반 앨범, 검색 기능 등.
이미지 호스팅 서비스를 별도로 실행하고, 그 URL을 Discourse에서 임베디드 iframe으로 사용할 수 있습니다. 이렇게 하면 Discourse DB가 모든 이미지를 다운로드할 필요가 없으며, 이미지 호스팅 서비스가 지연 로딩(lazy loading)을 처리하게 됩니다. 이후에는 라이브러리를 위한 독립 페이지를 위한 테마 컴포넌트나 플러그인, 사용자 게시글에서 참조를 자동 링크하는 것 등을 고려해 볼 수 있습니다.
이 문제는 호스팅이 아니라 읽기 용이성, 즉 사용성 문제라고 생각합니다. 서양 스타일에 익숙한 사용자들에게는 이 질문이 만화(코믹스)를 보여주는 것과 매우 유사합니다. 이를 위해 적합한 플랫폼을 찾을 수도 있지만, 워드프레스(WP)에서도 해결책을 제공할 수 있다고 확신합니다.
그리고 콘텐츠와 커뮤니티/토론을 디스코urs(Discourse)로 연결하는 것은 완전히 자명한 일입니다.
하지만 디스코urs 생태계에서는 디스페이지(Discpage)가 제공했던 것과 같은 대안을 찾을 수 있습니다. 다만 현재는 작동하지 않는 상태입니다.
모두의 도움에 진심으로 감사드립니다!
해결책을 찾았습니다. 제 서버에 Zfile 서비스를 배포하여 개인 클라우드 드라이브로 사용하도록 구성했고, 익명 사용자 접근을 허용하도록 설정했습니다.
페이지당 표시할 파일 수를 조절하고, 매번 수동으로 로드할 파일 수를 커스터마이징할 수 있습니다. 익명 방문자의 권한은 '미리보기 전용’으로 설정되어 있습니다.
이 방법으로 몇 가지 핵심 문제를 해결할 수 있었습니다:
복잡한 파일 관리: 클라우드 드라이브 인터페이스를 통해 수십만 장의 이미지를 관리하는 것이 훨씬 편리합니다.
온디맨드 미리보기: 기본적으로 드라이브는 파일 목록만 표시하며, 파일을 클릭할 때만 미리보기가 생성됩니다. 이는 PhotoSwipe와 매우 유사한 작동 방식입니다. (Zfile에는 한 번에 모든 이미지를 미리보기로 표시하는 모드가 있지만, 나중에 이를 비활성화할 수 있을 것으로 생각합니다.)
Discourse 연동: 이제 Discourse 게시물에 ‘온라인에서 읽기’ 링크를 추가할 수 있으며, 클릭하면 클라우드 드라이브 인터페이스가 열립니다. 결과는 다음과 같습니다: https://openttc.com/t/topic/8
자원 효율성: 이 접근 방식은 전통적인 갤러리나 이미지 호스팅 애플리케이션에서 흔히 발생하는 불필요한 자원 소모를 방지합니다. 책을 읽는 가장 좋은 방법은 한 번에 한 페이지씩 로드하는 것이며, 여러 장의 이미지를 한 번에 기대하는 사진 앨범과는 다릅니다. 여러 장의 책 페이지를 동시에 로드하면 모든 페이지가 매우 유사해 보이므로 시각적으로 혼란스럽습니다.
저는 Discourse를 웹사이트 메인 페이지로 사용하며, 31개 카테고리에 걸쳐 약 5,000권의 책을 관리하고 있습니다. 각 게시물은 하나의 책을 나타내며, Zfile 드라이브는 각 책의 개별 콘텐츠 페이지를 관리합니다. 이는 제가 지금까지 발견한 최고의 사용자 경험이며, 데스크톱, 모바일 폰, 태블릿 모두에서 비교적 편리합니다. 비슷한 필요를 가진 다른 분들에게도 도움이 되기를 바랍니다.
몇 가지 참고 사항:
Zfile은 유일한 선택지가 아닙니다. 인터페이스가 주로 중국어를 지원하는 것 같지만, 저에게는 이점이었습니다. 더 나은 추천이 있으시면 알려주세요.
만약 3D 페이지 넘기기 플러그인(WordPress에서 사용 가능한 것과 같은 실제 책 넘기기 경험을 시뮬레이션하는 것)이 향후 Discourse에서 사용 가능하게 되면, 그 사실도 알려주세요.
다시 한번 감사드립니다!
개인적으로는 사진 앨범을 디지털화하여 PDF 파일로 저장한 뒤, Discourse의 토픽에 업로드했습니다. 그런 다음 인라인 PDF 미리보기 테마 컴포넌트를 통해 멤버들이 Discourse에서 직접 넘겨 볼 수 있게 했습니다. 이 방식의 장점은 책(파일)이 온전히 유지된다는 점입니다.
정말 감사합니다! 선생님.
최근 저는 개발 작업에 몰두하고 있으며 여러 서버를 오가며 작업하고 있습니다. 그래서 이 게시글에서 언급된 openttc.com 링크가 불안정할 수 있습니다.
현재 작업을 마치는 대로 이 스레드에 업데이트된 링크를 게시하여 우리 논의의 결과를 보여드릴 계획입니다. (Zfile을 Discourse 게시글에 임베딩하는 것으로, 미래의 누군가에게 유용할 수 있을 것입니다.)
사실, 많은 고민 끝에 이전의 접근 방식을 일시적으로 중단했습니다.
그 이유는 관리가 너무 번거롭기 때문입니다. 나중에 새 콘텐츠를 추가하게 되면 Discourse와 Zfile 시스템 양쪽에서 별도로 관리하고 수동으로 동기화해야 합니다.
현재는 PDF로 콘텐츠를 게시글에 직접 임베딩하는 방식을 시도하고 있습니다. 일부 개별 PDF의 크기가 2GB를 초과하기도 해서, 아직 천천히 해결해야 할 문제들이 한두 개가 아닙니다…
모두의 관심에 감사드립니다. 이 커뮤니티는 정말 따뜻하고 좋습니다!
건강하시고 가족분들 모두 행복하시길 바랍니다!