콘티 입력부터 악보 검색, 실시간 이력 공유까지! 찬양팀 리더를 위한 스마트 워크플로우 도구입니다.
이 프로젝트는 흩어져 있는 찬양 악보를 곡 번호 기반으로 빠르게 찾아주고, 모든 팀원이 실시간으로 지난 콘티를 공유할 수 있도록 설계된 웹 앱입니다.
- 초고속 동기화: Google Firebase Realtime Database를 연동하여 밀리초(ms) 단위의 빠른 속도로 콘티를 저장하고 불러옵니다.
- 전체 공유: 로컬 스토리지가 아닌 중앙 DB를 사용하여 앱에 접속하는 모든 팀원이 동일한 이력을 공유합니다.
- 권한 분리: 비밀번호(Auth Key)를 아는 관리자만 서버에 기록을 저장할 수 있습니다. (팀원은 다운로드만 가능)
- 자동 로그인:
localStorage를 활용하여 비밀번호를 기기에 안전하게 기억합니다. 최초 1회 입력 후 추가 입력 없이 편리하게 사용 가능합니다. - 유연한 스킵: 비밀번호 입력창에서 취소를 누르면 서버 저장을 조용히 스킵하고 본연의 악보 다운로드 기능만 수행합니다.
- 포맷 자동 변환:
1. 제목,05.제목,685 . 제목등 사용자가 어떤 형식으로 입력하더라도 정규표현식을 통해001 제목형식으로 자동 정제하여 저장합니다. - 데이터 일관성: 모든 데이터가 규격화된 포맷으로 DB에 쌓이므로 사후 관리가 매우 용이합니다.
- 역순 저장 지원: 다운로드 순서대로 갤러리 상단에 노출되는 모바일 특성을 고려하여 '역순 저장' 기능을 제공합니다.
- 화면 꺼짐 방지: 연주나 콘티 확인 중 화면이 꺼지지 않도록
Wake Lock API를 기본 활성화합니다. - 스마트 스크롤: 악보 리스트가 길어질 경우를 대비해 하단바에 '맨 위로 🚀' 버튼을 배치했습니다.
- Frontend: HTML5, CSS3, JavaScript (Vanilla JS)
- Backend: Google Firebase Realtime Database
- Storage: 브라우저 LocalStorage (인증 및 설정 기억)
- Deployment: Vercel
-
Firebase 설정:
- Realtime Database 생성 후 '테스트 모드'로 시작합니다.
- DB 최상단에
auth_key노드를 만들고 본인만의 비밀번호를 설정합니다. - Rules 탭에서
.write권한을auth_key와 비교하도록 설정합니다.
-
소스 코드 수정:
index.html내FIREBASE_URL변수에 본인의 데이터베이스 주소를 입력합니다. (끝에/history.json포함 필수)
-
악보 업로드:
images/폴더에 곡 번호와 일치하는 이미지 파일(001.jpg,022.png등)을 업로드합니다.
본 프로젝트는 미래의 유지보수를 위해 모든 함수 상단에 아래 형식의 주석을 포함하고 있습니다.
- Input/Output: 함수의 데이터 흐름 명시
- 핵심 로직: 구현 방식 설명
- Why: '무엇을'이 아닌 **'왜 이렇게 짰는지'**에 대한 의도 기록
버그 제안이나 기능 개선 아이디어는 언제나 환영합니다! 예배 현장에서 유용하게 사용되길 바랍니다. 🙌