vulcan9 / jikji.editor

jik-ji 프로젝트 관리
Other
0 stars 0 forks source link

epub 로컬 출판 시 jjbundle 삭제 요청 #287

Open onlyeye26 opened 1 year ago

onlyeye26 commented 1 year ago

직지에서 epub을 로컬로 출판시 아래와 같이 jjbundle이 함께 출판이 됩니다. 이미지 001 뷰어 설정 파일인 jjbundle은 서버에 바로 업로드 하거나 뷰어와 함께 출판되는 경우에는 필요하지만, 단일 epub을 로컬로 출판할 때는 제외하고 저장되어야 해서 수정 요청드립니다.

vulcan9 commented 1 year ago

출판하기 옵션에서 여러가지 형식으로 출판을 할수 있습니다. (업로드 출판 , epub 출판, web 출판, 바인더 출판...) 여러 출판 옵션을 선택했을지라도 epub 파일은 한번만 생성합니다. 당연히 출판 시간을 단축시키기 위해서 입니다.

출판 성능 이슈

출판 옵션에 따라 epub 파일 내용이 달라져야 한다면, 이런 경우에는 epub 파일을 재 압축하는 과정을 거쳐야 합니다. 즉, (서버 업로드용으로 출판 + 다른 출판 옵션) 두가지 옵션으로 출판을 진행하는 경우 재 압축(복사) 과정이 한번 더 필요하게 됩니다. 이것은 저용량 epub인 경우에는 문제가 되지 않지만 대용량인 경우에는 시간이 너무 많이 걸리는 문제가 발생합니다. (이전에 4G 넘는 파일이 이슈가 되어 대용량 압축이 가능하도록 수정되었습니다.)

zip 파일 포맷 구조상 기존 zip 파일에서 특정 파일을 지우는 과정에는 많은 연산이 필요합니다. 이러한 이유로 특정 파일을 삭제하는 명령어를 권장하지 않습니다. 따라서 zip 파일에서 특정 파일을 지우는 과정은 새로 zip 파일을 생성하고, 지울 필요가 없는 파일만 복사해줍니다. 새로운 zip 파일을 만들고 복사하는 과정에서, 이미 기존 zip 파일이 zlib의 알고리즘으로 압축된 상태이으로 데이터만 그대로 복사해 줍니다.

검토

단일 epub을 로컬로 출판할 때는 제외하고 저장되어야 하는 이유와 성능 상의 이슈를 견주어 봐서 판단 해야 할것 같습니다.