Initial Commit

This commit is contained in:
2026-09-16 17:22:14 +09:00
commit 858ee9e9da
335 changed files with 123898 additions and 0 deletions
+144
View File
@@ -0,0 +1,144 @@
# Quickstart: Tauri 기준 앱 확인하기
**Date**: 2026-09-09 | **Plan**: [plan.md](./plan.md)
이 문서는 검증용 실행 안내다. 구현 방법은 `tasks.md`와 코드에 있다.
---
## 사전 준비
- Windows 11 + WebView2 런타임
- Node 26 / npm 11
- Rust stable MSVC 툴체인
- VS C++ 도구 + Windows 11 SDK
```powershell
rustc --version
cargo --version
```
---
## A. 자동 검사
```powershell
cd 2_frontend
npm install
npm run format
npm run lint
npm run test
npm run build
cd ..\4_rust_tauri
npm install
cargo test --manifest-path src-tauri\Cargo.toml
```
**기대**: 전부 통과하고 오류·경고로 숨긴 실패가 없다.
---
## B. 브라우저 개발 화면
```powershell
cd 2_frontend
npm run dev
```
`http://localhost:15173`에서 확인:
| 확인 | 기대 |
|---|---|
| 챗봇 화면 | 정상 표시 |
| 콘솔 오류 | 없음 |
| 코드블록의 붙여넣기 버튼 | 안 보임 |
| `/snippet` 직접 이동 | 화면은 뜨고 요청은 "데스크톱 전용" 오류 |
---
## C. Tauri 앱 기본 동작
```powershell
cd 4_rust_tauri
npm run tauri dev
```
| 확인 | 기대 |
|---|---|
| 창 | 제품명 `CodeAssist`, 제목표시줄 없음 |
| 화면 | `2_frontend`의 현재 화면 |
| 트레이 | 열기 / 항상 위에 고정 / 종료 |
| `Ctrl+Shift+7` | 스니펫 팔레트 |
| `Ctrl+Shift+8` | 챗봇 토글 |
| `Ctrl+Shift+9` | 캡쳐 시작 |
| 두 번 실행 | 새 창 없이 기존 창 소환 |
| 창 이동·크기·핀 뒤 재실행 | 마지막 상태 복원 |
단축키 등록 실패가 있으면 앱은 계속 돌고 실패한 조합을 알려야 한다.
---
## D. 붙여넣기
대상 앱마다 커서를 둔 뒤 `Ctrl+Shift+7` → 스니펫 선택 → Enter:
| 대상 | 기대 |
|---|---|
| 메모장 | 선택한 코드가 원문 그대로 붙음 |
| VS Code | 선택한 코드가 원문 그대로 붙음 |
| 창 전환이 느린 업무용 앱 | 엉뚱한 창이나 일부만 붙는 일이 없음 |
추가 확인:
- 붙여넣기 대상 배지에 직전 앱 이름이 보임
- 자동 붙여넣기가 실패해도 클립보드에 코드가 남음
느린 앱에서 어긋나면 research R10의 80ms 대기 값을 실제 환경에 맞게 조정한다.
---
## E. 화면 캡쳐
| 상황 | 확인 |
|---|---|
| 배율 100% 모니터 | `Ctrl+Shift+9` → 영역 드래그 → 고른 영역과 결과 일치 |
| 배율 150% 모니터 | 같은 흐름에서 결과가 밀리거나 잘리지 않음 |
| 두 모니터에 걸친 영역 | 고른 영역과 결과 일치 |
| Esc | 첨부 없이 화면 복귀 |
| 드래그 없이 클릭 | 조용히 취소 |
캡쳐한 그림을 원본 화면과 나란히 놓고 경계를 확인한다. 어긋나면 DPI 설정이 아니라 논리↔물리 좌표 변환을 본다.
---
## F. 기존 스니펫
1. `%LocalAppData%\CodeAssist\snippets.db`가 있는 상태에서 Tauri 팔레트를 연다.
2. 기존 목록이 보이는지 확인한다.
3. 스니펫 하나를 만들거나 수정하고 하나를 사용한다.
4. 앱을 다시 켠다.
5. 변경 내용·사용 횟수·최근 사용 순서가 유지되는지 확인한다.
기존 DB가 없으면 빈 목록으로 시작해 새 스니펫을 저장할 수 있어야 한다. 스키마와 저널 모드는 바꾸지 않는다.
---
## G. 미구현 처리
구현 중 아직 연결하지 않은 요청은 빈 값으로 성공한 척하지 않고 한글 "아직 안 됨" 오류를 보여야 한다. 최종 완료 때는 이 오류를 내는 필수 기능이 남아 있으면 안 된다.
---
## H. release
```powershell
cd 4_rust_tauri
npm run tauri build
```
**기대**:
- release 설치물이 만들어짐
- 설치물과 실행 창의 제품명이 `CodeAssist`
- 빌드·실행·검증에 `3_windowsApp`이 필요하지 않음
마지막으로 `specs/004-tauri-shell/report.md`에 계획 대비 구현 결과와 검증 증거를 남긴다.