3-8. 보안과 프로토콜 확장 2026-03-10 ~ 03-11
03-10: 00:28
23:54 (23.4시간), 190커밋 — 프로젝트 최다 커밋 일, 시간당 8.1커밋 03-11: 00:0220:55 (20.9시간), 92커밋 — 10개 세션(!), OAuth 수정 + SSL Proxying + tauri-store
03-10: 보안 기능과 안정성
mTLS (클라이언트 인증서)
서버가 클라이언트 인증서를 요구하는 환경을 지원. 도메인별로 다른 인증서를 설정할 수 있고, PKCS12 형식도 지원.
SSL Proxying 모드
특정 도메인만 TLS 인터셉트하거나(화이트리스트), 특정 도메인을 제외하거나(블랙리스트).
프록시 인증
Bearer/ApiKey 인증 방식 지원. CONNECT 터널에서 인증이 우회되는 보안 이슈를 발견하고 즉시 수정.
연결 풀
프록시 연결을 재사용해서 성능 향상. 동시 연결 수 제한, 최대 바디 크기 제한도 함께.
안정성 대수술
안정성 감사를 실행해서 크리티컬 4건, HIGH 6건, MEDIUM 10건을 수정. 유닛테스트 13건 추가. STABILITY_AUDIT.md 보고서도 생성.
트러블슈팅: macOS 데드락 연쇄 삽질
이 날 데드락 관련 버그만 6커밋:
macOS의 WebKit은 메인 스레드에서만 UI 업데이트를 할 수 있다. Tauri의 app.emit()이 메인 스레드에서 호출되면, WebKit이 이미 메인 스레드를 잡고 있어서 데드락. 모든 blocking I/O를 spawn_blocking으로 옮기고, emit()을 run_on_main_thread()로 변경해서 해결.
코드 내보내기
캡처된 요청을 다양한 포맷으로 내보내기. cURL, fetch, HTTPie, Python requests.
기타
feat: Quick Settings에 No Gzip 토글 기능 추가feat: multipart/form-data 및 urlencoded 바디 뷰어 추가feat: 자동 세션 저장/복원 기능 구현feat(desktop): 찰스 프록시 스타일의 Proxy/Tools 네이티브 메뉴 추가refactor: React Hook Form + Zod 도입refactor: localStorage 직접 접근을 Zustand persist store로 통합
03-11: 프로토콜 확장 — OAuth 수정에서 시작
이 날은 OAuth 로그인 문제에서 시작됐다:
"터널 실패하면 그다음엔 정상적인 인증서로 프록시 통하지 않고 요청하는거 아닌지?" (Google OAuth error: client_id_not_found_in_session) "다른 MITM 프록시들은 어떻게 하고 있음?" "레퍼런스 폴더" — 로컬 MITM 코드를 직접 참고 "좋아요 우리도 일단 넣죠. 근데 설정에 화이트리스트 기반 블랙리스트 기반 이렇게 동작하게 해서 모든 프록시 감지 or 일부만 감지 이렇게 가능하게 해줄 수 있을까요?"
그리고 설정 영구화 문제:
"그리고 설정에서 설정하는건 영구저장일까?" "https://v2.tauri.app/ko/plugin/sql/ 이걸 쓰는건 어떻게 생각하세요?" "좋아 플러그인 스토어로 가자" — tauri-plugin-store 결정
설정 페이지 UX도 이때 개편:
"설정 페이지 리팩토링 한번 해야 할거 같은데, 너무 단일기능마다 버튼이 있어서요" "자동저장보다 저장버튼이 하나로 묶이는게 낫지 않을까요?" "리액트 훅폼으로 하신걸까요? 컨텍스트가 더 깔끔한걸까요?" → "네 변경해주세요"
SSE 캡처
Server-Sent Events 스트리밍을 실시간 캡처. 이벤트별로 파싱해서 보여준다.
TLS 도메인별 세분화 설정
도메인별로 TLS 버전, 암호화 스위트를 각각 설정할 수 있다. 레거시 서버와 최신 서버를 같이 다룰 때 유용.
Eager/Lazy 연결 전략
- Lazy — 요청이 올 때 서버에 연결 (기본)
- Eager — 미리 연결해서 인증서를 가져옴 (빠름)
- EagerWithFallback — Eager 시도 후 실패하면 Lazy로 폴백
SSL Proxying 모드 확장
tauri-store 전환
모든 Zustand store의 persist backend를 tauri-plugin-store로 통합. Rust에서 store 파일을 직접 읽어서 프록시 시작 시 설정을 자동 동기화.
설정 페이지 리팩토링
설정 페이지를 사이드바 네비게이션 + 통합 Save 버튼 구조로 전면 개편.
CONNECT 터널 토글
프록시를 쓰면 CONNECT 요청이 엄청 많이 나온다. 이걸 숨길 수 있는 토글.
트레이 패널 부활 삽질
03-08에서 문제가 많았던 트레이 패널을 Rust 백엔드 중개 방식으로 다시 구현.
03-10에 mTLS, 프록시 인증, 연결 풀, 안정성 대수술(크리티컬 4+HIGH 6+MEDIUM 10건)을 하고, 03-11에 SSE 캡처, TLS 도메인별 설정, Eager/Lazy 전략, tauri-store 전환을 완료했다.