소개
modernGraphTool은 주파수 응답 (Frequency Response, FR) 데이터를 시각화하고 분석하기 위해 설계된 최신 웹 기술 기반의 단일 페이지 애플리케이션 (Single Page Application, SPA)입니다.
왜 modernGraphTool인가요?
modernGraphTool은 지난 2019년에 등장하여 오랫동안 주파수 응답 데이터 시각화의 표준 도구처럼 사용되어 온 CrinGraph로부터 직접적인 영감을 받았습니다. 지금까지도 CrinGraph는 FR 데이터를 시각화하고 비교하는 데 널리 사용되며 많은 사랑을 받고 있습니다.
하지만 시간이 흐르면서 데이터베이스를 운영하던 관리자들은 점차 더 복잡하고 다양한 기능들을 필요로 하게 되었습니다. 자신만의 선호도가 반영된 커스텀 HRTF 타겟이 가장 대표적인 예시라고 할 수 있겠네요.
아쉽게도 CrinGraph는 초기 설계 단계에서 높은 확장성을 염두에 두지 않았기 때문에, 관리자들이 저마다 필요한 기능을 추가하는 과정에서 수많은 파생 버전이 생겨나는 파편화 문제가 발생하게 되었습니다.
이는 프로그램 유지보수를 어렵게 만들었으며, 프로그래밍 지식이 부족한 사용자가 새로운 기능을 추가하거나 다른 버전의 기능을 가져오는 것을 거의 불가능하게 만들었습니다.
modernGraphTool은 바로 이러한 문제들을 해결하고, CrinGraph의 핵심적인 장점은 계승하면서도 최신 프로그래밍 기법과 모듈화된 설계를 도입하여 안정성과 확장성을 크게 높이는 것을 목표로 합니다.
핵심 원칙
확장 기능 중심의 설계
modernGraphTool의 가장 큰 특징 중 하나는 'Core'와 'Extension'으로 분리된 아키텍처에 있습니다.
- Core: 주파수 응답 데이터 처리, 그래프 시각화를 비롯한 핵심 기능을 제공합니다.
- Extension: AutoEQ, 타겟 선호도 조절 도구와 같은 부가 기능들이 독립적인 모듈 형태로 구현됩니다. 사용자는 필요에 따라 Extension을 안전하게 추가하거나 제거할 수 있습니다.
기존 CrinGraph 방식에서는 모든 기능이 단일 스크립트에 통합되어 있어 작은 실수 하나가 프로그램 전체의 오작동으로 이어질 수 있었습니다.
반면, modernGraphTool에서는 배경 지식이 없는 사용자도 쉽게 기능을 추가하거나 제거할 수 있으며, 잘못된 Extension이 추가되더라도 Core 기능에는 영향을 미치지 않도록 설계되었습니다.
사용하기 쉬운 디자인
일부 CrinGraph 파생 버전들은 다양한 기능들이 추가되는 과정에서 UI가 복잡해지는 문제가 있었습니다.
특히 수평 방향으로 길게 이어지는 스크롤 영역이 여럿 배치되는 부분들은 모바일 환경에서의 사용성을 저하하기도 합니다.
modernGraphTool은 강력한 확장성을 제공하는 동시에, 데스크톱과 모바일 환경 모두에서 직관적이고 편리하게 사용할 수 있도록 사용자 인터페이스(UI)와 사용자 경험(UX) 설계에 중점을 두었습니다.
기존 프로그램과 호환성
modernGraphTool은 기존 CrinGraph에서 사용하던 FR 데이터의 폴더 구조와 파일 형식을 완벽하게 지원합니다.
따라서 기존에 사용하던 CrinGraph의 데이터를 그대로 modernGraphTool에 불러와서 사용할 수 있으며, Extension을 통해 squig.link
와의 호환성도 보장됩니다.
특징
주파수 응답 그래프 시각화
- 정규화 기능 - (Hz / Midrange Average (300Hz~3kHz))
- 스무딩 기능 - (1/48oct ~ 1/3oct)
- Extension을 통한 커스텀 HRTF 타겟 지원 (틸트 & 선호도 조정 기능 포함)
헤드폰 / 타겟 선택 도구
- 이름 및 브랜드를 통한 검색 기능
- 헤드폰 및 타겟 보정 기능
- CrinGraph 파일 구조와 호환 (phone_book & target_manifest)
그래프 도구
- URL 공유 기능 (+ Base62 인코딩 지원)
- 주파수 응답 그래프 스크린샷 기능
사용자 인터페이스 & 커스터마이즈 기능
- 다국어 지원 & 다크 모드 지원
- 사용자 설정 가능한 요소 (링크, 워터마크 등)
- 'Material Design 3' 컬러 팔레트 기반
확장성
- API 기반의 Extension 시스템
- Extension 설정 기능
사용 가능한 확장 기능
해당 섹션에서는 modernGraphTool과 함께 기본적으로 제공되는 확장 기능들을 소개합니다.
이름 | 설명 |
---|---|
device-peq | jeromeof의 devicePEQ 플러그인을 연계합니다. |
equalizer | 이퀄라이저 및 AutoEQ 기능이 포함된 패널을 추가합니다. |
frequency-tutorial | 초심자를 위한 주파수 영역 도움말을 추가합니다. |
graph-color-wheel | 그래프의 색상과 형태를 설정하기 위한 기초적인 임플란트입니다. |
preference-bound | 커스터마이징이 가능한 선호도 경계 표시 기능을 추가합니다. |
squiglink-integration | squig.link 연동 기능을 추가합니다. (다른 데이터베이스 항목 검색, 튜토리얼 등..) |
target-customizer | 틸트 및 선호도 조정 기능이 포함된 타겟 설정 패널을 추가합니다. |