만든 이유
PDF 몇 개를 하나로 합치거나 사진 용량을 줄이는 일은 생각보다 자주 생깁니다. 그때마다 프로그램을 새로 설치하기는 번거롭고, 처음 보는 변환 사이트에 계약서나 신분증 사본을 올리는 것도 마음이 편하지 않습니다. ToolDoc은 이런 작은 작업을 설치와 회원가입 없이, 파일을 서버로 보내지 않고 브라우저 안에서 끝낼 수 있도록 만든 도구 모음입니다.
무엇을 할 수 있나
도구는 분야별로 나뉘어 있고, 홈 화면과 검색창에서 이름으로 바로 찾을 수 있습니다. 분야마다 대표적인 도구를 꼽으면 다음과 같습니다.
- ·PDF: 합치기, 나누기, 회전, 압축, 잠금 해제와 암호 걸기, 페이지 번호·워터마크·서명 넣기, 스캔한 PDF의 글자 인식(OCR), 휴대폰으로 찍은 문서를 PDF로 펴 주는 문서 스캔, 두 PDF의 달라진 부분 찾기
- ·이미지: 압축, 크기 변경, 자르기, JPG·PNG·WebP·AVIF·HEIC 형식 변환, EXIF 정보 보기와 지우기, 배경 제거, 여권·반명함 증명사진 규격 맞추기, 얼굴 자동 모자이크, 신분증 마스킹, 사진 화질 개선
- ·동영상·음성: 동영상 용량 줄이기와 자르기, GIF 변환, MP3 추출, 오디오 형식 변환과 아이폰 벨소리(M4R) 만들기, 녹음 파일을 글로 옮기는 음성 텍스트 변환
- ·문서: 엑셀과 CSV 변환, 엑셀 파일 합치기와 시트 나누기, JSON·YAML·TOML·XML 변환과 정리, HWP 파일 보기·텍스트 추출·PDF 변환·HWPX 변환·찾아 바꾸기·개인정보 가리기, EML 메일과 EPUB 전자책 보기
- ·텍스트·개발자: 글자수 세기, 줄바꿈과 중복 줄 제거, Base64·URL 인코딩, 두 글의 차이 비교, JSON 정리, JWT 해독, 해시·UUID·비밀번호 생성, 정규식 테스트, SQL 정렬
- ·QR·계산기·기타: QR 코드 만들기와 읽기, 인쇄용 와이파이 QR 안내문, 바코드 생성, 연봉 실수령액·퇴직금·연차·주휴수당·실업급여·부가세 계산기, 만 나이와 D-day 계산, ZIP 만들기, 색상 변환과 팔레트
이와 별도로 문서양식 메뉴가 있습니다. 이력서, 사직서, 근로계약서, 차용증, 위임장, 임대차계약서, 내용증명처럼 자주 찾는 서식을 양식에 따라 Word(docx)나 PDF, 엑셀 파일로 내려받을 수 있고, 이력서·사직서·차용증 같은 일부 양식은 화면에서 내용을 채운 뒤 바로 문서로 받을 수 있습니다. 양식 문구는 직접 작성했고, 양식마다 작성 방법과 꼭 들어가야 할 항목, 주의할 점을 정리한 안내가 붙어 있습니다.
이렇게 쓰면 좋습니다
아이폰으로 찍은 HEIC 사진을 JPG로 바꿔 제출해야 할 때, 스캔한 서류 여러 장을 PDF 하나로 묶을 때, 메일 첨부 용량에 맞춰 사진을 줄일 때, 자기소개서 글자수를 확인할 때처럼 잠깐이면 끝나는 일에 맞춰 두었습니다. Ctrl+K(맥에서는 ⌘K)로 검색창을 열어 도구 이름을 입력하면 바로 이동하고, 자주 쓰는 도구는 즐겨찾기에 넣어 둘 수 있습니다.
도구 페이지마다 사용 방법 세 단계와 자주 묻는 질문, 잘 안 될 때 확인할 점을 적어 두었습니다. 처음 쓰는 도구라면 화면 아래 설명을 한 번 읽어 보면 도움이 됩니다. 앱처럼 홈 화면에 설치(PWA)할 수 있고, 설치해 두면 오프라인에서도 동작하도록 만들었습니다.
데이터와 개인정보
모든 도구는 브라우저 안에서 동작합니다. 불러온 파일과 입력한 내용은 Canvas, Web Worker, WebAssembly로 그 자리에서 처리되며, 처리를 위해 서버로 업로드되지 않습니다. 탭을 닫으면 처리하던 데이터도 함께 사라집니다.
다만 무거운 처리를 하는 일부 도구는 처음 쓸 때 엔진이나 모델 파일을 내려받습니다. 동영상 변환 엔진, 글자 인식(OCR) 엔진, 배경 제거와 얼굴 감지 모델, 화질 개선 모델이 여기에 해당합니다. 대부분은 ToolDoc이 직접 올려 둔 파일을 받지만, 음성 텍스트 변환에 쓰는 Whisper 모델은 Hugging Face 저장소에서, OCR의 언어 데이터는 공개 CDN에서 받아 옵니다. 이때도 파일을 받아 오기만 할 뿐, 사용자의 파일이나 녹음 내용은 전송되지 않습니다. 엔진 용량이 큰 도구는 처음 한 번 내려받는 시간이 걸릴 수 있습니다.
회원가입이 없으므로 이름이나 이메일을 받지 않습니다. 즐겨찾기와 최근 사용한 도구 목록은 브라우저 저장공간에만 남습니다. 방문 통계와 광고는 제3자 서비스가 처리하며, 자세한 내용은 사이트의 개인정보처리방침에 적어 두었습니다.
알아 둘 점
- ·처리 속도와 다룰 수 있는 파일 크기는 쓰는 기기의 성능에 따라 달라집니다. 사진 화질 개선처럼 계산이 많은 도구는 결과가 너무 커지면 실행 전에 안내하고, 다른 탭으로 옮겨 가면 브라우저가 처리를 멈출 수 있습니다.
- ·증명사진 도구의 여권 규격에서는 배경 바꾸기를 막아 두었습니다. 외교부 규정상 배경을 지우거나 합성한 사진은 여권 사진으로 낼 수 없기 때문입니다.
- ·DRM이 걸린 EPUB 전자책은 열지 않습니다.
- ·계산기 결과는 입력값과 그해 요율을 바탕으로 한 추정치입니다. 실제 급여나 퇴직금은 회사 규정과 개인 사정에 따라 달라질 수 있습니다.
- ·문서양식은 작성을 돕는 참고 자료이며 법적 효력을 보장하지 않습니다. 중요한 계약은 전문가의 확인을 받는 것이 좋습니다.
만들면서
설계할 때 세 가지 원칙을 먼저 정했습니다. 파일 처리는 모두 브라우저에서 하고, 도구는 데이터와 화면 컴포넌트의 묶음으로 다루며, 무거운 라이브러리는 그 도구에 들어왔을 때만 불러온다는 것입니다. 모든 도구는 한 곳의 목록(레지스트리)에 등록하고, 카테고리 페이지와 검색, 사이트맵, 관련 도구 추천이 이 목록에서 자동으로 만들어지게 했습니다. 도구를 하나 더할 때 여러 파일을 고치다 빠뜨리는 일을 줄이려는 구조입니다.
서버에서 할 일이 없으니 사이트 전체를 정적 페이지로 만들어 Cloudflare Workers에 올렸습니다. 동영상 변환(ffmpeg), 글자 인식(Tesseract), 음성 인식(Whisper), 문서 스캔과 얼굴 감지(OpenCV) 같은 엔진은 WebAssembly로 돌리고, 계산은 Web Worker로 넘겨 화면이 멈추지 않게 했습니다. 받는 양과 진행률은 화면에 그대로 보여 줍니다.
몇 가지는 직접 부딪히며 정했습니다. 여러 스레드를 쓰는 엔진 빌드는 특정 보안 헤더가 필요한데, 이 헤더가 광고 스크립트와 충돌해 단일 스레드 빌드만 쓰기로 했습니다. 비스듬히 찍은 문서 사진은 변 길이만 재면 세로 문서가 가로로 펴지는 문제가 있어, 네 모서리로 원근을 함께 계산해 종이의 실제 비율을 되찾도록 했습니다. 문서양식 PDF는 한글 글꼴에서 쓴 글자만 골라 넣는데, 기본 도구가 한글 글자를 빠뜨려 다른 방식으로 바꿨습니다.
도구마다 실제 파일을 넣고 결과를 다시 열어 확인하는 자동 테스트를 두고 있습니다. 쓰는 사람에게는 파일을 넣고 결과를 받는 과정만 보이도록, 나머지는 안쪽에서 해결하려고 합니다.
