From 0e7df60e13d1c1b4fb99c5ec215b4d9233d8e081 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 29 Jul 2025 10:27:01 +0000 Subject: [PATCH] docs: Add comprehensive todo and project reliability improvement plan Co-authored-by: kimdonghyun026 --- todo.txt | 401 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 401 insertions(+) create mode 100644 todo.txt diff --git a/todo.txt b/todo.txt new file mode 100644 index 0000000..b1957e9 --- /dev/null +++ b/todo.txt @@ -0,0 +1,401 @@ +# Ubuntu Disk Toolkit - 테스트 신뢰성 개선 계획 + +## 📋 기본 요구사항 (사용자 제공) + +다음의 테스트를 식별하고, 테스트 투명성 및 신뢰성을 확보할 수 있도록 인사이트를 제공해줘. +1) 신뢰성을 확보하는데 기여하지 않는 테스트 + 모킹(합성 데이터)을 사용함으로서 신뢰도를 확보할 수 없게 된 더미-테스트. + 다음의 예시들은 모의 데이터를 사용하는 대신 임시 파일 또는 실제 명령을 통한 개선이 가능한 사례임: + 1-1) blkid 파싱하는 테스트의 경우, 실제 디스크 리스트를 출력하더라도 디스크에 1개 이상의 데이터가 존재하면 상관 없음. + 이 경우는 모킹을 사용해도 무관하나, 개발자는 모킹 또한 '관리해야 하는 코드'라고 생각함. + 1-2) fstab을 수정하는 테스트의 경우, 임시 파일을 생성하여 파일을 성공적으로 조작하는지에 대한 테스트를 수행할 수 있음. + 즉, fixture나 임시 파일을 사용하고 teardown 과정에서 제거하는 형식의 로직을 구현할 수 있음. + 모킹을 사용하는 것이 좋은 경우도 있지만, 데이터의 변화에 대한 검사, 데이터 해석에 대한 검사 등 + 모킹 없이 재현 불가한 경우에 사용하고, 모킹을 사용하도 실제 환경에 대해 테스트 할 수 없다면 샌드박싱까지 고려하는 것도 좋다고 생각돼. + 우선, 재현 불가한 테스트가 보이면 정리해서 알려줘. + +--- + +## 🎯 최신 요구사항 (2024.12.19) + +1. **커버리지 목표 상향 조정**: 30% → **100%** (커버할 수 없는 로직 제외) +2. **다른 에이전트 인수인계**: 작업을 이어갈 수 있도록 코드 탐색 순서 정의 +3. **현재 작업 상태 명시**: git status 기준으로 이전 작업자 변경사항 명확화 +4. **TODO 통합**: 모든 작업 항목을 이 파일에 명시 + +--- + +## ⚠️ **새로 발견된 문제: 테스트 행(Hang) 및 예상치 못한 중단** + +### 🔍 문제 현상 (2024.12.19 19:30) +```bash +# just coverage 실행 중 행 발생: +ℹ 디스크 /dev/virtual-test에 파티션 생성 중... +/dev/virtual-test1 +defaults +^C # 사용자 강제 중단 필요 +``` + +### 🚨 원인 분석 +**🎯 핵심 문제**: scripts/coverage-test.sh → lib/disk-functions.sh → safe_execute() → 실제 시스템 명령어 실행 + +**🔗 위험한 호출 체인**: +```bash +coverage-test.sh +→ add_fstab_entry_safe("/dev/virtual-sda", "/mnt/test", ...) +→ create_partition() +→ safe_execute("parted -s /dev/virtual-sda mkpart ...") +→ 실제 parted 명령어 실행 시도 +→ 존재하지 않는 디바이스로 인한 HANG +``` + +### 📊 개선 방안 및 실현 가능성 + +#### ✅ **확실히 가능한 개선안** +1. **safe_execute() 함수 개선** (90% 확실) + - 테스트 모드에서 위험한 명령어 패턴 차단 + - Mock 응답 제공으로 realistic한 결과 시뮬레이션 + - 기존 코드 최소 변경으로 구현 가능 + +2. **환경 변수 기반 안전 모드** (95% 확실) + - TESTING_MODE=true 시 모든 위험한 작업 차단 + - DRY_RUN 모드로 명령어 시뮬레이션만 실행 + - 즉시 적용 가능, 부작용 최소 + +#### 🤔 **실현 가능성 검토 필요 (Pilot Study 대상)** +3. **프로세스 모니터링 시스템** (70% 확실) + ```bash + # 개념적 구현: + - 출력 파일 크기 변화 감지 + - 30초 무응답시 자동 종료 + - 프로세스 트리 강제 정리 + ``` + **의문점**: + - bash 환경에서 background 프로세스 모니터링 안정성? + - bashcov와의 상호작용 문제 없을지? + - 실제 hang vs 정상적 긴 작업 구분 가능? + +4. **위험한 명령어 동적 감지** (60% 확실) + ```bash + # 패턴 매칭으로 스크립트 사전 검사 + dangerous_patterns=("parted.*mkpart" "mkfs\." "dd.*of=/dev/") + ``` + **의문점**: + - 정규식 패턴 매칭의 정확도? + - 거짓 양성/음성 비율은? + - 성능 오버헤드는? + +5. **대화형 입력 완전 차단** (80% 확실) + ```bash + exec 0