20 Commits
Author SHA1 Message Date
이창현 75ea54699d 요청과 맞지 않는 연습곡 30개를 철회함
CI / Frontend - type-check & test (push) Canceled after 0s
부르크뮐러와 슈만 연습곡 30개의 공개 등록과 MIDI 및 원본·생성 자료를 제거했다. 정확한 파일명만 제외 목록에 넣어 재시작 후 재등록을 막았다. 회원 업로드와 기존 기본 샘플은 유지했다.

운영 백업: /home/syskiller/piano/backups/bach-to-basics/20261009-withdraw-practice-30. 격리 테스트 5개 통과. 운영 재시작 뒤 HTTPS 목록과 DB 및 파일에서 철회곡 0개를 확인했다. 회원 업로드 2건과 기존 기본 샘플 7개 보존.
2026-10-09 23:51:57 +09:00
이창현 8298f5af26 서로 다른 연습곡 30개에 도입부와 마무리를 추가함
CI / Frontend - type-check & test (push) Canceled after 0s
비슷한 임시 연습곡 다섯 개를 교체했다. 부르크뮐러와 슈만 원본 30곡의 출처와 권리 정보를 보존했다. 각 MIDI에 양손 연습용 도입부와 마무리를 넣고 난이도를 음표 밀도로 분류했다.

MIDI 구조 검사 30개와 서버 격리 테스트 5개를 통과했다. 운영 백업: /home/syskiller/piano/backups/bach-to-basics/20261009-practice-30-intro-ending. 백엔드만 운영에 반영했고 HTTPS 공개 목록과 30개 다운로드를 확인했다. 회원 업로드 2건은 보존됐다. 실제 건반 연주감 검사는 남아 있다.
2026-10-09 23:25:37 +09:00
이창현 89f66c3bee 초보자용 1분 양손 MIDI 연습곡 다섯 개를 추가함
CI / Frontend - type-check & test (push) Canceled after 0s
직접 만든 연습곡 다섯 파일을 공개 보관함에 등록했다. 별빛 계단은 입문과 쉬움 두 단계로 제공한다.

MIDI 파서 검사와 백엔드 단위 테스트 5개를 통과했다. 운영 백업은 /home/syskiller/piano/backups/bach-to-basics/20261009-beginner-midi 에 있다. 백엔드만 갱신했고 비회원 목록과 다운로드를 확인했다. 실제 USB MIDI 장치 검사는 남아 있다. 사전 훅은 로컬 pnpm 의존성 불일치로 실행되지 않아 관련 검사를 직접 수행했다.
2026-10-09 23:06:17 +09:00
이창현 3721d6296f 피아노 학습 서비스 최종 선택을 기록함
CI / Frontend - type-check & test (push) Canceled after 0s
Bach to Basics를 최종 사용 프로그램으로 확정하고 포럼 안내 기준 주소를 기록했다.
Discourse 포럼 작업방에 소개와 용도별 게시 공간 구성을 요청했다.

검사: 문서 차이 검사 통과
운영 반영: 코드와 DB 변경 없음
백업: 기존 운영 백업 유지
남은 일: 포럼 작업방의 실제 반영 결과 확인
2026-10-04 20:45:32 +09:00
이창현 d5d83c48f8 양손 악보가 잘리지 않도록 화면을 맞춤
CI / Frontend - type-check & test (push) Canceled after 0s
전체 화면의 악보 영역을 넓히고 렌더링된 악보 높이에 따라 배율을 자동으로 맞춘다.
모바일 가로 화면에서는 최소 높이를 줄여 다른 연습 영역을 지나치게 가리지 않도록 했다.

검사: 프런트 타입 검사, 전체 70개 테스트, Docker 운영 빌드, 데스크톱·태블릿·모바일 가로 화면 확인
운영 반영: 완료
백업: /home/syskiller/piano/backups/bach-to-basics/20261003-1730-sheet-fit
2026-10-03 17:39:24 +09:00
이창현 92bc93c01b 악보 진행과 연습곡 분류를 바로잡음
CI / Frontend - type-check & test (push) Canceled after 0s
양손 악보를 피아노 독주로 통일하고 난이도 정렬과 곡 목록 통신 복구를 보완했다.
재생 위치에 맞춰 악보 커서와 화면이 이동하도록 고쳤으며 높은음과 낮은음에는 8va와 8vb 표기를 적용했다.
상단 브랜드와 저장소 링크를 ITOSM 피아노 학습실 기준으로 바꿨다.

검사: 프런트엔드 테스트 67건 통과, 백엔드 테스트 4건 통과, 타입 검사와 빌드 통과, Docker 재빌드와 운영 화면 확인
운영 반영: 완료
백업: /home/syskiller/piano/backups/bach-to-basics/20261003-1635-classification-scroll
2026-10-03 16:56:26 +09:00
이창현 0522e48013 곡 보관함과 악보 학습 기능을 보완
업로드 형식을 MIDI와 MusicXML과 MXL 및 PDF로 확장하고 파일별 검증을 추가했다.

AlphaTab 악보 자산과 Nginx MIME 설정을 보완해 운영에서 오선과 음표가 표시되도록 수정했다.

