다크모드에서 PDF 열면 눈이 아프거나, 이미지가 망가지거나
밤늦게 코딩하다가 레퍼런스 PDF를 열어본 적 있으시죠? 하얀 배경이 눈을 때리는 그 느낌, 다크모드를 쓰는 분들이라면 다 공감하실 거예요. 그래서 PDF 뷰어에 다크모드를 적용하거나, 브라우저 확장 프로그램으로 색을 반전시키는 방법을 쓰는 분들이 많은데요, 여기엔 늘 같은 문제가 따라다녔어요.
색 반전(invert) 방식을 쓰면 텍스트 배경은 어둡게 바뀌지만, 이미지까지 같이 반전돼 버려요. 다이어그램, 스크린샷, 그래프 같은 게 네거티브 필름처럼 변해서 알아볼 수가 없게 되는 거죠. 논문이나 기술 문서에 포함된 도표를 봐야 하는데 색이 다 뒤집혀있으면 정말 답답하잖아요.
Veil이라는 도구가 바로 이 문제를 해결하려고 나왔어요. "이미지는 원본 그대로 유지하면서 배경과 텍스트만 다크모드로 바꿔주는 PDF 뷰어"예요. 그리고 재밌는 점은, 이게 설치형 프로그램이 아니라 브라우저에서 바로 돌아가는 웹 도구라는 거예요.
어떤 원리로 동작하는 걸까
Veil의 접근 방식이 꽤 영리해요. 단순히 CSS filter로 전체 화면을 invert하는 게 아니라, PDF의 구조를 파싱해서 텍스트 레이어와 이미지 레이어를 구분해요. 이게 뭐냐면, PDF 파일은 사실 텍스트, 벡터 그래픽, 래스터 이미지 등 여러 요소가 레이어처럼 쌓여 있는 구조거든요. Veil은 이 구조를 분석해서 텍스트와 배경에는 다크 컬러 스킴을 적용하고, 이미지 요소는 원본 색상을 그대로 유지하는 방식으로 렌더링해요.
모든 처리가 클라이언트 사이드, 즉 여러분 브라우저 안에서 일어나요. PDF를 서버로 업로드하지 않는다는 뜻이에요. 민감한 문서 — 회사 내부 문서나 NDA가 걸린 자료 같은 것 — 를 다룰 때도 프라이버시 걱정 없이 쓸 수 있는 거죠. 요즘 시대에 이 부분이 꽤 중요한 장점이에요.
사용법도 정말 간단해요. 웹사이트에 접속하고, PDF 파일을 드래그앤드롭하면 끝이에요. 별도의 설치도 없고, 브라우저 확장 프로그램을 깔 필요도 없어요.
기존 방법들과 뭐가 다른지 비교해 볼게요
다크모드 PDF를 위한 기존 방법들이 몇 가지 있는데요, 각각의 한계가 있었어요.
브라우저 확장 프로그램(Dark Reader 등) 방식은 웹 페이지 전체에 CSS 필터를 적용하는 방식이에요. 간편하지만 PDF 내부 구조를 이해하지 못하기 때문에 이미지까지 반전되는 문제가 그대로 있어요. 또 PDF.js로 렌더링된 PDF에는 잘 동작하지만, 다운로드한 PDF를 열어보는 경우에는 적용이 안 되기도 하죠.
PDF 리더 자체 다크모드(Adobe Acrobat 등) 방식은 일부 리더에서 제공하는데, 역시 이미지 처리가 완벽하지 않은 경우가 많아요. 그리고 특정 리더에 종속되는 문제가 있죠.
OS 레벨 색 반전 방식은 접근성(accessibility) 기능으로 화면 전체를 반전하는 건데, 당연히 PDF만 선택적으로 적용할 수 없고 다른 모든 것도 영향을 받아요.
Veil은 이 중에서 "이미지 보존"이라는 핵심 문제를 가장 깔끔하게 해결한 접근이에요. PDF 구조를 직접 분석하기 때문에 텍스트와 이미지를 정확하게 구분할 수 있거든요.
개발자에게 왜 유용할까
개발자가 PDF를 읽을 일, 생각보다 많잖아요. 기술 논문(arXiv 논문들 대부분 PDF죠), API 명세서, 기술 백서, 사내 기술 문서, RFC 문서... 특히 논문이나 기술 문서에는 아키텍처 다이어그램, 성능 벤치마크 그래프, 코드 스니펫 스크린샷 같은 이미지가 핵심 정보를 담고 있는 경우가 많아요. 이런 이미지가 망가지면 문서를 제대로 읽을 수 없는 거예요.
또 하나 주목할 점은, 이 도구가 완전 클라이언트 사이드 JavaScript로 구현됐다는 거예요. 웹 기술만으로 PDF 파싱과 렌더링을 처리한 거라, 프론트엔드 개발자라면 내부 구현을 살펴보는 것도 공부가 될 수 있어요. PDF.js 기반 위에 어떻게 레이어 분리 로직을 얹었는지 보면 꽤 재미있을 거예요.
일상적으로는, 북마크바에 하나 추가해두고 PDF 읽을 때마다 사용하는 식으로 쓰면 돼요. 특별히 설정하거나 관리할 것도 없어서 부담이 전혀 없어요.
한줄 정리
PDF 다크모드의 오래된 숙제였던 "이미지 깨짐 없는 다크모드"를 브라우저 하나로 해결한 깔끔한 도구예요.
여러분은 다크모드에서 PDF 읽을 때 어떤 방법을 쓰고 계세요? 아니면 그냥 눈 부신 걸 참고 읽으시나요?
🔗 출처: Hacker News
TTJ 코딩클래스 정규반
월급 외 수입,
코딩으로 만들 수 있습니다
17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공