<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>정간보 on 얼쑤 · Team Edo</title><link>https://team-edo.github.io/tags/%EC%A0%95%EA%B0%84%EB%B3%B4/</link><description>Recent content in 정간보 on 얼쑤 · Team Edo</description><generator>Hugo</generator><language>ko-kr</language><lastBuildDate>Sun, 08 Nov 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://team-edo.github.io/tags/%EC%A0%95%EA%B0%84%EB%B3%B4/index.xml" rel="self" type="application/rss+xml"/><item><title>쉼표가 바꾼 아리랑 음표 45개의 시작 박</title><link>https://team-edo.github.io/posts/2026/11/rests-and-note-start-time/</link><pubDate>Sun, 08 Nov 2026 00:00:00 +0900</pubDate><guid>https://team-edo.github.io/posts/2026/11/rests-and-note-start-time/</guid><description>&lt;p>아리랑의 정답 악보에서 쉼을 제외하고 남은 음의 길이를 차례로 더했더니, 전체 61개 음 중 45개의 기대 시작 시각이 앞당겨졌습니다. 차이가 가장 큰 음은 &lt;strong>약 1.67박, 96 BPM에서 약 1.04초&lt;/strong> 일찍 시작하는 것으로 계산됐습니다. 팀원이 검수된 악보를 기준으로 두 계산 방식의 기대 시각을 비교해 발견한 차이였습니다.&lt;/p>
&lt;p>얼쑤의 백엔드는 사용자가 선택한 연습 구간의 음표를 골라 채점기에 보냅니다. 채점 결과의 &lt;code>expected_pitch_id&lt;/code>는 &lt;code>NOT NULL&lt;/code>이고, 실제 음높이 행을 외래 키로 참조합니다. 정답 음이 없는 쉼은 채점용 음표 목록에서 제외하고, 곡의 음표 수와 연습 구간 번호도 &lt;code>NOTE&lt;/code>만 세는 기준에 맞췄습니다. 문제는 남은 음의 길이만으로 시간축을 다시 만들 때 생겼습니다. 음 하나의 길이는 그대로여도, 그다음 음까지 얼마나 쉬어야 하는지는 알 수 없기 때문입니다.&lt;/p></description></item><item><title>단소 악보 4곡의 DB 시드 검증</title><link>https://team-edo.github.io/posts/2026/10/verify-danso-score-seeds/</link><pubDate>Thu, 29 Oct 2026 00:00:00 +0900</pubDate><guid>https://team-edo.github.io/posts/2026/10/verify-danso-score-seeds/</guid><description>&lt;p>얼쑤에서 단소 연습 세션을 시작하려면 DB에 채점 가능한 곡이 있어야 합니다. 처음 적용할 때는 곡 테이블이 비어 있어 선택할 대상이 없었습니다. 데이터팀이 검토한 정간보 네 곡을 공통 악보 JSON으로 변환하고, DB에 처음 넣는 데이터인 시드에 담았습니다. 곡 네 개가 조회되는 것과 그 안의 음표·쉼표·시간이 원본에서 그대로 넘어오는 것은 다른 확인이었습니다.&lt;/p>
&lt;h2 id="입력과-변환-방법을-다시-찾을-수-있게-남겼다">원본과 변환 결과 대조&lt;/h2>
&lt;p>시드 SQL 머리말에 변환기의 버전, 원본과 변환 코드의 기준 시점, 입력 파일의 SHA-256을 남겼습니다. 시간이 지나도 어떤 파일로 시드를 만들었는지 대조할 수 있어야 검사를 다시 실행할 수 있습니다. 서비스에서 곡을 게시 상태로 넣기로 한 결정도 함께 기록했습니다. 그 값은 원본 악보에서 읽어 낸 값과 구분했습니다.&lt;/p></description></item><item><title>악보 이벤트 오타가 음표 번호를 밀면</title><link>https://team-edo.github.io/posts/2026/10/reject-unknown-score-event-kind/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0900</pubDate><guid>https://team-edo.github.io/posts/2026/10/reject-unknown-score-event-kind/</guid><description>&lt;p>얼쑤는 악보에서 음표를 골라 번호를 매기고, 앱이 지정한 시작 번호와 끝 번호로 연습 구간을 자릅니다. 쉼표는 악보의 시간에는 영향을 주지만 번호를 매기는 음표 목록에는 들어가지 않습니다. 저장된 이벤트를 읽을 때는 그래서 &lt;code>kind&lt;/code>가 &lt;code>NOTE&lt;/code>인 항목만 골랐습니다.&lt;/p>
&lt;p>이 필터에는 한 가지 가정이 있었습니다. &lt;code>NOTE&lt;/code>가 아닌 항목은 모두 알고 있는 다른 이벤트라는 가정입니다. 실제로는 &lt;code>Note&lt;/code>라는 오타도 같은 방식으로 빠집니다. 중간 음표 하나가 빠진 뒤에도 요청 범위가 남은 음표 수 안에 있다면, 뒤의 번호는 하나씩 밀리고 서버는 다른 음을 골라 응답할 수 있습니다.&lt;/p></description></item></channel></rss>