상세 컨텐츠

본문 제목

복호화 스크립트에 버튼을 달았다 — React와 Python으로 만든 로컬 도구, 카톡대화방 복호화3

서버·개발/코드 노트

by 사이 (SAI) 2026. 7. 26. 17:32

본문

728x90
반응형

Windows 카카오톡 DB를 여는 데 성공해도 명령줄 네 개를 외워야 한다면 다른 사람이 쓰기는 어렵습니다.
2026년 7월 개발 기록에서는 Tauri 패키징을 미루고 React·Vite 화면과 Python 로컬 서버를 붙여 버튼 두 개로 흐름을 줄였습니다.
4부작 세 번째 편은 복호화 스크립트를 처음 사용자도 다룰 수 있는 로컬 도구로 바꾼 과정입니다.

첫 버전에서 중요한 것은 설치 파일 모양이 아니라 복구·복호화·수집 상태를 사용자가 이해하고 다시 시도할 수 있게 만드는 일이었습니다.


Tauri 대신 로컬 웹을 선택한 이유

처음에는 Mac에서 쓰던 흐름처럼 Tauri 데스크톱 앱을 생각했습니다.
하지만 Windows 초판의 가장 큰 위험은 패키징이 아니라 DB 키 복구와 통합 수집의 안정성이었습니다.
화면은 React로 만들고, 로컬 파일과 실행 중인 프로세스를 다루는 일은 Python이 맡도록 나눴습니다.
브라우저는 localhost 화면만 열고 데이터 처리는 사용자 PC 안에서 끝납니다.
개인적으로는 초기에 기술을 더 얹기보다 실패 원인이 보이는 구조를 택한 것이 맞았다고 봅니다.

복잡한 데스크톱 패키징 상자를 내려놓고 React 화면과 Python 서버를 연결하는 고정 2D 남성 개발자


프로젝트는 네 구역으로 나눴다

복구 로직, 서버, 화면, 사용자 데이터를 한 폴더에 섞지 않았습니다.

kakao-cli-windows-share/
  backend/server.py
  kwin/
  web/
  data/
    output/
    config/
    backup/

kwin은 키 복구와 DB 복호화·수집을 맡고 backend/server.py는 로컬 API와 React 빌드를 제공합니다.
web은 대화방과 자동화 작업을 보여주며 data에는 결과, 설정, 백업이 분리돼 저장됩니다.
이 구조 덕분에 화면을 고쳐도 복호화 로직을 건드리지 않고, 처음 상태 테스트에서도 필요한 데이터만 옮길 수 있었습니다.

backend와 kwin과 web과 data 네 영역을 작업대 위 모듈로 조립하는 고정 2D 남성 개발자

728x90


처음 사용자는 어디서 시작할까

공유받은 사람은 웹 화면을 한 번 빌드한 뒤 Python 서버를 실행합니다.

cd kakao-cli-windows-share
cd web
npm.cmd install
npm.cmd run build
cd ..
python backend\server.py --port 8780

브라우저에서 `http://127.0.0.1:8780/`을 열고 KakaoTalk PC에 로그인합니다.
처음에는 아직 키와 통합 DB가 없으므로 대화방 목록이 비어 있는 것이 정상입니다.
필요한 대화방을 몇 개 열어둔 뒤 ‘키 찾기 + 최신화’를 누르면 복구와 수집이 순서대로 실행됩니다.

버튼 두 개는 같은 일을 하지 않는다

‘키 찾기 + 최신화’는 첫 실행이나 새 대화방 키가 필요할 때 사용합니다.
내부에서는 v2recover 뒤에 v2sync가 이어집니다.
‘대화 최신화’는 이미 확보한 키로 v2sync만 실행해 최근 메시지를 다시 모읍니다.
키가 없는 상태에서 최신화만 누르면 실패할 수 있으므로 현재 상태에 따라 버튼을 구분해야 합니다.

상태 누를 버튼 내부 동작
처음 실행 키 찾기 + 최신화 recover 후 sync
기존 키 있음 대화 최신화 sync만 실행
새 방 키 필요 키 찾기 + 최신화 열린 방을 다시 탐색

첫 실행과 기존 키 상태에 맞춰 두 버튼 중 하나를 고르는 고정 2D 남성 개발자

반응형


개발자에게만 보이던 첫 실행 문제

개발 PC에는 이미 키와 통합 DB가 남아 있어 새 사용자의 빈 화면을 재현하기 어렵습니다.
그래서 reset-first-run.ps1를 만들어 결과를 지우지 않고 시간별 백업 폴더로 옮기도록 했습니다.
`-KeepConfig` 옵션을 쓰면 자동화 작업과 요약 스타일은 남기고 키와 DB 결과만 초기화합니다.
현재 웹에서는 대화방 목록, 작업 추가·삭제, 요약 스타일, 테마, 두 최신화 버튼까지 동작합니다.
다만 실제 LLM 요약 runner와 정해진 시간의 자동 실행은 아직 다음 단계입니다.

기존 데이터를 백업 상자로 옮긴 뒤 빈 첫 실행 화면을 점검하는 고정 2D 남성 개발자

마지막 편에서는 이 로컬 도구를 API로 열어 날짜별 메시지를 LLM에 넘기는 구조와 Windows 스케줄러·Notion 발행까지 남은 한 단계를 정리하겠습니다.
 

728x90
반응형

관련글 더보기

댓글 영역