Repository navigation
Releases
MyDiary v2.6.0
🎉 MyDiary v2.6.0 릴리즈 노트
버전:
v2.6.0(AndroidversionCode: 10)
설치 파일: 하단 Assets에서MyDiary-v2.6.0.apk를 다운로드하여 설치하세요.
✨ 주요 개선 사항
1. 전 화면 동적 테마 반응성 복구
- 8개 화면(
HomeScreen,WeeklyPlanScreen,CalendarScreen,StudentListScreen,SettingsScreen,StudentDetailScreen,ClassRecordScreen,HelpScreen) 및 공용 컴포넌트(Separator,ConfirmModal)의 스타일을useMemo기반 동적 생성 구조로 전환했습니다. - [설정]에서 테마 프리셋을 변경하면 앱 전체 화면에 즉시 반영됩니다.
2. 시간 피커 통합 및 오전 12시 버그 수정
ClassRecordScreen의 중복 인라인 시간 피커를 제거하고 공용TimePickerModal로 통합하여 일관된 시간 선택 UX를 제공합니다.
3. 주간시간표 모바일 UX 강화
- 타임라인 뷰 진입 시 오늘 요일로 자동 포커스되며, 주간 전체 표 헤더 및 요일 탭에 오늘 날짜 강조 스타일을 적용했습니다.
- 주간 표 열 너비(
68 → 76) 및 셀 글자 크기를 확대하여 모바일 가독성을 높였습니다. - 다중 연락처가 매칭되는 경우 통화할 번호 선택창을 표시하도록 개선했습니다.
4. 학생 상세 입력 안정성 및 오프라인 배너
StudentDetailScreen에 미저장 변경사항이 있을 때 뒤로가기 시 이탈 방지 확인 모달을 추가했습니다(저장/삭제 및 휴회·재수강 즉시 저장 시 정상 이동).- 외부 URL 기반 배너를 오프라인 테마 반응형 배너 카드로 교체해 오프라인 환경에서도 안정적으로 표시됩니다.
- 신규 학생 등록 시에도 초기 수강 상태(
재원/휴회)를 선택할 수 있습니다.
5. 공통 모달 2종 분리 및 구조 경량화
RecordPrintModal,ScheduleEditModal을 공용 모달 컴포넌트로 분리하고 이름·학교·전화번호 확장 검색을 지원합니다.WeeklyPlanScreen의 코드 규모를 경량화(2,765줄 → 2,097줄)해 유지보수성을 높였습니다.
✅ 품질 검증
- ESLint: 0 errors, 0 warnings
- Jest 단위 테스트: 6개 스위트, 33개 테스트 전체 통과
- 프로젝트 건전성 감사: 100점 / 100점
📦 변경 이력
- 스타일 및 UX 개선: 동적 테마 반응성 복구, 주간시간표·학생상세 사용성 강화 및 공통 모달 2종 분리 by @sbjwin in #7
- 설정: CodeRabbit PR 코드 리뷰 규칙 고도화 및 AGENTS.md 연동
- 정리: v2.6.0 릴리즈 마일스톤 버전 5개 파일 동기화 및 릴리즈 노트 반영
Full Changelog: v2.5.0...v2.6.0
MyDiary v2.5.0
🌟 MyDiary v2.5.0 릴리즈 안내
MyDiary v2.5.0은 사용자의 입력 편의성과 사용성을 대폭 끌어올린 메이저 UX 개선 릴리즈입니다.
소프트웨어 키보드 활성화 시 입력창이 가려지던 불편을 앱 전반에서 완전 해결하였으며, 날짜와 시간을 손쉽게 입력할 수 있는 직관적인 GUI 피커와 주간시간표 터치 인터랙션을 새롭게 선보입니다.
🚀 주요 변경 사항 (What's New)
1. ⏰ 공통 시간 선택 모달(TimePickerModal) 신설 및 GUI 피커 도입
- 빠른 시간 프리셋(오전 9시, 오후 2시 등), 오전/오후 탭 전환, 시/분 그리드 선택을 지원하는 직관적인 GUI 시간 피커를 공통 모듈로 신규 구축했습니다.
- 키보드로 일일이 타이핑하지 않고 몇 번의 터치만으로 수업 시작 시간을 손쉽게 지정할 수 있습니다.
2. 📅 인라인 달력(Calendar) 피커 전면 적용
- 학생 상세 화면: 최초 수강 시작일(입회일)에 인라인 달력 피커를 연동하여 오타를 원천 방지하고 정규 수업 시간 등록 시 새 시간 피커를 지원합니다.
- 학생 상태 관리 모달: 휴회 종료일 및 재수강 시작일 입력란에 인라인 달력을 적용하여 날짜 선택 편의성을 극대화했습니다.
3. 👆 주간시간표 다중 학생 셀 개별 터치 인터랙션 지원
- 주간 전체 표(Table 뷰)에서 동일 시간대에 2명 이상의 학생이 배정된 경우, 각 학생 카드(
cellItemBox)를 개별 터치하여 해당 학생의 일정을 바로 편집할 수 있도록 분리했습니다. - 셀 빈 영역 터치 시 새 수업 추가 모달이 즉시 열리도록 터치 영역을 정밀화했습니다.
4. ⌨️ 소프트웨어 키보드 가림 현상 5곳 완전 해결
- 하단 탭바 자동 숨김: 키보드 노출 시 하단 탭바가 입력 영역을 침범하지 않도록
tabBarHideOnKeyboard를 전면 적용했습니다. - 자동 스크롤 및 상단 배치:
- 주간시간표 하단 부가업무(금주 주요사항, 결석, 메모) 및 수업 편집 모달의 키보드 높이 연동 자동 스크롤(
scrollToEnd) 적용 - 학생 상세 화면 하단 고정 저장 바 자동 숨김 및 과목/비고 입력 시 자동 스크롤 연동
- 일정 검색 모달, 학생 상담 기록 모달, 상태 변경 모달이 키보드에 가려지지 않도록 상단 동적 배치 전환
- 주간시간표 하단 부가업무(금주 주요사항, 결석, 메모) 및 수업 편집 모달의 키보드 높이 연동 자동 스크롤(
5. 🎯 접근성 및 터치 영역 강화
- 피커 및 버튼의 최소 터치 영역을 44dp 이상 확보하여 터치 미스를 방지하고 달력 선택 가독성을 대폭 개선했습니다.
🧪 품질 및 안정성 지표
- 올인원 품질 게이트 (
npm run gate): 100% 통과 - Jest 단위 테스트: 6개 스위트, 31개 단위 테스트 100% 통과
- 정기 프로젝트 건전성 정밀 감사: 96점 / 100점 달성
- ESLint 무결성: 에러 0건, 경고 0건
🔗 상세 변경 내역 (Changelog)
Full Changelog: v2.4.2...v2.5.0
MyDiary v2.4.2
🚀 MyDiary v2.4.2 릴리즈 안내
이번 v2.4.2 업데이트에서는 주간시간표 학생 선택 모달의 키보드 가림 현상을 완전히 해결하고, 3종의 공통 UI 컴포넌트를 새롭게 구축하여 앱 전반의 성능과 코드 무결성을 한 단계 끌어올렸습니다.
📱 주요 업데이트 내역 (What's New)
1. 주간시간표 학생 선택 모달 반응형 UX 개선
- 키보드 자동 적응형 레이아웃: 소프트웨어 키보드가 올라올 때 학생 검색창과 목록이 가려지던 문제를 해결했습니다. 실시간 키보드 높이를 추적하여 화면 중앙 다이얼로그에서 상단 확장형 스크롤 뷰로 부드럽게 전환됩니다.
- 원클릭 검색어 즉시 초기화: 검색창에 입력 내용을 한 번에 지울 수 있는 원클릭 삭제(
✕) 버튼을 추가했습니다. - 스마트 자동화: 모달이 열릴 때 이전 검색어를 자동 초기화하고, 학생 선택 즉시 키보드가 자동으로 닫히도록 사용성을 최적화했습니다.
2. 공통 UI 컴포넌트 3종 신설 및 코드 슬림화
ActionMenuItem: 공유, 인쇄, 관리 모달의 리스트 아이템 UI(아이콘 뱃지, 설명, 화살표)를 컴포넌트화하여 일관된 터치 인터랙션을 제공합니다.StatusBadge: 수업 상태(예정/완료) 및 학생 재원 상태(재원/휴회)를 시맨틱 디자인 토큰과 완벽히 연동했습니다.FloatingActionButton: 원형 및 텍스트 라벨이 포함된 확장형(Extended) 플로팅 추가 버튼을 통합했습니다.- 화면별 중복 스타일 및 데드 코드 586줄 대규모 정리:
StudentDetailScreen,StudentListScreen,ClassRecordScreen등의 복잡도를 대폭 줄여 앱 반응 속도를 향상했습니다.
🛡️ 품질 검증 및 시스템 건전성
- ESLint 무결성 검사: 에러 0건, 경고 0건 (100% 무결점 통과)
- Jest 단위 테스트: 6개 테스트 스위트, 30개 단위 테스트 전체 통과 (100% PASS)
- 정기 프로젝트 건전성 감사: 96점 / 100점 획득 (하드코딩 색상 17건 감축)
📥 설치 및 업데이트 방법
- 아래 Assets 항목의
MyDiary-v2.4.2.apk(빌드 완료 후 자동 생성) 파일을 다운로드하여 스마트폰에 설치하시면 됩니다. - 기존 사용자분들은 데이터를 그대로 유지하면서 안전하게 덮어쓰기 업데이트하실 수 있습니다.
MyDiary v2.4.1
Full Changelog: v2.4.0...v2.4.1
MyDiary v2.4.0
🌟 MyDiary v2.4.0 릴리즈 안내
MyDiary v2.4.0에서는 5가지 테마 프리셋의 실시간 동적 반영, 공통 아키텍처 모듈화, 그리고 프로젝트의 지속 가능한 품질 관리를 위한 **정기 감사 하네스(Project Audit Harness)**가 새롭게 도입되었습니다.
🎨 주요 변경 사항 (What's New)
1. 5대 테마 프리셋 전면 실시간 연동 (Dynamic Theming)
- 앱 내 전체 화면(일지 작성, 학생 관리, 백업/복원, 도움말, 통계 리포트 등)이
useTheme()훅을 통해 실시간 반응형으로 전환되었습니다. - 사용자가 설정에서 테마를 변경하는 즉시 앱 재시작 없이 5가지 감성 테마가 완벽하게 적용됩니다:
- 🌿 포레스트 세이지 (Forest Sage) - 편안하고 자연스러운 그린
- 🌊 오션 블루 (Ocean Blue) - 청량하고 시원한 블루
- 💜 로열 라벤더 (Royal Lavender) - 우아하고 세련된 퍼플
- 🌅 웜 선셋 (Warm Sunset) - 따뜻하고 아늑한 코랄 웜톤
- 🌑 클래식 슬레이트 (Classic Slate) - 단정하고 깔끔한 기본 모던 톤
2. 공통 컴포넌트 및 유틸리티 아키텍처 모듈화
- 공통 유틸리티:
dateUtils(날짜 포맷팅 및 요일 계산),stringUtils(텍스트 말줄임 및 서식 처리) 중앙화로 코드 중복을 대폭 제거했습니다. - 재사용 컴포넌트: 일관된 구분선(
Separator) 및 안전한 확인 팝업(ConfirmModal)을 구축하여 UI 일관성과 유지보수성을 극대화했습니다.
3. 프로젝트 정기 감사 하네스 (Audit Harness) 탑재
npm run audit명령어로 프로젝트의 코드 건전성, 네이밍 규칙, 중복 컴포넌트, 보안/설정 파일을 1초 만에 자동 진단하는 하네스를 구축했습니다.- 프로젝트 건전성 점수: 96 / 100점 (A+ 등급 달성)
4. 코드 무결성 및 엄격한 품질 검증
- ESLint: 0 Errors, 0 Warnings (완전 클린 코드 달성)
- Jest 단위 테스트: 6개 테스트 스위트, 27개 테스트 케이스 100% 통과 (Pass)
📱 다운로드 & 설치 안내
- Android APK: 아래 첨부된
app-release.apk파일을 다운로드하여 스마트폰 또는 태블릿에 설치해 사용하실 수 있습니다. - 기존 v2.3.x 사용자는 데이터 유실 없이 그대로 업데이트 가능합니다.
👨💻 개발자 정보
- 개발자: 성백진 (Sung Baekjin)
- 이메일: sbjwin4271@gmail.com
- 저장소: https://github.com/sbjwin/mydiary
Full Changelog: v2.3.1...v2.4.0
MyDiary v2.3.1
🌟 MyDiary v2.3.1 업데이트 안내
이번 v2.3.1 버전에서는 안드로이드 앱의 안전하고 신속한 배포를 위한 GitHub Actions 기반 CI/CD 자동화 파이프라인이 공식 도입되었습니다.
🚀 주요 변경 사항
-
안드로이드 릴리즈 APK 자동 빌드 및 배포 (CD)
- Git 태그 기반의 완전 자동화된 APK 패키징 및 GitHub Releases 자동 등록 파이프라인 구축.
- 스마트폰에서 최신 버전의 APK를 언제든 즉시 다운로드하여 설치 가능.
-
철저한 DevSecOps 보안 아키텍처 적용
- 서명 키스토어(Keystore)의 메모리 내 안전 복원 및 빌드 직후 영구 파기(Secure Cleanup) 체계 적용.
- 외부 PR 및 비인가 접근으로부터 서명 암호 및 클라이언트 시크릿 완벽 은닉.
-
코드 품질 자동 검증 (CI Gate)
- ESLint 정적 분석 및 Jest 단위 테스트 통과 시에만 릴리즈 빌드가 생성되도록 품질 검증 강화.
-
문서 내보내기 및 데이터 안정성 유지
- 한글 표준 OWPML 양식(.hwpx) 및 MS 워드(.docx), 주간 보고서 A4 PDF 출력 기능 안정화.
- 학생 차수(Terms) 관리 및 수업 일지 연쇄 보호 알고리즘 유지.
📱 설치 안내
- 아래 Assets 영역에서
MyDiary-v2.3.1.apk파일을 다운로드하여 스마트폰에 바로 설치하실 수 있습니다.
(빌드가 완료되는 즉시 Assets에 APK 파일이 자동으로 추가됩니다.)
개발자: Sung Baekjin (성백진) · sbjwin4271@gmail.com
Full Changelog: v2.3.0...v2.3.1
MyDiary v2.3.0
🎉 MyDiary v2.3.0 릴리즈 안내
MyDiary v2.3.0에서는 학교, 교육기관 및 공공기관 실무 현장에서 가장 필수적으로 사용되는 대한민국 표준 개방형 한글 문서 포맷인 HWPX(OWPML / KS X 6101) 출력 및 파일 공유 기능이 새롭게 탑재되었습니다.
기존의 A4 인쇄, PDF 공유, 워드 문서(.docx) 공유에 이어 한글 문서(.hwpx) 공유까지 모두 완비하여, 사용하시는 모든 오피스 환경에서 보고서를 자유롭게 편집하고 제출하실 수 있습니다.
🚀 주요 신규 기능 (Highlights)
1. 주간 시간표 및 업무 보고서 HWPX(한글) 내보내기 지원
- OWPML (KS X 6101 표준) 규격을 엄격히 준수하여 제작되었습니다.
- 최상의 호환성: 한컴오피스 한글 2020 이상, 한컴독스(웹 한글), 폴라리스 오피스, 모바일 한글 뷰어에서 깨짐 없이 원본 레이아웃 그대로 열립니다.
- 주간 시간표 메인 표 (7열 × 13행):
- 요일 헤더(월~토) 및 시간대(오전 9시 ~ 오후 8시) 격자 배치
- 12시 점심시간 단일 병합 행(
colSpan="6") 적용 - 수업 카드 상세 서식(학생명, 시간, 과목, 주소, 연락처, 특이사항 메모) 완벽 렌더링
- 하단 2단 정보 표 (2열 × 1행):
- 좌측: 금주 주요사항, 전주 결석 보강, 특이사항 공지 메모
- 우측: 일요일 개별 시간표 및 수업 일정 카드
2. 인쇄 및 공유 모달 UI 개선
- [WeeklyPlanScreen]의 보고서 출력 팝업 모달에 "한글 문서 (.hwpx) 파일 공유" 메뉴 항목을 추가하였습니다.
- 한컴오피스 시그니처 오렌지 테마 뱃지 디자인을 적용하여 시각적 직관성을 높였습니다.
- 탭 한 번으로 카카오톡, 이메일, 클라우드 드라이브, 한컴오피스 앱으로 즉시 전송 가능합니다.
⚙️ 기술 및 안정성 개선 (Under the Hood)
- 순수 JavaScript 기반 경량 엔진 구축:
- 외부 무거운 네이티브 의존성이나 추가 npm 라이브러리 없이, 앱 내 기존
JSZip,expo-file-system,expo-sharing을 조합한 자체 OWPML 생성 엔진(HwpxExportService.js)을 구현하였습니다.
- 외부 무거운 네이티브 의존성이나 추가 npm 라이브러리 없이, 앱 내 기존
- 문서 파서 안정성 원천 확보:
- 표의 모든 셀(
hp:tc) 내부에 최소 1개 이상의 유효 문단(hp:p)을 보장하여 문서 열람 시 XML 파싱 에러 발생을 원천 차단하였습니다.
- 표의 모든 셀(
- 품질 검증 완비:
- Jest 단위 테스트 5개 케이스 신규 작성 및 전체 10개 테스트 100% PASS
- ESLint 정적 분석 무결점 통과
📋 주요 커밋 내역 (Changelog)
62498bafeat: 주간 시간표 한글 문서(.hwpx) 출력 및 공유 기능 추가4f29eacchore: 릴리즈 v2.3.0 (한글 HWPX 문서 출력 기능 추가 및 버전 동기화)
👨💻 Developer Information
- 개발자: Sung Baekjin (성백진)
- 문의: sbjwin4271@gmail.com
- 저장소: sbjwin/mydiary
MyDiary v2.2.0
🚀 MyDiary v2.2.0 주요 업데이트 안내
선생님의 수업 및 학생 관리 경험을 한 단계 더 끌어올리기 위해, 수강생/휴회자 차수(Terms) 관리 시스템과 시간표 재원생 전용 표기 고도화가 새롭게 도입되었습니다.
1. 🎓 수강생 / 휴회자 수강 차수(Terms) 관리 시스템 신설
- 유연한 수강 라이프사이클 지원:
- 1차 수강 종료 후 휴회(일시 정지)했다가, 추후 2차·3차 재수강으로 복귀하는 모든 과정을 데이터 모순 없이 체계적으로 기록·관리합니다.
- 무위험 데이터 자동 마이그레이션:
- 기존 학생 데이터에 수강 시작일이 없더라도, 학생의 가장 첫 번째 수업 일지 날짜(
min(class_date))를 자동으로 찾아 1차 수강 시작일로 안전하게 복원합니다.
- 기존 학생 데이터에 수강 시작일이 없더라도, 학생의 가장 첫 번째 수업 일지 날짜(
- 학생 주소록 UI 개편:
- 상단 필터 탭 제공:
[재원생]/[휴회생]/[전체] - 학생 카드 터치 한 번으로 [휴회 처리] 및 **[재수강 시작]**을 간편하게 전환할 수 있는 전용 다이얼로그 제공.
- 상단 필터 탭 제공:
- 학생 상세 정보 및 인쇄 서식 확장:
- 학생 상세 화면에서 과거 수강 차수(1차, 2차...)와 휴회 사유를 타임라인 카드로 조회.
- 학생 관리 카드 A4 출력 시 전체 수강 차수 및 등록 이력 표가 정갈하게 인쇄됩니다.
2. 📅 주간 시간표 재원생 전용 표기 및 화면 정돈
- 시간표 내 재원생 전용 표기:
- 기존 주간 계획에 남아있던 일정이더라도 현재 휴회(
status: 'paused') 중인 학생의 수업은 주간 전체 표, 요일별 타임라인, 일요일 블록, A4/PDF/Word 출력물 어디에도 나타나지 않도록 자동 제외됩니다.
- 기존 주간 계획에 남아있던 일정이더라도 현재 휴회(
- 홈 & 캘린더 당일 시간표 연동:
- 홈 대시보드와 달력 화면의 오늘 시간표에서도 휴회생의 수업 계획은 배제되어 현재 활동 중인 재원생의 수업만 표기됩니다.
- 군더더기 라벨 배제:
- 시간표는 어차피 재원생만 표시되는 공간이므로, 불필요한
[재원]/[휴회]딱지 라벨을 제거하여 수업 시간·학생 이름·과목·메모 본연의 정보에만 집중할 수 있도록 화면을 깔끔하게 정리했습니다. - 수업 추가 모달의 학생 주소록 검색 시에도 재원생만 노출됩니다.
- 시간표는 어차피 재원생만 표시되는 공간이므로, 불필요한
3. ⏱️ 시간표 편의 기능 및 양식 개선
- 시작 시간 GUI 선택 피커: 주간 시간표 수업 등록/수정 시 오전/오후 및 5분 단위 시각을 터치 한 번으로 손쉽게 선택.
- 학생 선택 가나다순(오름차순) 정렬: 학생 주소록 팝업에서 원하는 학생을 빠르게 탐색.
- 일요일 시간표 표 서식 일치: 주간 업무 보고서 A4 양식과 동일하게 하단 분리 테이블 형태로 일요일 수업 배치.
- 과목 및 연락처 자동 완성 최적화: 해당 요일의 정규 수업 과목 및 (모)/(본) 연락처 형식 자동 연동.
4. 🛠️ 안정성 및 품질 검증
- 코드 품질: ESLint 정적 검사 통과 (오류 0건, 경고 0건)
- 단위 테스트: Jest 단위 테스트 5개 전체 통과 (수강 차수 마이그레이션 및 시간표 휴회생 배제 검증 완료)
- 정식 릴리즈 서명 구성: 키스토어 서명 자동화 및 보안 분리 처리
Developer: Sung Baekjin | sbjwin4271@gmail.com
MyDiary v2.1.2
🌟 주요 하이라이트 (Highlights)
- 📅 주간 시간표 자동 완성 개선: 학생 선택 시 실제 과목 및 학생/학부모 연락처가 누락 없이 스마트하게 자동 완성됩니다.
- ⏰ 시작 시간 GUI 피커 도입: 시간/분/오전·오후 및 프리셋 칩으로 터치 한 번에 시간을 지정할 수 있습니다.
- 📄 보고서 출력 품질 향상: Word(DOCX) 주간 보고서 글자 크기, 줄간격 및 행 높이를 최적화하였습니다.
🛠️ 세부 변경 사항 (Changelog)
주간 시간표 & 입력 편의성
- [수업 과목/과정] 칸에 학교/학년 정보가 들어가던 문제 수정 (정규 과목/최근 일지 과목 우선 대입)
- 모달 내 요일 변경 시 해당 요일의 정규 수업 일정(시간/과목) 자동 연동
- 학부모/학생/자택 연락처를 명확한 라벨과 함께 줄바꿈으로 자동 입력
- 학생 선택 팝업 목록을 가나다순(오름차순)으로 정렬
서식 및 시간 표기
- Word(DOCX) 주간 보고서 테이블 행 높이 균일화 및 글자 크기/줄간격 최적화
- 주간 시간표 및 출력물에서 불필요한 결제형태 태그 정리
- 수업 일지 표시 시간을 디지털 24시간제(HH:mm) 표준 형식으로 통일
MyDiary v2.1.0
버전 릴리즈 상세 내역
- 변경 성격
feat: 주간 업무 보고서 구글 문서 / 워드(.docx) 생성 및 공유 기능 추가 (주요 기능 확장)
fix: 주간 시간표 표 시간대 비정상 확장 버그 수정 및 슬롯 매칭 최적화
refactor: 홈 화면 상단 헤더 도움말 아이콘 제거 - Semantic Versioning 판정: Minor (Y) 버전 업그레이드 대상
- 이전 버전: v2.0.0 (versionCode: 1)
- 신규 릴리즈 버전: v2.1.0 (versionCode: 2)