
사용한 도구: ChatGPT · VS Code
PDF 문서를 읽으면서 중요한 문장에 색을 칠하거나 메모를 남길 수 있는 개인용 PDF 편집 도구를 만들었습니다. ChatGPT에 원하는 기능을 설명해 코드를 받고, 그 코드를 VS Code에 옮겨 작업하는 방식이었습니다. 하이라이트, 메모, 주석 삭제, 화면 배율 조절 기능을 구현했지만, 만들면서 떠오르는 기능을 하나씩 추가하다 보니 예상보다 수정 작업이 많아졌습니다.
필요했던 기능이 없어서 직접 만들기로 했다
평소 PDF로 문서를 읽을 때 전자책 뷰어처럼 중요한 부분을 표시하고 메모를 남기고 싶었습니다. 하지만 제가 주로 사용하던 프로그램에는 원하는 방식의 기능이 없었습니다.
그래서 다른 도구를 계속 찾는 대신, 직접 만들어 보기로 했습니다. 바이브 코딩을 활용하면 떠올린 아이디어를 코드로 옮기는 과정에서 AI의 도움을 받을 수 있겠다고 생각했습니다.
어떤 기능을 만들었나?
이번 도구에서 구현한 기능은 다음과 같습니다.
| 기능 | 구현한 내용 |
|---|---|
| 하이라이트 | 다섯 가지 색상으로 PDF 문서의 내용을 강조 표시 |
| 메모 | 읽으면서 메모를 남기는 기능 |
| 삭제 | 추가한 주석을 삭제하는 기능 |
| 화면 배율 | PDF를 볼 때 확대·축소 비율을 조절하는 기능 |
제작한 화면에는 PDF 파일 열기, 페이지 이동, 하이라이트 색상 선택, 메모, 주석 삭제, 배율 조절 등의 도구가 배치돼 있습니다. 실제로 파일을 연 화면에서는 여러 색으로 강조 표시된 문장과 200% 배율 표시도 볼 수 있었습니다.
다만 화면에 버튼이 보인다는 사실만으로 모든 상황에서 해당 기능이 정상 작동한다고 보장할 수는 없습니다. 이 글은 제가 만든 기능과 제작 경험을 소개하는 글이며, 다양한 PDF에서의 호환성이나 저장 결과까지 종합적으로 검증한 사용 설명서는 아닙니다.
ChatGPT와 VS Code로 어떻게 만들었나?
작업 방식은 단순했습니다. 제가 원하는 기능을 ChatGPT에 설명하면 코드를 받아서 VS Code에 붙여 넣고, 다음에 필요한 기능이 생각나면 다시 요청하는 식으로 진행했습니다.
처음부터 전체 설계를 완성하고 시작한 것은 아니었습니다. 실제로 화면과 기능을 만들어 가면서 ’이 기능도 있으면 좋겠다’는 생각이 들 때마다 요구사항을 추가했습니다.
이 방식으로 원하는 모습을 조금씩 만들어 갈 수는 있었습니다. 하지만 새로운 요청이 이전 코드의 수정을 불러오는 일이 반복되면서 전체 제작 시간도 늘어났습니다.
아쉬웠던 점: 기능보다 밑그림이 먼저였다
가장 큰 아쉬움은 처음에 필요한 기능을 충분히 정리하지 않았다는 것입니다. 하이라이트, 메모, 삭제, 배율 조절처럼 넣고 싶은 기능을 시작 전에 목록으로 만들었다면 작업 중간의 수정 횟수를 줄일 여지가 있었을 것입니다.
물론 처음부터 모든 요구사항을 완벽하게 예상할 수는 없습니다. 그렇더라도 다음에 비슷한 도구를 만든다면, 코드를 요청하기 전에 다음 세 가지부터 정리하려고 합니다.
- 꼭 필요한 기능: 이번 버전에서 반드시 구현할 기능은 무엇인가?
- 나중에 추가할 기능: 있으면 좋지만 이번 작업에서는 제외할 기능은 무엇인가?
- 확인 방법: 각 기능이 원하는 대로 동작했는지 무엇으로 확인할 것인가?
구현하지 않은 기능과 남은 한계
PDF 파일을 이미지로 저장하는 기능도 생각했습니다. 다만 한 도구에 너무 많은 기능을 추가하고 싶지는 않아서, 이번 제작에서는 구현하지 않고 작업을 마쳤습니다.
또한 이 글에서 보여주는 화면과 제작자 설명만으로는 여러 종류의 PDF에서 동일하게 동작하는지, 주석이 저장 후에도 의도한 방식으로 유지되는지 등을 판단하기 어렵습니다. 이런 부분은 실제 파일을 사용한 추가 확인이 필요합니다.
이번 제작에서 얻은 교훈은 분명합니다. AI에게 코드를 요청하기 쉬워졌다고 해서 무엇을 만들지 정하는 과정까지 생략해도 되는 것은 아니었습니다. 다음에는 전체적인 밑그림을 먼저 그리고, 필요한 기능을 나누어 구현해 보려고 합니다.