Files
ITOSMPiano-BachToBasics/PROJECT_MEMORY.md
T
이창현 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

3.5 KiB

ITOSM Bach to Basics 프로젝트 기록

프로젝트 소속

  • 서비스: ITOSM 피아노 학습실의 Bach to Basics 한국어판
  • 공개 주소: https://learn.itosm.co.kr
  • 운영 소스: /home/syskiller/piano/bach-to-basics
  • Gitea 저장소: syskiller/ITOSMPiano-BachToBasics
  • ITOSMGames와 game.itosm.co.kr에는 이 프로젝트 파일과 기록을 넣지 않는다.

2026-10-03 현재 상태

  • Docker의 piano-bach-frontend와 piano-bach-backend로 운영한다.
  • 로그인과 회원 가입과 비밀번호 변경과 회원 탈퇴를 지원한다.
  • 관리자 권한이 확인된 계정에만 관리자 패널 진입 버튼을 표시한다.
  • 곡별 공개 범위와 최소 회원 등급과 지정 회원 공유를 지원한다.
  • 보관함 업로드 형식은 MIDI와 MusicXML과 MXL 및 PDF다.
  • 공개 샘플은 Mutopia Project 공개 도메인 자료와 그 단계별 연습 편곡 7개다.
  • 악보 표시에는 AlphaTab과 Bravura SMuFL 글꼴을 사용한다.
  • MIDI 변환 악보에서 C6 이상의 연속 고음은 8va로 표시한다. C2 이하의 연속 저음은 8vb로 표시해 덧줄을 줄인다. 실제 재생 음높이는 바꾸지 않는다.
  • 화면과 브라우저 제목의 서비스 이름은 ITOSM 피아노 학습실이다. 왼쪽 위 표식과 설정 화면은 전용 음표 표식을 사용하며 서비스 Gitea 저장소로 연결한다.

확인된 운영 결과

  • 기존 회원 업로드 20360.mid는 보글보글이라는 제목으로 보존돼 있다.
  • 엘리제를 위하여는 입문과 쉬움과 고급 3개 버전으로 묶여 표시된다.
  • 두 미뉴에트는 각각 단순화한 양손 연습과 양손 원곡 2개 버전으로 묶여 표시된다.
  • 단계별 공개 샘플은 모두 오른손과 왼손을 포함한 피아노 독주다. 손별 연습은 연습 화면에서 선택한다.
  • 곡 목록 조회는 일시적인 연결 실패 때 한 번 재시도한다. 정상 응답을 받으면 남아 있던 연결 오류를 지운다.
  • 악보 커서는 변환된 악보의 시간 위치와 원본 템포 지도를 환산한 AlphaTab tick을 함께 사용한다. 음소거된 내부 플레이어가 위치 이벤트를 보내지 않는 경우에도 악보 렌더가 끝나면 커서를 직접 갱신한다. 확인한 AlphaTab 1.8.3을 고정해 커서 경로 변경으로 인한 재발을 막는다.
  • 전체 화면의 악보 영역은 높이의 38%를 사용한다. 최소 높이는 화면에 따라 150px에서 220px 사이로 조정한다. 악보 렌더링이 끝난 뒤 실제 높이를 측정하며 양손 보표가 영역을 넘으면 배율을 자동으로 낮춰 위아래가 잘리지 않게 한다.
  • 운영 브라우저에서 미뉴에트와 엘리제를 위하여 입문 악보의 오선과 음표 표시를 확인했다.
  • 운영 백엔드에서 MIDI와 MusicXML과 MXL 및 PDF 검증기를 모두 통과했다.
  • 프런트 타입 검사와 70개 테스트와 운영 빌드를 통과했다.

백업

  • 작업 전 DB와 수정 대상 소스: /home/syskiller/piano/backups/bach-to-basics/20261003-1545-sheet-upload
  • 악보 영역 자동 맞춤 적용 전 소스: /home/syskiller/piano/backups/bach-to-basics/20261003-1730-sheet-fit

남은 확인

  • 실제 회원 화면에서 MusicXML과 MXL 및 PDF 파일을 각각 업로드한 뒤 삭제하는 통합 검사를 추가로 수행한다.
  • 실제 USB MIDI 피아노를 연결한 모바일 또는 태블릿 Chromium 환경에서 입력 지연과 따라치기 동작을 확인한다.