================================================================================
 QuickCmd 버전별 개발 및 개선 히스토리 (Version History)
================================================================================
- 프로그램명 : QuickCmd (초경량 스마트 상용구 자동치환 프로그램)
- 현재 버전  : v0.4
- 제작자     : 김기환 (Kim Ki Hwan)
- 배포 형태  : QuickCmd.exe (단일 실행 파일)
================================================================================

[버전 0.4] - 2026-11-06
--------------------------------------------------------------------------------
1. 간헐적 키 입력 지연(버벅임) 완벽 제거 및 반응 속도 최적화
  - 2.5초마다 메모리를 디스크(가상 메모리)로 밀어내던 EmptyWorkingSet 타이머 제거:
    * 키 입력 시마다 쫓겨난 메모리를 다시 불러오며(Hard Page Fault) 발생하던
      간헐적 타이핑 멈칫/지연 현상을 근본적으로 해결 (물리 RAM 상주로 지연 0ms 달성)
  - 마우스 이동 시마다 초당 수백 회 스레드를 깨우던 전역 마우스 훅(WH_MOUSE_LL) 제거:
    * 키 이벤트 타임스탬프(4초 이상 공백 시 자동 리셋) 및 창 전환 감지로 대체
  - 매 키 입력마다 6회씩 호출하던 GetAsyncKeyState 커널 호출을 유저 메모리 상태 추적으로 대체

--------------------------------------------------------------------------------
[버전 0.3] - 2026-11-03
--------------------------------------------------------------------------------
1. 신규 추가 기능
  - 메인 화면 상단 [설정] 버튼 및 블랙 테마 환경 설정 창 추가
  - 설정 창 내 [윈도우 시작프로그램에 등록] 체크/해제 기능 구현:
    * 체크 시 윈도우 부팅과 함께 시스템 트레이로 자동 실행(--tray)
    * 체크 해제 시 시작프로그램 목록에서 즉시 제거
  - 시스템 트레이 우클릭 메뉴에 [설정 (시작프로그램 관리)] 바로가기 항목 추가

2. UI 개선 및 버전 업데이트
  - 상단 타이틀바 1열 수평 정렬 및 하단 [현재 불러온 리스트 파일: 파일명.qvault] 전용 상태바 분리로 글자 겹침 완벽 해결
  - 전체 UI, 트레이 메뉴, 실행 파일 리소스 메타데이터를 버전 0.3으로 업데이트

--------------------------------------------------------------------------------
[버전 0.2] - 2026-11-02
--------------------------------------------------------------------------------
1. 추가 및 변경 사항
  - 리스트 파일 경로 및 파일명 직접 지정 기능 추가:
    * [리스트 암호화 저장] 시 원하는 디렉토리와 파일명을 자유롭게 선택 가능
    * [리스트 불러오기] 시 원하는 .qvault 파일을 직접 선택 후 비밀번호로 복호화
  - 기본 디렉토리 및 기본 파일명 규칙 적용:
    * 기본 저장/불러오기 폴더: QuickCmd.exe 실행 파일이 위치한 동일 디렉토리
    * 기본 저장 파일명: 현재 시각 기준 '년월일_시간분.qvault' (예: 20261102_1545.qvault)
  - 재실행 시 직전 사용 리스트 자동 표시 및 상단 파일명 표기:
    * 프로그램을 껐다 켜도 직전에 사용하던 리스트와 파일명이 화면에 그대로 유지됨
    * 상단 헤더에 '현재 리스트: 파일명.qvault (N개 치환 적용 중)' 상시 표기

2. 개선 및 정리 사항
  - 메모리 점유율 및 실행 파일 용량 극한 최적화:
    * C++ 표준 스트림(<sstream>/<locale>) 제거 및 불필요 섹션 제거로
      실행 파일 용량을 1.14MB -> 366KB로 축소
    * 트레이 상주 시 GDI+ 엔진 자동 해제 및 주기적 Working Set 메모리 압축 적용으로
      작업 관리자 메모리 점유율을 기존 3.8MB에서 약 0.5MB ~ 1.2MB 수준으로 절감
  - 입력칸 Ctrl+A (전체 블록 선택) 완벽 작동하도록 수정
  - 전체 프로그램 및 모든 서브 창(비밀번호 창, 알림/오류 창)에 세련된
    일체형 블랙 테마(Obsidian Black Theme) 및 커스텀 상단바 적용
  - 폰트에서 네모(▯)로 깨지던 이모지를 제거하고 자체 벡터 아이콘(자물쇠/폴더) 적용
  - 기존 %APPDATA%\QuickCmd 폴더 및 내부 파일 완전 삭제 조치
  - 직전 작동용 암호화 캐시(QuickCmd_LastActive.qcache)도 실행 파일과 같은
    폴더에 저장되도록 일원화하여 포터블 관리성 강화
  - 프로그램 전체 버전 표기 v0.2 (제작자: 김기환) 업데이트

--------------------------------------------------------------------------------
[버전 0.1] - 2026-11-02
--------------------------------------------------------------------------------
1. 무엇을 만들었는가 (신규 제작 내용)
  - 윈도우 전역 상용구 즉시 치환 엔진 제작:
    어느 프로그램에서든 등록해 둔 문구(A)를 타이핑하면 즉시 지정한 문구(B)로 변환
  - 시스템 트레이 상주 기능:
    창의 X 버튼을 눌러도 프로그램이 꺼지지 않고 트레이로 숨겨지며,
    트레이 아이콘 우클릭 -> [종료 (Exit)]를 눌러야만 완전 종료되도록 구현
  - 최소 자원 점유 네이티브 빌드:
    파이썬 대신 C++17 Win32/GDI+ 네이티브로 제작하고 정적 링크 단일 exe로 빌드
    (트레이 대기 시 메모리 약 1~3MB, CPU 0% 점유)
  - 커스텀 아이콘 및 모던 UI 제작:
    고해상도 다중 규격 아이콘 삽입 및 제작자(김기환) / 버전 표기

2. 어떤 점을 개선/수정했는가 (개선 및 보안 강화 이력)
  - UI 단순화 개선:
    복잡한 설정 없이 직관적으로 [입력할 문구(A)] -> [변환될 문구(B)] 추가/삭제만
    간편하게 수행하도록 인터페이스 간소화
  - 한글 입력기(IME) 조합 글자 치환 오류 수정:
    한글 단축어 입력 시 마지막 글자의 조합 상태를 안전하게 완료한 뒤
    정확한 글자 수만큼 지우고 치환 문구를 유니코드 스트림으로 주입하도록 개선
  - 인공지능도 해독 불가능한 암호화 저장 및 비밀번호 불러오기 구현:
    * 리스트에 항목을 추가/삭제한 뒤 [리스트 암호화 저장]을 눌러 비밀번호를
      입력해야만 실제 치환 리스트로 작동하도록 구현
    * 기본 작동 시에는 직전에 저장한 리스트대로 자동 작동하며, 화면에서는 목록을
      숨겨 보안 유지
    * 나중에 [리스트 불러오기] 클릭 시 해당 리스트에 부여한 비밀번호를 입력해야만
      PBKDF2-HMAC-SHA256(600,000회) + AES-256-CBC + HMAC-SHA256 검증을 거쳐
      복호화 및 불러오기가 가능하도록 보안 설계
================================================================================
