You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/maintenance/implementation-log.ko.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,6 +38,7 @@
38
38
| 이슈 `#219`, `#523` 대용량 파일 확장 cache key OOM 완화 | archive/dex/app expansion cache 경로가 더 이상 파일 전체를 `readBytes()`로 읽지 않고, streaming SHA-256으로 cache key를 계산하도록 바꿨다 | 큰 파일을 확장하기 전에 해시 계산만으로 메모리를 크게 잡아먹던 경계를 제거해서 대용량 import의 선행 OOM 위험을 줄였다 |`app/src/main/java/com/kyhsgeekcode/filechooser/model/ExpandedFileCache.kt`, `app/src/test/java/com/kyhsgeekcode/filechooser/model/ExpandedFileCacheTest.kt`| 완료 |
39
39
| 이슈 `#523` 대용량 Hex 탭 렌더링 완화 | Hex 탭이 매우 큰 파일을 열 때 전체 바이트 배열을 그대로 Compose에 전달하지 않고, 상한이 있는 preview만 렌더링하며 원본 크기 안내 문구를 보여주도록 바꿨다 | 큰 파일을 Hex 화면에 띄우는 순간 UI 레이어가 과도한 메모리와 레이아웃 비용을 쓰는 경로를 줄여서 large-file cluster를 더 좁혔다 |`app/src/main/java/com/kyhsgeekcode/disassembler/ui/components/HexView.kt`, `app/src/main/java/com/kyhsgeekcode/disassembler/ui/tabs/HexTab.kt`, `app/src/test/java/com/kyhsgeekcode/disassembler/ui/components/HexViewLayoutTest.kt`| 완료 |
40
40
| 이슈 `#523` 대용량 Text 탭 렌더링 완화 | Text 탭이 매우 큰 파일을 열 때 전체 바이트를 그대로 highlight하지 않고, 상한이 있는 preview만 decode/highlight하며 원본 크기 안내 문구를 보여주도록 바꿨다 | 큰 텍스트/스몰리/XML 파일을 Text 화면에 띄우는 순간 AnnotatedString과 syntax highlighter가 과도한 메모리를 잡는 경로를 줄였다 |`app/src/main/java/com/kyhsgeekcode/disassembler/ui/tabs/TextTab.kt`, `app/src/test/java/com/kyhsgeekcode/disassembler/ui/tabs/TextPreviewTest.kt`| 완료 |
41
+
| 이슈 `#523` preview 탭 전체 파일 읽기 제거 | Hex/Text/Analysis preview가 더 이상 전체 파일을 `getFileContent()`로 읽지 않고, `ProjectDataStorage`의 bounded preview read helper로 필요한 바이트만 읽도록 바꿨다 | large-file 미리보기 화면을 여는 것만으로 전체 파일을 메모리에 올리던 경계를 제거해, preview 탭에서의 선행 메모리 사용량을 크게 줄였다 |`app/src/main/java/com/kyhsgeekcode/disassembler/project/ProjectDataStorage.kt`, `app/src/main/java/com/kyhsgeekcode/disassembler/ui/tabs/HexTab.kt`, `app/src/main/java/com/kyhsgeekcode/disassembler/ui/tabs/TextTab.kt`, `app/src/main/java/com/kyhsgeekcode/disassembler/ui/tabs/AnalysisTab.kt`, `app/src/test/java/com/kyhsgeekcode/disassembler/project/ProjectDataStorageCachePolicyTest.kt`| 완료 |
41
42
| 이슈 `#95` content URI import 파일 충돌 완화 | content URI를 app-private `imports/` 아래로 복사할 때 같은 display name이 이미 있으면 `_1`, `_2` suffix를 붙인 새 파일로 저장하도록 바꿨다 | 같은 이름의 문서를 여러 번 가져오거나 provider가 동일한 표시 이름을 줄 때 기존 import를 조용히 덮어쓰는 문제를 막아 SAF 기반 import 경계를 더 안전하게 만들었다 |`app/src/main/java/com/kyhsgeekcode/disassembler/viewmodel/MainViewModel.kt`, `app/src/test/java/com/kyhsgeekcode/disassembler/viewmodel/ImportedFileNameTest.kt`| 완료 |
42
43
| 이슈 `#95` imported project reopen 경계 정리 | exported project ZIP을 import한 뒤 `sourceFilePath`, `generatedFolder`, `project_info.json` 경로를 새 프로젝트 디렉터리 기준으로 재작성하고, temp extract 경로 매핑을 제거하도록 바꿨다 | SAF나 로컬 파일에서 가져온 project archive를 다시 열었을 때 삭제된 temp extract 경로나 예전 경로를 계속 참조하는 문제를 막아 reopen/open 경계를 실제 프로젝트 위치로 닫았다 |`app/src/main/java/com/kyhsgeekcode/disassembler/project/ProjectManager.kt`, `app/src/test/java/com/kyhsgeekcode/disassembler/ProjectManagerTest.kt`| 완료 |
43
44
| 이슈 `#95` project archive / 기존 project reopen 연결 | chooser의 `Open as project` 흐름이 기존 project 디렉터리와 exported project ZIP을 실제로 열도록 연결하고, project zip은 `project_info.json` 존재 여부로 판별하게 바꿨다 | 이전에는 `openProject` 플래그가 state에만 저장되고 실질 동작이 없어서 reopen 경계가 끊겨 있었는데, 이제 기존 project 디렉터리는 바로 열고 exported project ZIP은 바로 import할 수 있다 |`app/src/main/java/com/kyhsgeekcode/disassembler/project/ProjectManager.kt`, `app/src/main/java/com/kyhsgeekcode/disassembler/viewmodel/MainViewModel.kt`, `app/src/main/java/com/kyhsgeekcode/filechooser/model/FileItem.kt`, `app/src/test/java/com/kyhsgeekcode/disassembler/viewmodel/ProjectOpenActionTest.kt`| 완료 |
@@ -71,6 +72,7 @@
71
72
| import destination 파일명 테스트 | 통과 | 같은 display name으로 여러 번 import해도 app-private 파일이 덮어써지지 않는 규칙을 고정 |
72
73
| imported project relocation 테스트 | 통과 | project archive import 후 `sourceFilePath`, `generatedFolder`, `project_info.json` 경로를 새 프로젝트 위치로 다시 맞추는 규칙을 고정 |
73
74
| project open action 테스트 | 통과 |`Open as project`가 기존 project 디렉터리와 exported project ZIP에 대해 올바른 reopen/import 동작을 고르는 규칙을 고정 |
75
+
| preview read helper 테스트 | 통과 | preview 탭용 제한 읽기가 파일 전체를 읽지 않고 상한까지만 반환하는 규칙을 고정 |
74
76
| architecture mapping 테스트 | 통과 |`x86_64`, `PPC64`가 64-bit mode로 매핑되는 규칙을 고정 |
75
77
| binary manual setup reload 테스트 | 통과 | override autosetup 변경 시 disassembly 재로드 필요 여부를 고정 |
76
78
| project export archive 테스트 | 통과 | ZIP 엔트리가 절대경로를 포함하지 않고 `sourceFilePath`, `baseFolder/...`로 묶이는지 확인 |
0 commit comments