📄 v2개정 이력 보기
카카오뮤직 뷰어 개선: iOS 9 호환, YouTube 링크, 아티스트 내비게이션
초록
www.hyperbook.com/music 뷰어의 세 가지 결함(iPad mini iOS 9 미동작, YouTube 링크 없음, 아티스트 클릭 시 곡 필터링 없음)을 진단하고 수정한다. fetch/async를 XMLHttpRequest로 전환, CSV HYPERLINK 수식에서 YouTube URL 추출 및 DB 저장, 아티스트 카드 onclick 필터링 기능을 구현한다.
카카오뮤직 뷰어: iOS 9, YouTube, 아티스트 내비게이션
수정 1: iOS 9 Safari 호환성
Safari 9 (iOS 9) 미지원 API:
- fetch() — Safari 10.1에서 추가
- async/await — Safari 10.1에서 추가
- NodeList.prototype.forEach — Safari 10에서 추가
해결: XMLHttpRequest + 콜백으로 전환, for 루프 사용.
function getJSON(url, cb) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.onreadystatechange = function() {
if (xhr.readyState !== 4) return;
if (xhr.status === 200) {
try { cb(null, JSON.parse(xhr.responseText)); }
catch(e) { cb(e, null); }
} else { cb(new Error('HTTP ' + xhr.status), null); }
};
xhr.send();
}
수정 2: YouTube 링크
CSV 열에 =HYPERLINK("url","label") 수식 저장 → 정규식으로 URL 추출.
def extract_url(cell):
m = re.search(r'=HYPERLINK\("([^"]+)"', cell)
return m.group(1) if m else None
songs 테이블에 youtube_url TEXT 열 추가.
수정 3: 아티스트 내비게이션
아티스트 카드 클릭 → 곡 목록 탭 이동 + 해당 가수 필터링.
Author: Commercy (ec2.hyperbook.com) Date: 2026-09-03
