🌐 English|한국어

변경 이력

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 페이지를 참조하세요.