도커 텍스트 뷰어 Dock마루 개발 일지? 두번째

스크린샷 2026-01-13 16.25.40.png

드디어 뷰어의 기본적인 작업이 거의 끝나갑니다…

 

몇번째 뒤엎고 새로운 로직을 만들어서 적용한게 몇 번째인지 모르겠네요

 

## 1. 현재 상태 요약

### 핵심 기능
| 기능 | 상태 | 비고 |
|------|------|------|
| 멀티파트 책 지원 | ✅ 완료 | 대용량 파일 자동 분할 (파트당 3MB) |
| OPMD 진행도 동기화 | ✅ 완료 | 서버에 파트별 진행도 + 파트 번호 저장 |
| 스크롤/페이지/캔버스 모드 | ✅ 완료 | 바이트 오프셋 기반 동기화 |
| 1분할/2분할 레이아웃 | ✅ 완료 | 캔버스 모드에서 지원 |
| AES-256-GCM 암호화 | ✅ 완료 | HTTPS 환경, HTTP는 평문 (DMR0) |
| 로컬 캐싱 (IndexedDB) | ✅ 완료 | 오프라인 읽기 지원 |
| 반응형 모바일 UI | ✅ 완료 | v0.27.4에서 개선 |

### 현재 버전별 수정 내역 (v0.26.5 → v0.27.5)

| 버전 | 핵심 수정 |
|------|----------|
| v0.26.5 | OPMD 서버 파트별 진행도 저장/복원 |
| v0.26.6 | 언마운트 시 part_number 포함 |
| v0.26.7 | 진행률 바 클릭 시 라인 시작 정규화 (밀림 방지) |
| v0.26.8 | 파트 전환 복원도 라인 시작 정규화 |
| v0.26.9 | 라이브러리 파트 표시 + 오버레이/드로어 닫기 |
| v0.27.0 | 진행도 표시 정확도 (ref 직접 계산) |
| v0.27.1 | 404 에러 처리 + 무한 로딩 fallback (3초) |
| v0.27.2 | **DMR0 매직 바이트 수정** (DNR → DMR) |
| v0.27.3 | **멀티파트 다운로드 404 수정** (parent_id is None) |
| v0.27.4 | **OPMD 파트 동기화 (book.part_number)** + 모바일 UI |
| v0.27.5 | **라이브러리 파트 표시도 서버 우선** |

 

프로젝트 이름은 Dock마루 로 변경 됐습니다 

특정 인물이 떠오른다는 의견이 있어서 수정했네요

 

작은 파일들은 상관 없는데 10메가 20메가 같은 큰 파일은 무슨 짓을 해도

브라우저 특성상 렌더링 시간을 줄이기가 힘들어서 그냥 쪼개기로 했습니다

안쪼개고 청크 방식이나 레인지 리퀘스트나 이런저런 다른 방식들을 다 적용해봤지만

전부 진행도 복원 관련 오류나 오차가 심하게 나서 쓸 수가 없더라고요

 

그냥 메모장처럼 진행도 상관없이 파일을 열기만 하는 거라면 상관없는데

진행도 저장이 안되면 쓸모가 없겠죠…

 

image.png뭐 결국 어느정도 원하는 퍼포먼스와 함께 파트별 진행도 공유와 동기화를 만들긴 했습니다

 

OPMD도 중요하기 때문에 모바일이나 다른 피씨의 브라우저로 사용할 때도 연동이 되도록 설계를 했고

3메가가 넘는 파일은 자동 분할 되는 방식을 사용했습니다

 

3메가 이하 파일들은 그냥 사용하고요

 

암호화는 안전 문제 때문에 유지를 할 생각입니다

어차피 파일을 분할해서 래핑을 해줘야 하기 때문에 원본 파일을 그대로 사용하기는 힘들다는 생각입니다

 

현재는 업로드 등록 방식이고 추후에 파일스테이션 같은 서버 브라우저나 서버에 직접 올린 TXT파일을

폴더 별로 한번에 작업 및 라이브러리 등록하는 방법을 생각하고 있는데

로컬 앱처럼 폴더의 파일을 선택해서 볼 수 있는 방식을 원하시는 분도 계셔서 고민을 좀 해봐야겠네요

바로 보는 건 아니지만 폴더에 있는 TXT 파일을 선택해서 라이브러리에 추가하는 방식으로 가능할 거 같습니다

 

그런데 이게 혼자 사용하는 서비스가 아니고 각 사용자가 로그인해서 사용하는 방식이라

서버에 직접 접근 가능한 슈퍼 애드민 사용자만 가능한 옵션이겠네요

 

그 후에 슈퍼 애드민이나 권한 있는 사용자가 공개 게시판에 공유를 하면 다른 사용자도

본인 라이브러리에 등록을 해서 사용할 수 있는 방향으로 구현이 될 거 같습니다

 

쿼터 제한을 설정 가능하게 만들어서 사용자별 업로드 용량 제한이나 공개게시판 접근 권한과 게시 권한

라이브러리에 추가할 수 있는 책 갯수 제한등을 생각하고 있습니다

 

TXT 파일이라 용량이 커봤자 거기서거기라 용량 제한은 사실 의미가 없을 거 같고

서버에 직접 접근이 안되는 일반 사용자는 업로드 후 라이브러리 등록해서 봐야하니

라이브러리 등록 제한만 해도 충분 할 거 같네요

 

SSO 기능도 추가를 해서 로그인을 쉽게 만들 생각이고요

회원 가입 기능 유/무나 가입 승인 같은 VDtN에 있던 기능들은 전부 가져올 생각입니다

 

뷰어가 거의 완성 됐으니 아마 다른 기능들은 API가 이미 있어서 금방 끝날 거 같습니다만

뷰어 세부 설정을 어느정도 까지 만들지 고민을 좀 해봐야겠습니다

 

폰트 크기와 행간 설정에 여백설정 빈 줄 제거 정도만 지금 있는데

자간 설정이나 문단 교정이나 이런저런 기능들을 추가를 할지 그냥 간단하고 가벼운 뷰어로 갈지 고민이 좀 되네요

 

image.png

image.png

빈 줄 정리 기능은 요런 느낌입니다

 

txt마다 다 형식이 달라서 이것저것 테스트를 좀 해봐야겠네요

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다