공개 도메인 클래식과 난이도별 연습 편곡 7개를 같은 제목별로 묶고 출처와 운영 검증 결과를 문서화했다.

검사: TypeScript 검사와 Vitest 67개 및 Vite 운영 빌드 통과. 운영 브라우저 악보 표시와 네 가지 업로드 검증 형식 확인.
백업: /home/syskiller/piano/backups/bach-to-basics/20261003-1545-sheet-upload
운영 반영: 완료
2026-10-03 16:15:00 +09:00
이창현 c918f02685 회원 메뉴 진입 방법을 문서에 추가한다
CI / Frontend - type-check & test (push) Canceled after 0s
곡 보관함과 로그인·가입과 관리자 버튼의 역할을 설명했다. 모바일 두 줄 배치와 PWA 갱신 방법도 기록했다. 검사: Prettier 적용과 diff 검사 통과.
2026-10-03 11:04:50 +09:00
이창현 1bf351c03e 모바일 회원 버튼 문구를 줄인다
CI / Frontend - type-check & test (push) Canceled after 0s
390픽셀 화면에서도 회원 진입 목적이 잘리지 않도록 로그인·가입으로 표시했다. 접근성 설명은 로그인 또는 회원 가입으로 유지한다. 검사: ESLint와 프런트엔드 프로덕션 빌드 통과.
2026-10-03 11:01:14 +09:00
이창현 407b453871 모바일 회원 메뉴 배치를 바로잡는다
좁은 화면에서 첫 줄에는 회원 메뉴를 두고 둘째 줄에는 화면 전환과 MIDI 장치를 배치했다. 앱 이름은 모바일에서 아이콘으로 줄여 로그인과 회원가입 및 관리자 버튼이 화면 밖으로 밀리지 않게 했다. 검사: ESLint와 프런트엔드 프로덕션 빌드 통과.
2026-10-03 10:58:02 +09:00
이창현 fd225c2565 회원 메뉴와 관리자 진입을 상단에 표시한다
곡 보관함과 로그인·회원가입과 관리자 버튼을 항상 보이도록 분리했다. 관리자 버튼은 권한에 따라 로그인 화면 또는 회원 관리 화면으로 이동한다. PWA 시작 문서와 서비스 워커의 캐시 정책을 보완해 배포 뒤 예전 화면이 오래 남지 않게 했다. 검사: pnpm 9 lint-staged와 프런트엔드 프로덕션 빌드 통과.
2026-10-03 10:53:28 +09:00
이창현 9770387591 프로젝트 운영 이름과 MusicXML 지원을 기록한다
CI / Frontend - type-check & test (push) Canceled after 0s
독립 프로젝트 이름과 새 Gitea 저장소 위치를 문서에 반영했다. 표준 .musicxml 확장자 지원과 관리자 곡 목록 후속 작업도 남겼다.
2026-10-03 08:20:49 +09:00
이창현 9926cd24da 백엔드에서 MusicXML 표준 확장자를 허용한다
CI / Frontend - type-check & test (push) Canceled after 0s
MusicXML 변환 API가 .musicxml 파일도 .xml 및 .mxl과 같은 방식으로 처리하도록 확장자 검사와 설명을 맞췄다.
2026-10-03 08:08:27 +09:00
이창현 b51da176a1 MusicXML 표준 확장자를 지원한다
파일 선택 목록과 가져오기 분기에서 .musicxml 확장자를 .xml 및 .mxl과 동일하게 처리한다. 한국어 파일명의 MusicXML 악보를 실제로 불러올 수 있도록 제목 정리 규칙도 맞췄다.
2026-10-03 07:59:20 +09:00
이창현 a69c5362c3 Bach 설치 문서와 남은 번역을 정리한다
설치와 보안 및 업데이트와 복구 절차를 기록하고 실제 모바일 검수에서 남은 설정 문구를 한국어로 보완한다.
2026-10-03 07:50:28 +09:00
이창현 25bad109a4 고급 설정의 한국어 설명을 보완한다
실제 브라우저에서 확인한 화면 색상과 건반 및 재생과 연습 설정의 보조 문구를 자연스러운 한국어로 정리한다.
2026-10-03 07:47:31 +09:00
이창현 b4d08a0839 pnpm 버전을 공식 CI와 맞춘다
잠금 파일과 호환되지 않는 최신 주 버전 대신 공식 CI와 같은 pnpm 9를 사용해 Docker 빌드를 안정화한다.
2026-10-03 07:39:42 +09:00
이창현 ba887cc6f9 Bach 운영 컨테이너 보안을 강화한다
백엔드는 내부 네트워크에만 두고 Docker 비밀 파일의 API 키를 프록시에서 주입한다. 프론트엔드는 루프백 포트 18102만 사용한다.
2026-10-03 07:32:36 +09:00
이창현 7679397074 모바일과 태블릿 화면을 보완한다
동적 화면 높이와 터치 영역을 적용하고 좁은 화면에서 헤더와 조작 막대가 겹치지 않도록 조정한다.
2026-10-03 07:32:36 +09:00
이창현 7b864afc49 피아노 학습 화면을 한국어로 제공한다
화면 문구와 도움말 및 PWA 정보를 별도 한국어 리소스로 구성한다.
2026-10-03 07:32:36 +09:00