페이지 커스터마이징하기
modernGraphTool 페이지의 초기 표시 내용, 디자인 테마 등을 사용자의 필요에 맞게 변경할 수 있습니다.
주로 dist 폴더 내의 config.js, index.html, 그리고 theme.css 파일을 수정하여 페이지를 개인화하게 됩니다.
기본 설정 변경하기 (config.js)
섹션 제목: “기본 설정 변경하기 (config.js)”config.js 파일은 modernGraphTool의 동작과 관련된 다양한 설정을 담고 있습니다. 텍스트 에디터로 이 파일을 열어 필요한 부분을 수정할 수 있습니다.
INITIAL_PHONES
섹션 제목: “INITIAL_PHONES”// Brand : Sennheiser// Model : IE200// Suffix : (Foam Tip)INITIAL_PHONES: ["Sennheiser IE200 (Foam Tip)"],
// You can add multiple phones to the list.INITIAL_PHONES: ["Sennheiser IE200", "Sony IER-Z1R"],페이지 로드 시 기본으로 표시할 Phone(측정 데이터)의 이름을 배열 형태로 지정합니다.
phone_book.json에 정의된 브랜드 + 기기 이름을 사용해야 합니다.- 표시할 기기 이름에는 suffix가 포함될 수 있습니다. suffix를 지정하지 않은 경우 첫 번째 파일이 기본으로 표시됩니다.
- 여러 개의 Phone(측정 데이터)를 표시하도록 선택할 수 있습니다.
INITIAL_TARGETS
섹션 제목: “INITIAL_TARGETS”INITIAL_TARGETS: ["Harman IE 2019v2 Target"],
// You can add multiple targets to the list.INITIAL_PHONES: ["Harman IE 2019v2 Target", "KEMAR DF Target"],페이지 로드 시 기본으로 표시할 Target(타겟 커브)의 이름을 배열 형태로 지정합니다.
data/target폴더 내의 파일 이름 (확장자 제외)을 사용합니다.
INITIAL_PANEL
섹션 제목: “INITIAL_PANEL”INITIAL_PANEL: "graph",페이지 로드 시 기본으로 표시될 패널을 지정합니다.
phone,graph,misc중 하나를 선택할 수 있습니다.
NORMALIZATION
섹션 제목: “NORMALIZATION”NORMALIZATION: { TYPE: "Hz", HZ_VALUE: 500,},그래프 정규화(Normalization) 기본 설정을 지정합니다.
TYPE
섹션 제목: “TYPE”정규화 방식을 설정합니다.
Hz (특정 주파수 기준)또는Avg (300~3000Hz 평균 기준)중 하나를 선택할 수 있습니다.
HZ_VALUE
섹션 제목: “HZ_VALUE”TYPE이 ‘Hz’으로 설정된 경우, 입력된 숫자가 기본 주파수로 사용됩니다.
VISUALIZATION
섹션 제목: “VISUALIZATION”VISUALIZATION: { DEFAULT_Y_SCALE: 60, LABEL: { LOCATION: "BOTTOM_RIGHT", POSITION: { LEFT: 0, RIGHT: 0, TOP: 0, BOTTOM: 0, }, TEXT_SIZE: "20px", TEXT_WEIGHT: "600", }, RIG_DESCRIPTION: "Measured with IEC 60318-4 (711)",}그래프 시각화 관련 설정을 지정합니다.
DEFAULT_Y_SCALE
섹션 제목: “DEFAULT_Y_SCALE”Y축(dB)의 기본 표시 범위를 설정합니다.
- 40, 60, 80, 100 중 하나를 선택할 수 있습니다.
LABEL
섹션 제목: “LABEL”그래프 위에 표시될 Phone/Target 이름 라벨의 위치, 크기, 굵기 등을 설정합니다.
LOCATION: 이름 라벨 위치- ‘BOTTOM_LEFT’, ‘BOTTOM_RIGHT’, ‘TOP_LEFT’, ‘TOP_RIGHT’ 중 하나 선택
POSITION: 이름 라벨 위치 세부 조정값- ‘LEFT’, ‘RIGHT’, ‘TOP’, ‘BOTTOM’ 항목 별 조정값 입력 가능 (숫자)
TEXT_SIZE: 이름 라벨 크기 (px 단위)TEXT_WEIGHT: 이름 라벨 굵기 (100 ~ 900 중 백 단위 숫자 선택)
RIG_DESCRIPTION
섹션 제목: “RIG_DESCRIPTION”그래프 우측 상단에 표시될 측정 장비 설명을 입력합니다.
INTERFACE
섹션 제목: “INTERFACE”INTERFACE: { PREFERRED_DARK_MODE_THEME: "light", ALLOW_REMOVING_PHONE_FROM_SELECTOR: true, TARGET: { ALLOW_MULTIPLE_LINE_PER_TYPE: true, OMIT_TARGET_SUFFIX: true, }, HIDE_DEV_DONATE_BUTTON: false,},사용자 인터페이스 관련 설정을 지정합니다.
PREFERRED_DARK_MODE_THEME
섹션 제목: “PREFERRED_DARK_MODE_THEME”다크 모드 설정을 지정합니다.
light,dark,system중 선택
ALLOW_REMOVING_PHONE_FROM_SELECTOR
섹션 제목: “ALLOW_REMOVING_PHONE_FROM_SELECTOR”Phone(측정 데이터) 선택기에서 이미 추가된 항목을 다시 선택했을 때 그래프에서 제거할지 여부를 설정합니다.
true,false중 선택
TARGET
섹션 제목: “TARGET”Target 선택기 관련 설정을 지정합니다. ##### ALLOW_MULTIPLE_LINE_PER_TYPE
타입 별로 Target 목록을 여러 줄로 표시할지 여부를 설정합니다. - true, false 중 선택 ##### OMIT_TARGET_SUFFIX
각 타겟 항목마다 ‘Target’ 접두어를 생략할지 여부를 설정합니다. - true, false 중 선택
HIDE_DEV_DONATE_BUTTON
섹션 제목: “HIDE_DEV_DONATE_BUTTON”‘기부’ 버튼을 숨길지 여부를 설정합니다.
true,false중 선택
URL
섹션 제목: “URL”URL: { AUTO_UPDATE_URL: true, COMPRESS_URL: true,},AUTO_UPDATE_URL: 선택된 기기 및 타겟에 따라 URL을 자동으로 업데이트할지 여부를 설정합니다.true,false중 선택
COMPRESS_URL: URL을 압축할지 여부를 설정합니다.- 활성화 시 base62 알고리즘을 활용해 URL을 압축합니다.
true,false중 선택
LANGUAGE
섹션 제목: “LANGUAGE”LANGUAGE: { LANGUAGE_LIST: [ ["en", "English"], ["ko", "한국어"] ], ENABLE_I18N: true, ENABLE_SYSTEM_LANG_DETECTION: true,},LANGUAGE_LIST: 사용 가능한 언어 목록을 설정합니다.- 각 언어마다
["언어코드", "언어이름"]형태로 추가
- 각 언어마다
ENABLE_I18N: 다국어 지원을 활성화할지 여부를 설정합니다.- 비활성화 시 언어 선택 UI가 제거되고, 오로지 영어로만 표시됩니다.
true,false중 선택
PATH
섹션 제목: “PATH”PATH: { PHONE_MEASUREMENT: "./data/phones", TARGET_MEASUREMENT: "./data/target", PHONE_BOOK: "./data/phone_book.json",},PHONE_MEASUREMENT: Phone(측정 데이터) 파일이 저장된 폴더 경로를 설정합니다.TARGET_MEASUREMENT: Target(타겟 커브) 파일이 저장된 폴더 경로를 설정합니다.PHONE_BOOK: Phone(측정 데이터) 정보가 기록된phone_book.json파일 경로를 설정합니다.
WATERMARK
섹션 제목: “WATERMARK”WATERMARK: [ { TYPE: "TEXT", CONTENT: "© 2025 modernGraphTool", LOCATION: "BOTTOM_RIGHT", SIZE: "15px", FONT_FAMILY: "sans-serif", FONT_WEIGHT: "600", COLOR: "#000000", OPACITY: "0.4", }, // You can even put multiple TEXT or IMAGE in Array. // Randomly picked content will be rendered on every load. { TYPE: "IMAGE", SIZE: "50px", LOCATION: "TOP_LEFT", POSITION: {UP: "20", DOWN: "0", LEFT: "0", RIGHT: "10"}, OPACITY: "0.2", CONTENT: [ "./assets/images/icon_1.png", "./assets/images/icon_2.png", "./assets/images/icon_3.png", ] }],그래프에 표시될 워터마크를 설정합니다.
- 여러 개의 워터마크를 동시에 표시할 수 있습니다. 각 워터마크는
{}객체로 구분됩니다. - modernGraphTool이 지원하는 워터마크는
TEXT와IMAGE두 가지가 있습니다.- 객체 내부에
TYPE필드로 워터마크 타입을 지정합니다.
- 객체 내부에
TYPE: 워터마크 타입을 지정합니다. -TEXT로 설정. -CONTENT: 워터마크에 표시될 텍스트를 설정합니다. - 여러 개의 문자열을 배열 형태로 입력할 수 있습니다. ([]로 감쌈) - 2개 이상의 문자열이 지정된 경우, 첫 로드 시 무작위로 선정된 문자열이 표시됩니다. -LOCATION: 워터마크의 위치를 설정합니다. -TOP_LEFT,TOP_RIGHT,BOTTOM_LEFT,BOTTOM_RIGHT중 선택. -SIZE: 워터마크의 크기를 설정합니다. (px 단위) -FONT_FAMILY: 워터마크의 폰트를 설정합니다. -FONT_WEIGHT: 워터마크의 폰트 굵기를 설정합니다. (100 ~ 900 중 백 단위 숫자) -COLOR: 워터마크의 색상을 설정합니다. (HEX 코드) -OPACITY: 워터마크의 투명도를 설정합니다. (0 ~ 1)
TYPE: 워터마크 타입을 지정합니다. -IMAGE로 설정. -CONTENT: 워터마크에 표시될 이미지 파일 경로를 설정합니다. - 여러 개의 이미지 파일 경로를 배열 형태로 입력할 수 있습니다. ([]로 감쌈) - 2개 이상의 이미지 경로가 지정된 경우, 첫 로드 시 무작위로 선정된 이미지가 표시됩니다. -LOCATION: 워터마크의 위치를 설정합니다. -TOP_LEFT,TOP_RIGHT,BOTTOM_LEFT,BOTTOM_RIGHT중 선택. -SIZE: 워터마크의 크기를 설정합니다. (px 단위) -POSITION: 워터마크의 위치를 세부 조정합니다. -UP,DOWN,LEFT,RIGHT필드로 워터마크의 상하좌우 위치를 설정합니다. (px 단위) -OPACITY: 워터마크의 투명도를 설정합니다. (0 ~ 1)
TARGET_MANIFEST
섹션 제목: “TARGET_MANIFEST”{ type:"Harman", files:["Harman IE 2019v2","Harman IE 2017v2"] },{ type:"Neutral", files:["KEMAR DF (KB006x)","ISO 11904-2 DF","IEF Neutral 2023"] },{ type:"Reviewer", files:["Banbeucmas","HBB","Precogvision","Super 22 Adjusted"] },{ type:"Preference", files:["AutoEQ","Rtings","Sonarworks"] },{ type:"Δ", files:["Universal ∆"] }Target 선택기에 표시될 타겟들을 그룹화하고 정렬하는 방식을 정의합니다.
type필드는 타겟 그룹의 이름을 정의합니다.files필드는 해당 그룹에 속하는 타겟들의 파일 이름을 배열 형태로 지정합니다.
TRACE_STYLING
섹션 제목: “TRACE_STYLING”TRACE_STYLING: { PHONE_TRACE_THICKNESS: 2, TARGET_TRACE_THICKNESS: 1, TARGET_TRACE_DASH: [{ name: "KEMAR DF (KB006x)", dash: "10 10" }],},그래프 선의 굵기, 점선 스타일 등을 설정합니다. 특정 타겟의 선 스타일을 다르게 지정할 수도 있습니다.
PHONE_TRACE_THICKNESS: Phone(측정 데이터) 그래프 선의 굵기를 설정합니다. (px 단위)TARGET_TRACE_THICKNESS: Target(타겟 커브) 그래프 선의 굵기를 설정합니다. (px 단위)TARGET_TRACE_DASH: 특정 타겟의 선 스타일을 설정합니다.name필드는 타겟의 이름을 지정합니다.dash필드는 타겟의 선 스타일을 설정합니다.- ‘stroke-dasharray’ 속성에 따른 값을 입력받습니다. 자세한 설명이 필요하다면 MDN 문서를 참고하세요.
0 1로 설정하면 선이 표시되지 않습니다.null로 설정하면 선이 실선으로 표시됩니다.
TOPBAR
섹션 제목: “TOPBAR”TITLE: { //TYPE: "TEXT", CONTENT: "modernGraphTool", //TYPE: "IMAGE", CONTENT: "./assets/images/sample.jpg", TYPE: "HTML", CONTENT: "<h2>modernGraphTool</h2>",},LINK_LIST: [ { TITLE: "Home", URL: "/" }, { TITLE: "Blog", URL: "https://~~~" },]페이지 상단 바 막대의 제목과 링크 목록을 설정합니다.
TITLE: 페이지 상단 바 막대의 제목을 설정합니다.TYPE: 제목의 타입을 지정합니다.TEXT로 설정하면 텍스트 형식의 제목이 표시됩니다.IMAGE로 설정하면 이미지 형식의 제목이 표시됩니다.HTML로 설정하면 HTML 형식의 제목이 표시됩니다.
CONTENT: 제목의 내용을 설정합니다.TYPE이TEXT인 경우, 텍스트 형식의 제목을 설정합니다.TYPE이IMAGE인 경우, 이미지 파일 경로를 설정합니다.TYPE이HTML인 경우, HTML 형식의 제목을 설정합니다.
LINK_LIST: 페이지 상단 바 막대의 링크 목록을 설정합니다.TITLE필드는 링크의 제목을 지정합니다.URL필드는 링크의 URL을 지정합니다.
DESCRIPTION
섹션 제목: “DESCRIPTION”DESCRIPTION: [ // { TYPE: "TEXT", CONTENT: "Every measurements are done by using IEC 60318-4 (711) Ear Simulator." }, // { TYPE: "IMAGE", CONTENT: "./assets/images/sample.jpg" }, { TYPE: "HTML", CONTENT: "<p>Every measurements are done by using IEC 60318-4 (711) Ear Simulator.</p>" },],기타 패널의 ‘설명’ 영역에 표시할 텍스트 / 이미지 / HTML 요소를 추가할 수 있습니다.
여러 개의 설명을 동시에 추가할 수 있습니다. 각 설명은 {} 객체로 구분됩니다.
TYPE: 설명의 타입을 지정합니다.TEXT로 설정하면 텍스트 형식의 설명이 표시됩니다.IMAGE로 설정하면 이미지 형식의 설명이 표시됩니다.HTML로 설정하면 HTML 형식의 설명이 표시됩니다.
CONTENT: 설명의 내용을 설정합니다.TYPE이TEXT인 경우, 텍스트 형식의 설명을 설정합니다.TYPE이IMAGE인 경우, 이미지 파일 경로를 설정합니다.TYPE이HTML인 경우, HTML 형식의 설명을 설정합니다.
다국어 지원 (config.js)
섹션 제목: “다국어 지원 (config.js)”config.js 내 일부 항목들은 영어가 아닌 다양한 언어로 작성될 수 있습니다.
- 다국어 지원을 활성화하기 위해서는
config.js파일 내LANGUAGE항목을 수정해야 합니다. - 다른 언어로 구성된 객체를 지원하는 항목은 다음과 같습니다.
TARGET_MANIFESTTOPBAR - LINK_LISTDESCRIPTION
TOPBAR: { LINK_LIST: { default: [ { TITLE: "Google", URL: "https://www.google.com" }, { TITLE: "Github", URL: "https://www.github.com" }, ], i18n: { ko: [ { TITLE: "구글", URL: "https://www.google.com" }, { TITLE: "깃허브", URL: "https://www.github.com" }, ] } },}다국어 지원 항목에 한하여, 기본 언어 (영어)로 작성된 객체는 default 필드에, 다른 언어로 작성된 객체는 i18n 필드에 작성해야 합니다.
i18n필드에는LANGUAGE항목 내LANGUAGE_LIST항목에 등록된 언어 코드와 일치하는 객체가 있어야 합니다.
표시 내용 변경하기 (index.html)
섹션 제목: “표시 내용 변경하기 (index.html)”index.html 파일은 modernGraphTool의 기본 HTML 구조를 정의합니다. 텍스트 에디터로 이 파일을 열어 필요한 부분을 수정할 수 있습니다.
TITLE
섹션 제목: “TITLE”<title>modernGraphTool</title><meta name="title" content="modernGraphTool" /><meta property="og:title" content="modernGraphTool" />페이지의 제목을 설정합니다.
DESCRIPTION
섹션 제목: “DESCRIPTION”<meta name="description" content="View and compare frequency response graphs for earphones/headphones."/><meta property="og:description" content="View and compare frequency response graphs for earphones/headphones."/>페이지의 설명을 설정합니다.
KEYWORDS
섹션 제목: “KEYWORDS”페이지의 키워드를 설정합니다. (검색 엔진 최적화에 사용됩니다.)
<meta name="keywords" content="earphone,headphone,IEM,frequency response,graph,comparison,measurement,FR"/>URL / LINK
섹션 제목: “URL / LINK”페이지의 URL과 링크를 설정합니다.
<meta property="og:url" content="/?" /> <link rel="canonical" href="/?" />IMAGE
섹션 제목: “IMAGE”페이지의 미리보기 이미지를 설정합니다.
<meta property="og:image" content="/preview.png" />FAVICON
섹션 제목: “FAVICON”페이지의 파비콘(탭 아이콘)을 설정합니다.
<link rel="icon" type="image/png" sizes="32x32" href="/favicon.png" />페이지 스타일 개인화하기 (theme.css)
섹션 제목: “페이지 스타일 개인화하기 (theme.css)”theme.css 파일은 modernGraphTool을 위한 색상 정보 따위를 담고 있습니다.
직접 CSS 파일을 수정할 수도 있지만, 보다 간편한 테마 생성기를 사용하는 것을 권장합니다.
테마 생성기는 Material 3 컬러 시스템을 기반으로, 사용자가 정한 ‘source color’에 따라 자동으로 CSS 파일을 생성해주는 도구입니다.