변경 이력
Modan2의 모든 주요 변경 사항이 여기에 문서화되어 있습니다.
이 프로젝트는 유의적 버전 관리 를 따릅니다.
버전 0.1.5-alpha.1 (2025-09-11)
추가
JSON+ZIP 데이터셋 패키징 시스템
새로운 내보내기/가져오기 형식을 사용한 완전한 데이터셋 백업 및 공유
확장된 메타데이터(와이어프레임, 폴리곤, 베이스라인, 변수)를 포함한 JSON 스키마 v1.1
이미지 및 3D 모델 파일을 지원하는 ZIP 패키징
구조화된 파일 레이아웃 (dataset.json, images/, models/)
무손실 양방향 데이터 보존
보안 및 안정성 기능
Zip Slip 공격 방어 시스템
트랜잭션 기반 가져오기 (실패 시 자동 롤백)
파일 무결성 검증 (MD5 체크섬)
안전한 ZIP 압축 해제 (
safe_extract_zip()
)JSON 스키마 검증 및 오류 보고
새로운 API 함수 (MdUtils.py)
serialize_dataset_to_json()
- 데이터셋을 JSON 구조로 직렬화create_zip_package()
- 파일 수집 및 ZIP 패키징import_dataset_from_zip()
- 안전한 ZIP 기반 데이터셋 가져오기collect_dataset_files()
- 데이터셋 관련 파일 경로 수집estimate_package_size()
- 패키지 크기 추정validate_json_schema()
- JSON 스키마 검증
사용자 인터페이스 개선
내보내기 대화 상자에 “JSON+ZIP 패키지” 옵션 추가
“이미지 및 모델 파일 포함” 토글
실시간 파일 크기 추정 표시
가져오기 대화 상자에서 JSON+ZIP 형식 지원
진행 상황 콜백을 통한 진행률 추적
변경
기존 내보내기 형식 유지
TPS, NTS, Morphologika, CSV/Excel 형식 계속 지원
완전한 백업을 위한 추가 옵션으로 JSON+ZIP 제공
개선된 파일 명명 규칙
ZIP 내부 파일은 충돌 방지를 위해
<object_id>.<ext>
형식 사용플랫폼 독립성을 위한 상대 경로 사용
데이터베이스 처리 개선
자동 중복 데이터셋 이름 해결 (“Dataset (1)”, “Dataset (2)” 등)
최적화된 변수 매핑 및 랜드마크 처리
수정
크로스 플랫폼 호환성
한국어 파일명을 위한 UTF-8 인코딩
Windows, macOS, Linux를 위한 통합 경로 처리
파일 시스템 안전성 검증 추가
메모리 및 성능 최적화
대용량 파일에 대한 스트리밍 처리
안전한 임시 파일 정리 (컨텍스트 매니저)
오류 발생 시 부분 가져오기 방지
버전 0.1.4 (2025-09-10)
추가
CI/CD 및 빌드 시스템
GitHub Actions 워크플로우 (자동 빌드, 테스트, 릴리스)
크로스 플랫폼 빌드 지원 (Windows, Linux, macOS)
PyInstaller 기반 자동화 빌드 스크립트 (
build.py
)빌드 번호 시스템 및 중앙 집중식 버전 관리 (
version.py
)
테스트 인프라
pytest 기반 자동화 테스트 시스템 (229개 테스트, 13개 모듈)
테스트 카테고리: 단위, 통합, 성능, GUI, 워크플로우
PR에 대한 자동 테스트를 통한 CI 통합
테스트 커버리지 분석 도구
UI/UX 기능
오버레이 드래그 및 모서리 스냅 기능
오버레이 제목 표시
스플래시 화면 (빌드 정보 및 저작권)
3D 랜드마크 인덱스 표시 복원 (GLUT 사용)
개선된 툴바 버튼 상태 관리
TreeView 사용성 개선
읽기 전용 열 컨텍스트 메뉴
문서
한국어 README (
README.ko.md
)개발 가이드 문서 (CLAUDE.md, GEMINI.md)
릴리스 가이드 및 버전 관리 문서
Windows Defender 안내 문서
상세 개발 로그 (devlog 디렉터리)
국제화 (i18n)
대폭 개선된 한국어 번역
즉시 언어 설정 적용
프로젝트 관리
정제된 requirements.txt (테스트 및 검증된 의존성)
Python 3.11+ 지원
OpenGL 구현 개선 (폰트 렌더링)
변경
코드 리팩토링
모듈화된 색상 상수 (MdConstants.py)
통합 아이콘 경로 관리
표준화된 로깅 시스템
최적화된 import 문
분석 시스템
PCA/CVA/MANOVA 안정성 개선
분석 중 향상된 진행 표시기
개선된 오류 처리 및 보고
UI 동작
일관된 대화 상자 동작
데이터 변경 후 자동 새로고침
더 직관적인 키보드 단축키
수정
중요 버그
데이터셋 가져오기/내보내기 인코딩 문제
3D 뷰어 충돌
TreeView 업데이트 타이밍 문제
분석 결과 캐싱 문제
플랫폼별 문제
WSL/Linux Qt 플러그인 오류 (fix_qt_import.py 추가)
OpenGL 버전 호환성
다양한 플랫폼에서의 폰트 렌더링
데이터 무결성
랜드마크 좌표 정밀도 유지
와이어프레임/폴리곤 데이터 보존
분석 결과 일관성
이전 버전
버전 0.1.3
최초 공개 릴리스
기본 2D/3D 랜드마크 지원
PCA, CVA, MANOVA 분석
TPS/NTS 파일 가져오기
Peewee ORM을 사용한 SQLite 데이터베이스
버전 0.1.2
3D 모델 지원 추가 (OBJ, PLY, STL)
개선된 2D/3D 뷰어
데이터셋 계층 구조
버전 0.1.1
기본 형태계측 분석
Procrustes 중첩
간단한 데이터 관리
버전 0.1.0
최초 개발 버전
개념 증명
향후 기능
향후 릴리스 계획
결측 랜드마크 지원 (3-5단계)
고급 대치 방법 (TPS 워핑, 회귀)
추정 위치에 대한 신뢰 구간
불확실성 정량화를 위한 다중 대치
결측 인식 통계 방법 (PPCA, EM 기반 CVA)
향상된 분석
부분 최소 제곱법 (PLS)
계통 발생 비교 방법
형태 다양성 분석
비대칭 분석
사용자 인터페이스
다크 모드 테마
사용자 정의 가능한 툴바
고급 플롯 사용자 정의
대화형 3D 랜드마크 편집
성능
GPU 가속 Procrustes
대용량 데이터셋을 위한 지연 로딩
캐싱 개선
병렬 처리 지원
통합
R 통합 (geomorph, Morpho로 내보내기)
스크립팅을 위한 Python API
명령줄 인터페이스
플러그인 시스템
전체 로드맵 및 기능 요청은 GitHub Issues 페이지를 참조하세요.