문서 변경 사항 한눈에 파악하기

소개

  • 논문 메이저 리비전을 받고 분석 방법 전체를 바꾸게 되어서, 문서 구조와 내용을 대대적으로 수정하고 있습니다. 저널에 수정본을 제출할 때 변경 추적 버전을 함께 제출해야 하기 때문에, 어떤 부분이 바뀌었는지 명확히 보여주는 보조 도구의 필요성을 느꼈구요. 제출 마감 기한이 촉박한 상황에서, 문서 비교와 변경 추적 과정을 수작업으로 처리하는데 한계를 느꼈고, 시간을 보다 효율적으로 사용하기 위해 자동화 해보기로 하였습니다.

  • 문서에 변경이력 추적하기 도구가 있으나 저는 개인적으로 변경추적 기능을 켜두면 가독성이 떨어져서 글을 작성하고 검토하는 과정에서 시간이 더 오래 걸리는 것 같다고 느꼈습니다.

  • 대부분의 바이브코딩 툴들은 디폴트를 웹으로 만들어주는데 DB를 붙이는 과정이 쉽지 않았었구요. 연구실 동료들과 함께 사용할 수 있도록 윈도우에서 실행 가능한 어플리케이션 형태로 개발하고자 했습니다. 그런데, 마지막 테스크인 빌드 기능 개발은 계속 실패하고 있네요. 😭

진행 방법

  • 모든 과정은 Antigravity로 진

  • 개발 언어 및 환경: Python + FastAPI + SQLite + HTML/JS (PyWebView 기반)

  • 비교 대상 문서: 논문 최초 투고본 vs 리비전 진행본 (DOCX)

  • 비교 방식: 문단 → 문장 → 단어 수준의 계층적 비교

  • 실행 형태: PyInstaller를 사용하여 윈도우 실행파일(.exe)로 패키징

주요 기능

  • 파일 업로드 및 비교

    • 두 DOCX 문서를 업로드하면 서버에서 변경 사항을 분석

  • 3단계 비교 알고리즘

    • 문단 단위 비교 → 문장 단위 정렬 → 단어/문자 수준 변경 감지

    • difflib, diff-match-patch, fuzzy matching 조합

  • 변경 유형 시각화

    • 추가(파란색), 삭제(빨간색), 이동(초록색) 색상으로 강조

    • 문장 이동은 move_id로 양쪽 패널 연결

  • 비교 이력 저장 (개발 예정)

    • SQLite로 이전 비교 기록 관리 가능

[Task.md]

코드 편집기의 스크린샷

[Sample File 비교 화면]

구글애널리틱스 대시보드 스크린샷

결과와 배운 점

  • 실행 파일 형태로 배포하는 과정에서 아직 문제를 해결하지 못했습니다.
    하지만 PyInstaller 등을 통해 실행 파일로 만들 수 있다는 점을 새롭게 알게 되었습니다.

  • 섹션 간 문장 이동이 이루어진다거나, 의미상 유사하나 문장 구조나 단어가 많이 변경된 경우 정밀하게 표시하려면 좀 더 정교하게 알고리즘을 설계하는 것이 필요할 것 같습니다.

  • 알고리즘 구체화를 한 후에 어느 정도 완성도가 높아지면, 연구실 멤버들이 각자의 컴에서 손쉽게 실행할 수 있도록 실행파일 형태로 배포하는 것을 추가로 해보고 싶습니다.

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요