Highcharts: RequireJS๋ฅผ ํ†ตํ•œ ์ข…์† Highcharts ๋ชจ๋“ˆ ๋˜๋Š” highcharts-more ๋กœ๋“œ๋Š” ๋ฒ„์ „ 6.1.2์—์„œ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2018๋…„ 09์›” 04์ผ  ยท  51์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: highcharts/highcharts

๋‚ด ์‚ฌ์ดํŠธ์˜ ํŠน์ • ํŽ˜์ด์ง€์— Highcharts๋ฅผ ๋™์ ์œผ๋กœ ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•ด RequireJS๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” highcharts-more ๋ฐ ์ถ”๊ฐ€ ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•˜๋„๋ก shim์œผ๋กœ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฉฐ์น  ์ „ Highchart CDN์˜ ๋ฒ„์ „ 6.1.2 ์—…๋ฐ์ดํŠธ๋ถ€ํ„ฐ ์ด์ œ highcharts-more ๋ฐ ๋ชจ๋“ˆ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋กœ๋“œํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™

highcharts-more ๋ฐ ๊ธฐํƒ€ ๋ชจ๋“ˆ์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ํ–‰๋™

ํŒŒ์ผ์„ ๊ฐ€์ ธ์™”์ง€๋งŒ arearange ๋Œ€ํ•œ ์˜ค๋ฅ˜ ์ฝ”๋“œ 17 ์•Œ ์ˆ˜ ์—†๋Š” ์ฐจํŠธ ์œ ํ˜• ๋ฐ ๊ธฐํƒ€ ์ด์ƒํ•œ ๋™์ž‘์œผ๋กœ Highcharts ์ดˆ๊ธฐํ™”์— ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ทน์ง€๋ฐฉ ์ฐจํŠธ๋Š” ๊ทน์ง€๋ฐฉ์ด ์•„๋‹™๋‹ˆ๋‹ค.
์‹ค์ œ ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ค์ง€๋งŒ ์–ด๋–ค ์ด์œ ๋กœ ์ธํ•ด ๋” ์ด์ƒ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์„ค๋ช…ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์žฌํ˜„ ๋‹จ๊ณ„๊ฐ€ ํฌํ•จ๋œ ๋ผ์ด๋ธŒ ๋ฐ๋ชจ

Highcharts 6.1.1๋กœ ์ž‘์—… ๋ฐ๋ชจ: http://jsfiddle.net/3kpazfw4/
CDN์œผ๋กœ ์‹คํŒจํ•œ ๋ฐ๋ชจ: http://jsfiddle.net/6zypqedn/

์ œํ’ˆ ๋ฒ„์ „

ํ•˜์ด์ฐจํŠธ 6.1.2

์˜ํ–ฅ์„ ๋ฐ›๋Š” ๋ธŒ๋ผ์šฐ์ €

ํฌ๋กฌ 68.

High Enhancement

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š” @sina123s ์ž…๋‹ˆ๋‹ค .

์ด์ œ ๋ฌธ์ œ์˜ ๊ตฌ์ฒด์ ์ธ ๋ฒ„์ „์„ ๋ณด์—ฌ์ฃผ์‹ค ๋•Œ๊ฐ€ ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ์— ๋ฏผ๊ฐํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋ฉด ์•„์ง ๋ฌธ์ œ๋ฅผ ์ค„์ด๋Š” ๋ฐ ์ถฉ๋ถ„ํ•œ ์‹œ๊ฐ„์„ ๋“ค์ด์ง€ ์•Š์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด https://stackoverflow.com/help/minimal-reproducible-example์„ ์ฐธ์กฐ

์ œ ์ƒ๊ฐ์—๋Š” @jon-a-nygaard๊ฐ€ ์ง€๊ธˆ๊นŒ์ง€ ๋‚˜์˜จ ๊ฒƒ ์ด์ƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋‹น์‹ ์ด ์šฐ๋ฆฌ์™€ ๊ทธ์—๊ฒŒ _๋‹น์‹ ์ด ๊ฒช๊ณ  ์žˆ๋Š” ์ •ํ™•ํ•œ ๋ฌธ์ œ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š”_ ๊ตฌ์ฒด์ ์ด๊ณ  ์ž‘๊ณ  ์ฝ๊ธฐ ์‰ฌ์šด ์˜ˆ๋ฅผ ์ œ๊ณตํ•  ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค.

๋ถ€์ž‘์šฉ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ์ ์  ๋” ์ž‘๊ฒŒ ๋งŒ๋“ค๊ณ  ๋…์  ๋ฐ ๊ด€๋ จ ์—†๋Š” ๋ถ€๋ถ„์„ ์ œ๊ฑฐํ•˜๋Š” ๊ณผ์ •์—์„œ ์Šค์Šค๋กœ ๋‹ต์„ ์ฐพ์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  75% ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค... ์ •๋ง ๋งค์šฐ ๊ฐ•๋ ฅํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ž์ฒด์ ์œผ๋กœ ๋””๋ฒ„๊น…ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ๊ฒŒ์‹œํ•˜๋Š” ์ฝ”๋“œ ์กฐ๊ฐ์˜ ํ˜•์‹์„ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ์‹ญ์‹œ์˜ค. ๊ฒŒ์‹œํ•œ ์ฝ”๋“œ๋ฅผ ์ฝ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Markdown ๋งˆ์Šคํ„ฐ๋ง์˜ '๊ตฌ๋ฌธ ๊ฐ•์กฐ ํ‘œ์‹œ' ์ฐธ์กฐ

์˜ˆ, ์ด ๋ชจ๋“  ์ž‘์—…์—๋Š” ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์žฅ๊ธฐ์ ์œผ๋กœ ๋ณด๋ฉด ๋„์›€์„ ์ค„ ์‚ฌ๋žŒ์ด ์—†๋‹ค๋ฉด ๋„์™€์ค„ ์‚ฌ๋žŒ์„ ์ฐพ๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ์งง์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค... :-)

๋ชจ๋“  51 ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š” @jee7

์ด ๋ฌธ์ œ๋ฅผ ์‹ ๊ณ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ์˜ณ์Šต๋‹ˆ๋‹ค. ๋ญ”๊ฐ€ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ํ™•์ธํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚ด๋ถ€ ์ฐธ๊ณ  ์‚ฌํ•ญ:
@oysteinmoseng CDN์˜ ๋™์ผํ•œ ๋ฐ๋ชจ:

์ฑ…์ž„ ์žˆ๋Š” ์ปค๋ฐ‹: https://github.com/highcharts/highcharts-assembler/commit/0d223359731079077a5a6ad693b53655e8352fc2

6.1.2 Highcharts๋Š” AMD ๋กœ๋”ฉ์„ ์ง€์›ํ•˜๋ฏ€๋กœ shimming์ด ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ AMD ๋กœ๋”ฉ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ถ”๊ฐ€ ์ดˆ๊ธฐํ™” ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ๋ชจ๊ฐ€ ์‹คํŒจํ•˜๋Š” ์›์ธ์ž…๋‹ˆ๋‹ค.

RequireJS๋กœ Highchart๋ฅผ ๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์—ฌ๊ธฐ ๋ฅผ ์ฐธ์กฐ

์ง€๊ธˆ์€ ์ด ๋ฌธ์ œ๋ฅผ ๋‹ซ์„ ๊ฒƒ์ด์ง€๋งŒ ์ถ”๊ฐ€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์–ธ์ œ๋“ ์ง€ ๋‹ค์‹œ ์—ฌ์‹ญ์‹œ์˜ค.

๋‹ต๋ณ€ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‹ต๋ณ€์ด ๋Šฆ์–ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค, ์ œ๊ฐ€ ์ฒ˜๋ฆฌํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด ์‚ฌ์ดํŠธ์˜ ํŠน์ • ํŽ˜์ด์ง€์— ๋กœ๋“œ๋˜๋Š” ์ž์ฒด RequireJS ๋ชจ๋“ˆ์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ์ผ๋ถ€๋Š” Highcharts๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ผ๋ถ€๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ƒˆ๋กœ์šด Highcharts ์ดˆ๊ธฐํ™”๋ฅผ ๊ธฐ๋ณธ requirejs() ํ˜ธ์ถœ์— ๋„ฃ๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๊ท€ํ•˜์˜ ์˜ˆ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด). ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ์‚ฌ์šฉํ•˜์ง€ ์•Š๋”๋ผ๋„ ํ•ญ์ƒ ๋ชจ๋“  ํŽ˜์ด์ง€์— ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ์ด์ „์—๋Š” shim์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•„์š”ํ•  ๋•Œ ํ•˜๋‚˜์˜ highcharts ์ข…์†์„ฑ์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋‚ด ์ฒซ ๋ฒˆ์งธ ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ƒˆ๋กœ์šด ์ข…์†์„ฑ ์ฃผ์ž…์„ ๋‚ด ๋ชจ๋“ˆ ์ค‘ ํ•˜๋‚˜์— ๋„ฃ๊ณ  ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ํ–ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฐ๊ฐ์˜ ๋ชจ๋“ˆ์— ๋Œ€ํ•ด ๋กœ๋“œ๋˜๋Š” ์‹ค์ œ Highcharts ๋ชจ๋“ˆ์„ ๋” ์ž˜ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Highcharts๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ ๋ชจ๋“ˆ ์œ„์— ๊ทธ๋ ‡๊ฒŒ ๊ธด ์ข…์†์„ฑ ์ฃผ์ž… ์ฝ”๋“œ๋ฅผ ๋„ฃ๊ณ  ๋ณต์ œํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค... ๊ทธ๋ž˜์„œ ๊ฒฐ๊ตญ Highcharts ๊ตฌ์„ฑ๋งŒ ์ˆ˜ํ–‰ํ•˜๋Š” ์†Œ์ˆ˜์˜ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ํ•œ ๋ฒˆ Highcharts๋ฅผ ๋‚ด ๋ชจ๋“ˆ์— ํ•œ ๋ฒˆ๋งŒ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@mbrodala๊ฐ€ ์ œ์•ˆํ•œ ๋Œ€๋กœ ํŒจํ„ด์— ๋Œ€ํ•œ ํ† ๋ก ์„ ์œ„ํ•ด ์ด๊ฒƒ์„ ๋‹ค์‹œ ์—ฝ๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ ค๋ฉด #8916์˜ ๋‚ด ์˜๊ฒฌ:

๋”ฐ๋ผ์„œ ์ด๊ฒƒ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ํŠนํžˆ ์‚ฌ์šฉ์ž๊ฐ€ highcharts๋ผ๋Š” ์ด๋ฆ„์˜ ๋ชจ๋“ˆ์ด ์•„๋‹Œ ๋‹ค๋ฅธ ๊ฒƒ์„ ๋กœ๋“œํ•˜๊ณ  ์ด๋ฅผ Highcharts๋กœ ๋‹ค์–‘ํ•œ Highcharts ๋ชจ๋“ˆ์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์ž์ฃผ ํ•„์š”ํ•œ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ํ˜„์žฌ ์ƒํƒœ๊ฐ€ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ณ  ๋ถˆ์™„์ „ํ•˜๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” RequireJS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฐ๊ตญ ์ข…์†์„ฑ ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ด๊ฒƒ์„ ๊ฐ•์ œ๋กœ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์ธ์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Highcharts๋ฅผ ํ†ตํ•ฉํ•œ ๋‹ค๋ฅธ AMD ์‚ฌ์šฉ์ž์—๊ฒŒ ์›Œํฌํ”Œ๋กœ์— ๋Œ€ํ•ด ๋ฌป๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ํ˜„์žฌ์˜ ์œ ์—ฐ์„ฑ์ด ์ •๋ง๋กœ ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ๋ชจ๋“  Highcharts ๋ชจ๋“ˆ์ด Highcharts ๊ฐœ์ฒด๋ฅผ ์ฃผ์ž…ํ•˜๊ธฐ ์œ„ํ•ด highcharts ๋ผ๋Š” ๋ชจ๋“ˆ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๊ดœ์ฐฎ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ดํ•ดํ•˜๋Š” ํ•œ ๋ชจ๋“  ํŽ˜์ด์ง€์— ๋ชจ๋“  ์ถ”๊ฐ€ Highcharts ๋ชจ๋“ˆ์ด ํ•„์š”ํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์„ ๋ฒ„์ŠคํŠธ ํ”Œ๋กฏ์„ ๋ณด์—ฌ์ฃผ๋Š” ํŽ˜์ด์ง€์™€ ์ŠคํŠธ๋ฆผ๊ทธ๋ž˜ํ”„ ํ”Œ๋กฏ์„ ๋ณด์—ฌ์ฃผ๋Š” ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋‘ ํŽ˜์ด์ง€ ๋ชจ๋‘์— ์„ ๋ฒ„์ŠคํŠธ ๋ฐ ์ŠคํŠธ๋ฆผ๊ทธ๋ž˜ํ”„ ํ”Œ๋กฏ ๋ชจ๋‘์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ๋กœ๋“œํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์–ด๋–ค ํŽ˜์ด์ง€๊ฐ€ ์–ด๋–ค ์ถ”๊ฐ€ Highcharts ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๊ตฌ์ฒด์ ์œผ๋กœ ๊ตฌ์„ฑํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. shim ๊ตฌ์„ฑ์œผ๋กœ ๋‚˜๋Š” ๊ฒŒ์œผ๋ฅด๋ฉฐ ์ฃผ์š” Highchart ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์ข…์†์„ฑ์œผ๋กœ ์‚ฌ์šฉํ•œ ๋‹ค๋ฅธ ๋ชจ๋“  ๋ชจ๋“ˆ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ AMD์™€ ํ•จ๊ป˜ ๋‚˜๋„ ์•ฝ๊ฐ„ ๊ฒŒ์œผ๋ฅด๋‹ค. ๋‚ด ์›น์‚ฌ์ดํŠธ๋Š” ์‹ค์ œ๋กœ ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์„น์…˜์ด๋ผ๊ณ  ํ•ฉ์‹œ๋‹ค. ๊ทธ๋“ค์€ ํ•™์ƒ, ๊ต์‚ฌ, ๋…ผ๋ฌธ ๋ฐ ๋…ผ๋ฌธ์œผ๋กœ ๋ช…๋ช…๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ผ๋ฐ˜ํ™”๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ์ž, ์œ ๋ฃŒ ์‚ฌ์šฉ์ž ๋ฐ ๊ด€๋ฆฌ์ž์™€ ๊ฐ™์€ ์„น์…˜์„ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ๋‹ค๋ฅธ ๋„๋ฉ”์ธ ๊ฐœ์ฒด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์„น์…˜. ๊ทธ๋ž˜์„œ ์ œ๊ฐ€ ํ•œ ์ผ์€ ๊ฐ ์„น์…˜์— ๋Œ€ํ•ด Highcharts์šฉ์œผ๋กœ ๋ณ„๋„์˜ AMD ๋ชจ๋“ˆ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ js/modules/student/highcharts , js/modules/teacher/highcharts , js/modules/theses/highcharts ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘ ํŠน์ • ์„น์…˜์˜ ๋ชจ๋“  ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์— ๋”ฐ๋ผ Highcharts๋ฅผ ๋‹ค๋ฅด๊ฒŒ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ์ด์ „ ๊ฒŒ์‹œ๋ฌผ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค(์–ด๋–ค ์ด์œ ๋กœ ์Šคํฌ๋ฆฐ์ƒท์ด ์ด์ „์— ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค).

๊ตฌ์„ฑ๋งŒ ๊ฐ€์ง€๊ณ  ๋น„์Šทํ•œ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์•˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ shim๊ณผ ํ•จ๊ป˜ํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ข…์†์„ฑ ์ฃผ์ž… ํ•ญ๋ชฉ์„ ๋ชจ๋“ˆ ์ •์˜ ๋‚ด๋ถ€๊ฐ€ ์•„๋‹Œ ๋‹จ์ผ ๊ตฌ์„ฑ ํŒŒ์ผ์— ๋ชจ๋‘ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ์ฃผ์ž…์€ ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ AMD์— ๋Œ€ํ•ด ๊ฒฝํ—˜์ด ํ’๋ถ€ํ•˜๊ณ  ์ต์ˆ™ํ•˜์ง€ ์•Š์ง€๋งŒ, ์ œ๊ฐ€ ์ฝ์€ ํ•œ AMD ๋ชจ๋“ˆ์— ๋Œ€ํ•œ shim ๊ตฌ์„ฑ์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋‚˜์œ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ํ˜„์žฌ Highcharts์˜ ํŠน์ • ์กฐํ•ฉ์„ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ธฐ๋ณธ Highcharts ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ํŽ˜์ด์ง€์—๋Š” 1-2๊ฐœ์˜ JS ํŒŒ์ผ๋งŒ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๊ณ  10๊ฐœ์˜ ๋‹ค๋ฅธ Highcharts ๋ชจ๋“ˆ์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ํŽ˜์ด์ง€์—๋Š” ~10๊ฐœ์˜ JS ํŒŒ์ผ๋งŒ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€ CDN์—์„œ Highcharts๋ฅผ ๋กœ๋“œํ•  ๋•Œ ํฌํ•จํ•˜๊ณ  ์ค€๋น„ํ•  ๋ชจ๋“ˆ์„ URL ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Google์ด Google Fonts์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด์™€ ๊ฐ™์€ ๊ฒƒ: https://code.highcharts.com/highcharts?modules=more,sunburst,streamgraph .

๊ทธ๋Ÿฐ ๋‹ค์Œ RequireJS์—์„œ Highcharts์˜ ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์ด๋ฆ„์„ ๋‹ค๋ฅด๊ฒŒ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ณ  ์‚ฌ์šฉ ์‹œ ๊ฐ ๊ตฌ์„ฑ์— ๋Œ€ํ•ด CDN์—์„œ ๋‹จ์ผ ํŒŒ์ผ๋งŒ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ DI๋ฅผ ์ง์ ‘ ์ˆ˜ํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” @mbrodala ๊ทธ์˜ ๋ง์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ด๊ฒƒ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ํŠนํžˆ ์‚ฌ์šฉ์ž๊ฐ€ highcharts๋ผ๋Š” ์ด๋ฆ„์˜ ๋ชจ๋“ˆ์ด ์•„๋‹Œ ๋‹ค๋ฅธ ๊ฒƒ์„ ๋กœ๋“œํ•˜๊ณ  ์ด๋ฅผ Highcharts๋กœ ๋‹ค์–‘ํ•œ Highcharts ๋ชจ๋“ˆ์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์ž์ฃผ ํ•„์š”ํ•œ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ํ˜„์žฌ ์ƒํƒœ๊ฐ€ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ณ  ๋ถˆ์™„์ „ํ•˜๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” RequireJS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฐ๊ตญ ์ข…์†์„ฑ ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ด๊ฒƒ์„ ๊ฐ•์ œ๋กœ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์ธ์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

RequireJS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Highcharts ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. Highcharts ๊ฐœ์ฒด๋ฅผ ์ฃผ์ž…ํ•˜๊ธฐ ์œ„ํ•ด ๋‹จ์ˆœํžˆ highcharts ๋ฅผ ์š”๊ตฌํ•˜๋Š” ์ด์ „ ๋ฐฉ๋ฒ•์ด ๋” ๋‚ซ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์ƒํƒœ๊ฐ€ ํ˜ผ๋ž€์Šค๋Ÿฌ์šธ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์šฐ๋ฆฌ์™€ ๊ฐ™์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ตœ์‹  ๋ฒ„์ „์˜ Highchart๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์„ ์ œํ•œํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@oysteinmoseng ์ด์™€ ๊ด€๋ จ๋œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

@TorsteinHonsi @pawelfus

@tejaspchordiya ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๊ตฌ์„ฑ ๊ฒฝ๋กœ๋ฅผ ์„ ํ˜ธํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ๋ถ„๋ช…ํ•˜๋ฏ€๋กœ ๋‹ค์Œ ๋ฒ„์ „์—์„œ๋Š” ์ด๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์‚ดํŽด๋ณผ ๊ฒƒ์ด๋‹ค.

@oysteinmoseng ์ข‹์•„์š”. ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

@jee7 @mbrodala @tejaspchordiya
๋‹ค๊ฐ€์˜ค๋Š” Highcharts v7์—์„œ๋Š” highcharts ๋ชจ๋“ˆ์— ์˜์กดํ•˜๋„๋ก ๋ชจ๋“ˆ ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•  ๊ฒƒ์ด๋ฉฐ ๋ฃจํŠธ ํŒŒ์ผ์€ ์ด ๋ชจ๋“ˆ์„ ์ •์˜ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ชจ๋“ˆ์˜ ์ดˆ๊ธฐํ™” ๋‹จ๊ณ„๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ชจ๋“ˆ์— ๋Œ€ํ•œ ๋กœ๋“œ ์ˆœ์„œ๋Š” ์—ฌ์ „ํžˆ ์ •ํ™•ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ชจ๋“ˆ์€ (ํ˜„์žฌ๋กœ์„œ๋Š”) ์ „์—ญ highcharts ๋ชจ๋“ˆ์—๋งŒ ์ข…์†๋˜์–ด ์žˆ๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“ˆ์— ์ข…์†๋œ ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋กœ๋“œ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

requirejs.config({
    paths: {
        'highcharts': 'http://code.highcharts.com/highcharts',
        'highcharts-exporting': 'http://code.highcharts.com/modules/exporting',
        'highcharts-accessibility': 'http://code.highcharts.com/modules/accessibility'
    }
});

// Try loading after setting up paths. Note that the loading order has to be correct.
requirejs([
    'highcharts',
    'highcharts-exporting',
    'highcharts-accessibility'
], function (Highcharts, exporting, accessibility) {
    Highcharts.chart('container', {
        series: [{
            data: [1,2,3,4,5]
        }]
    });
});

์ด์— ๋Œ€ํ•œ ์˜๊ฒฌ์ด ์žˆ์œผ๋ฉด ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

@oysteinmoseng Highcharts ์†Œ์Šค์˜ ๊ณ„ํš๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ดํ•ดํ•˜๊ณ  ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์˜ˆ๋ฅผ ๋“ค์–ด highcharts-exporting ๋ชจ๋“ˆ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

define(['highcharts'], function(Highcharts) {
  // ...
});

๋”ฐ๋ผ์„œ ๋‹ค์Œ์€ ๋ชจ๋‘ ์™„๋ฒฝํ•˜๊ฒŒ ๊ดœ์ฐฎ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

require(['highcharts', 'highcharts-exporting'], function (Highcharts, exporting) {
  // ...
});
require(['highcharts-exporting', 'highcharts'], function (exporting, Highcharts) {
  // ...
});
require(['highcharts-exporting'], function (exporting) {
  // ...
});

๋”ฐ๋ผ์„œ ๋ชจ๋“ˆ์„ ์„ค์ •ํ•œ ์ˆœ์„œ์™€ ๊ธฐ๋ณธ ๋ชจ๋“ˆ์„ ๋ช…์‹œ์ ์œผ๋กœ ๋กœ๋“œํ•˜๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@mbrodala ์‹ค์ œ๋กœ ์ด๊ฒƒ์ด ๋ชจ๋“ˆ์˜ ๋ชจ์–‘์ด๋ฉฐ ๋ชจ๋“ˆ๊ณผ ๊ธฐ๋ณธ ๋ชจ๋“ˆ์˜ ๋กœ๋“œ์— ๋Œ€ํ•ด ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋กœ๋“œ ์ˆœ์„œ๋Š” ์„œ๋กœ ์˜์กดํ•˜๋Š” ์—ฌ๋Ÿฌ Highcharts ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•  ๋•Œ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด accessibility ๋ชจ๋“ˆ์€ exporting ๋ชจ๋“ˆ์— ์ข…์†๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ด ์‹œ์ ์—์„œ Highcharts ๋ชจ๋“ˆ ํŒŒ์ผ์— ํ•ด๋‹น ์ •๋ณด๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ˆœ์„œ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•„, ์ด์ œ ๋ฌด์Šจ ๋ง์ธ์ง€ ์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๊ฒฝ์šฐ require() ์–ธ๊ธ‰๋œ ๋ชจ๋“ˆ์˜ ์ˆœ์„œ๊ฐ€ ๋กœ๋”ฉ ์ˆœ์„œ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์€ ์ˆœ์„œ ์—†์ด ๋กœ๋“œ๋˜๊ณ  ์ข…์† ํ•ญ๋ชฉ์€ ๋ชจ๋“  ์ข…์† ํ•ญ๋ชฉ์ด ๋กœ๋“œ๋˜๋Š” ์ฆ‰์‹œ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‚ด๋ถ€ ์ข…์†์„ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ์ˆ˜๋™์œผ๋กœ ๋ชจ๋“ˆ์„ ์ •๋ ฌํ•˜๋”๋ผ๋„ ๋กœ๋“œ ๋ฌธ์ œ๊ฐ€ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค.

์ฃผ์–ด์ง„ ์˜ˆ์—์„œ ['highcharts', 'highcharts-exporting', 'highcharts-accessibility'] ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ highcharts-exporting ๊ฐ€ highcharts-accessibility ์ „์— ๋กœ๋“œ๋œ๋‹ค๋Š” ๋ณด์žฅ์€ ์—†์œผ๋ฉฐ _my_ ๋ชจ๋“ˆ๋งŒ ์ด๋Ÿฌํ•œ ๋ชจ๋“ˆ๋ณด๋‹ค ๋จผ์ € ๋กœ๋“œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ highcharts-accessibility ๊ฐ€ ์‹คํ–‰๋˜์ž๋งˆ์ž ์ž๋™์œผ๋กœ ๋งˆ๋ฒ•์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๋ฉด highcharts-exporting ๊ฐ€ ์ด๋ฏธ ๋กœ๋“œ๋˜์–ด ์žˆ๋‹ค๊ณ  ์˜์กดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ์ข…์†์„ฑ์„ ๋ช…์‹œ์ ์œผ๋กœ ์„ ์–ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@mbrodala ๋ชจ๋“ˆ ๋กœ๋“œ ์ˆœ์„œ์— ๋Œ€ํ•ด ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
requirejs์™€ ํ•จ๊ป˜ shim ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๊นŒ?

์•„ ์ด๊ฑด ๋ชฐ๋ž๋„ค์š” ใ…  ์•Œ๋ ค์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋ถˆํ–‰ํžˆ๋„ ๊ทธ๊ฒƒ์€ ์ž ์žฌ์ ์ธ ์‡ผ์Šคํ† ํผ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์˜ ์ข…์†์„ฑ์„ ์ถ”์ ํ•˜๋Š” ์‹œ์Šคํ…œ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์งง์€ ์‹œ๊ฐ„ ์•ˆ์— ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์„ ๋„˜์–ด์„œ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ณ€๊ฒฝ์„ Highcharts v7.1๋กœ ์—ฐ๊ธฐํ•ด์•ผ โ€‹โ€‹ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์„ ํƒ์  ์ข…์†์„ฑ์˜ ๊ฐœ๋…(ํŠน์ • ๋กœ๋“œ ์ˆœ์„œ๊ฐ€ ํ•„์š”ํ•จ)๊ณผ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

v7.0 ์ดํ›„์— ์ด ๋ฐฑ์—…์„ ์„ ํƒํ•˜๊ณ  ์šฐ๋ฆฌ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์„ ๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํŽธ์ง‘ํ•˜๋‹ค:
shim์„ ์‚ฌ์šฉํ•˜๋Š” ์ž ์žฌ์ ์ธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ด๊ฒƒ์ด ํ˜„์žฌ ๊ตฌํ˜„๋ณด๋‹ค ์‰ฌ์šด์ง€ ๋…ผ์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@tejaspchordiya ๋ฌด์—‡์„ ์—ผ๋‘์— ๋‘๊ณ  ๊ณ„์‹ญ๋‹ˆ๊นŒ? ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ๋กœ๋“œ ์ˆœ์„œ๋ฅผ ์ ์šฉํ•˜๋Š” ์˜ต์…˜์„ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

shim ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฒ„์ „ 6.1.2 ์ด์ „์˜ ์†”๋ฃจ์…˜์œผ๋กœ ๋˜๋Œ์•„๊ฐ€๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ดํ•ดํ•˜๋Š” ํ•œ AMD ๋ชจ๋“ˆ์€ shim๊ณผ ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— shim์€ ๋น„ AMD ๋ชจ๋“ˆ์šฉ์ž…๋‹ˆ๋‹ค.

์ œ ๊ฒฝ์šฐ์—๋Š” ์ œ์•ˆ๋œ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹จ์ผ ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” Highcharts์˜ ํŠน์ • ๊ตฌ์„ฑ์„ ์›ํ•  ๋•Œ ์—ฌ์ „ํžˆ ๊ณ ์œ ํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ๋ชจ๋“ˆ์„ ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์˜ˆ, ๋ชจ๋“ˆ์ด ๋น„๋™๊ธฐ์‹์œผ๋กœ ๋กœ๋“œ๋˜๋ฏ€๋กœ ์ˆœ์„œ๋Š” ์ž„์˜์ ์ž…๋‹ˆ๋‹ค.
์ข…์†์„ฑ์€ Highcharts์˜ ๋ชจ๋“ˆ ์ •์˜์—์„œ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ชจ๋“  ์ „์ œ ์กฐ๊ฑด ์ข…์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅธ ์ˆœ์„œ๋กœ ๋กœ๋“œ๋˜๋„๋ก ๋ณด์žฅํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. highcharts-more ๋ชจ๋“ˆ์ด highcharts ๋ชจ๋“ˆ ๋“ฑ์— ์ข…์†๋œ๋‹ค๋Š” ๋ชจ๋“ˆ ์ •์˜๋ฅผ ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“ˆ์ด ์ˆœ์„œ๋Œ€๋กœ ์ข…์†์„ฑ์„ ๊ฐ–๋„๋ก 7.1์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์‹ฌ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด๋ณด๋‚ด๊ธฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

define(['highcharts'], function(Highcharts) {
  // ...
});

์ข…์† ์˜คํ”„๋ผ์ธ ๋‚ด๋ณด๋‚ด๊ธฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

define(['highcharts', 'exporting'], function(Highcharts, exporting) {
  // ...
});

์ด ์†Œ๋ฆฌ๊ฐ€ ๋งž์Šต๋‹ˆ๊นŒ?

๋งž๋Š” ๊ฒƒ ๊ฐ™์ง€๋งŒ ๋ชจ๋“  ๋ชจ๋“ˆ์— ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ๊ฐ–๊ณ  ์ถฉ๋Œ์„ ํ”ผํ•˜๋ ค๋ฉด exporting ๋Œ€์‹  highcharts-exporting ๋ฅผ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : ๋˜ํ•œ ๋ช…๋ช…๋œ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋ชจ๋“ˆ์„ ๋‹จ์ผ ํŒŒ์ผ๋กœ ๋ณ‘ํ•ฉํ•˜์—ฌ ์„œ๋ฒ„ ์š”์ฒญ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

define('highcharts-offline-exporting', ['highcharts', 'exporting'], function(Highcharts, exporting) {
  // ...
});

์‹ค์ œ๋กœ ์ด๊ฒƒ์€ ๊ถŒ์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค . ๋Œ€์‹  ์ด๊ฒƒ์„ RequireJS ์˜ตํ‹ฐ๋งˆ์ด์ €์— ๋งก๊ฒจ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋“ค์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ตœ์ ํ™” ๋„๊ตฌ์— ์˜ํ•ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์˜ ์ด๋ฆ„์„ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ชจ๋“ˆ์˜ ์ด์‹์„ฑ์ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ๋‹ค๋ฅธ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋ชจ๋“ˆ ์ด๋ฆ„์œผ๋กœ ์ฝ”๋”ฉํ•˜๋Š” ๊ฒƒ์„ ํ”ผํ•˜๊ณ  ์ตœ์ ํ™” ๋„๊ตฌ๊ฐ€ ๋ชจ๋“ˆ ์ด๋ฆ„์„ ํƒœ์šฐ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค. ์ตœ์ ํ™” ๋„๊ตฌ๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋” ๋นจ๋ฆฌ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‘˜ ์ด์ƒ์˜ ๋ชจ๋“ˆ์„ ํŒŒ์ผ์— ๋ฒˆ๋“ค๋กœ ๋ฌถ์„ ์ˆ˜ ์žˆ๋„๋ก ์ด๋ฆ„์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@mbrodala ํฅ๋ฏธ define(['highcharts', 'highcharts-exporting'], ...) . ๋‚ด๊ฐ€ ๊ทธ๊ฒƒ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ•œ๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ๊ด€๋ จ ํŒŒ์ผ์— ๋Œ€ํ•œ ๊ฒฝ๋กœ๋ฅผ ์ •์˜ํ•ด์•ผ ํ•˜๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ถ€๋‹ด์„ ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

requirejs.config({
    paths: {
        'highcharts': 'highcharts',
        'highcharts-exporting': 'modules/exporting',
        'highcharts-accessibility': 'modules/accessibility'
    }
});

๋งž์Šต๋‹ˆ๋‹ค. ๋งค์šฐ ์žฅํ™ฉํ•œ ๋ฒ„์ „์—์„œ๋Š” ์ด๊ฒƒ์ด ๊ฐˆ ๊ธธ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ผ๋ฐ˜์ ์œผ๋กœ RequireJS๊ฐ€ baseUrl ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  Highcharts ๋ชจ๋“ˆ์„ ์ž๋™์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž์‚ฐ์„ ๋นŒ๋“œํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ๊ธฐ์„œ Highcharts๋Š” ํ•  ์ผ์ด ์—†์Šต๋‹ˆ๋‹ค. ;-)

๋‚ด๋ถ€ ํ† ๋ก  ํ›„ ์šฐ๋ฆฌ๋Š” ๋ชจ๋“ˆ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•˜๊ณ ์ž ํ•˜๋Š” ๋‹ค์Œ ์ œ์•ˆ์— ์ฐฉ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค.

// Example of modules/offline-exporting.src.js
define(
    'highcharts/modules/offline-exporting',
    ['highcharts', 'highcharts/modules/exporting'],
    function (Highcharts) {
        ...
    }
)

์ด์ „ ์ œ์•ˆ๊ณผ ๋‹ฌ๋ฆฌ ๋ชจ๋“ˆ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋ ค๋Š” ์ด์œ ๋Š” ๋ชจ๋“ˆ์ด ์—ฌ๋Ÿฌ ๋ฒˆ ๋กœ๋“œ ๋ฐ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ตฌ์„ฑ์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ๊ถŒ์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

require.config({
    packages: [{
        name: 'highcharts',
        main: 'highcharts'
    }],
    paths: {
        // Change this to your server if you do not wish to use our CDN.
        'highcharts': 'https://code.highcharts.com'
    }
});

๋˜ํ•œ Highcharts ์ธ์Šคํ„ด์Šค์—์„œ ๋ชจ๋“ˆ ํŒฉํ† ๋ฆฌ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ˆ˜์ •๋œ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜๋œ ๋ชจ๋“ˆ์˜ ์†์„ฑ์œผ๋กœ ์ œ๊ณตํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋ฉด ์‚ฌ์šฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

require([
    'highcharts/modules/exporting',
    'highcharts/modules/accessibility'
    // This function runs when the above files have been loaded.
], function ({ Highcharts }) {
    // Create a test chart.
    Highcharts.chart('container', {
        series: [{
            data: [1,2,3,4,5]
        }]
    });
});

์ด์ „ ํŒจํ„ด ๋Œ€์‹ :

require([
    'highcharts',
    'highcharts/modules/exporting',
    'highcharts/modules/accessibility'
    // This function runs when the above files have been loaded.
], function (Highcharts, ExportingModule, AccessibilityModule) {
    // We need to initialize module files and pass in Highcharts.
    ExportingModule(Highcharts);
    // Load exporting before accessibility.
    AccessibilityModule(Highcharts);
    // Create a test chart.
    Highcharts.chart('container', {
        series: [{
            data: [1,2,3,4,5]
        }]
    });
});

@bre1470 ๊ณผ @oysteinmoseng์ด ์—ฌ๊ธฐ์—์„œ ์ž˜๋ชป๋˜์—ˆ๊ฑฐ๋‚˜ ์ด ์˜๊ฒฌ์—์„œ ๋ญ”๊ฐ€๋ฅผ ๋†“์นœ ๊ฒฝ์šฐ ์ €๋ฅผ ์ˆ˜์ •ํ•ด ์ฃผ์„ธ์š”.

์ด ์ œ์•ˆ์— ๋Œ€ํ•œ ์˜๊ฒฌ์„ ์ž์œ ๋กญ๊ฒŒ ๋ณด๋‚ด์ฃผ์‹ญ์‹œ์˜ค.

๋ชจ๋“ˆ์˜ ์ด๋ฆ„์„ ์ง€์ ํ•˜์ž๋ฉด - ์ด๊ฒƒ์ด ๋…ผ๋ž€์ด ๋˜๋Š” ์ด์œ ๋Š” ๋ชจ๋“ˆ์ด ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ์—์„œ ์ด๋™ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ชจ๋“ˆ์ด ์ข…์† ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์กฐ๋ฅผ ๊ณ ์ •ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ด๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@oysteinmoseng
์‚ฌ์‹ค, ์ ์–ด๋„ ๋‚ด ํ…Œ์ŠคํŠธ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํŒจํ‚ค์ง€์˜ ๋ชจ๋“ˆ์„ ๋‹ค์‹œ ๋งคํ•‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

require.config({
    packages: [{
        name: 'highcharts',
        main: 'highcharts'
    }],
    paths: {
        'highcharts': 'https://code.highcharts.com'
        'highcharts/modules/exporting': 'http://code.highcharts.local/modules/exporting'
    }
});

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฐ˜๋ก ์ด ํ•ด๊ฒฐ๋ฉ๋‹ˆ๊นŒ?

์ด ๋ฌธ์ œ๊ฐ€ ์ข…๋ฃŒ๋œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
์ €๋Š” Highchart 7.1.1์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ํด๋ผ์ด์–ธํŠธ ์ธก ๋ชจ๋“ˆ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์š”๊ตฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Requirejs ๊ตฌ์„ฑ:

    map: {
        '*': {
            //charts: 'js/highcharts' <-- I also tried this one
        }
    },
    paths: {
        charts: 'js/highcharts'
    },
    shim: {
        charts: {
            exports: 'Highcharts',
            deps: ['jquery']
        }
    }

ํŒŒ์ผ์ด ๋‚ด ๋ธŒ๋ผ์šฐ์ €์— ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋กœ๋“œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Screen Shot 2019-05-06 at 15 47 17

๊ทธ๋Ÿฌ๋‚˜ ๋‚ด ๋ชจ๋“ˆ์—์„œ๋Š” ์ •์˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

define([
    'jquery',
    'charts'
], function ($, charts) {
    console.log(charts); //Undefined
    console.log(Highcharts); //Throws an error "Highcharts not defined"

์ฐธ๊ณ : js/highcharts ๋Š” node_modules/highcharts/highcharts.js ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.
์–ด๋–ค ์•„์ด๋””์–ด๋ผ๋„?

@vincentwinkel Highcharts๋Š” ์ด์ œ AMD๋ฅผ ์ง€์›ํ•˜๋ฏ€๋กœ shim ๊ตฌ์„ฑ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ์œ„์˜ ์„ค๋ช…์— ์„ค๋ช…๋œ ๋Œ€๋กœ Highcharts ํŒจํ‚ค์ง€๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์–ธ์ œ๋“ ์ง€ ์ง€์› ํŒ€ ์—

map / path shim ์žˆ๊ฑฐ๋‚˜ ์—†๋Š” ๋ชจ๋“  ์กฐํ•ฉ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์•„๋ฌด ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
Highcharts 6.1.1์„ ์‚ฌ์šฉํ•ด ๋ณด์•˜๋Š”๋ฐ shim ์—†์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ์ œ ์ƒ๊ฐ์—๋Š” Highcharts 7.1.1์— ํ™•์‹คํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

[ํŽธ์ง‘] ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์œ„์˜ ์ œ์•ˆ์„ ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ง์”€ํ•˜์‹  ๊ฒƒ์ฒ˜๋Ÿผ AMD๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ ์ถ”๊ฐ€ ๊ตฌ์„ฑ์„ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”,

๋‚˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘๋™ํ•˜๋„๋ก ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

require.config({
    packages: [{
        name: 'highcharts',
        main: 'highcharts'
    }],
    paths: {
        // Change this to your server if you do not wish to use our CDN.
        'highcharts': 'https://code.highcharts.com'
    }
});

์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ๋“  ๊ณต์‹ ๋ฌธ์„œ์˜ ์ผ๋ถ€๊ฐ€ ๋˜๋„๋ก ์š”์ฒญํ•ด๋„ ๋ฉ๋‹ˆ๊นŒ? ๊ทธ๋ž˜์„œ github ๋ฌธ์ œ์˜ ์ฃผ์„ 2348445์—์„œ ์ด๊ฒƒ์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ฐพ์„ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๊นŒ?

์ด์— ๋Œ€ํ•œ ๋ฌธ์„œ๊ฐ€ ์—†๋Š” ์ง„์งœ ์ด์œ ๋Š” requirejs ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์‹ค์ œ๋กœ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๋ฉด ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ์•Œ๋ ค์ฃผ์„ธ์š” :-) ์šฐ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค!

์•ˆ๋…•ํ•˜์„ธ์š” @pmorch , ์•Œ๋ ค์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ๋กœ์„œ๋Š” CDN ์—์„œ

Highcharts๋ฅผ ๋กœ๋“œํ•˜๋Š” ๋‹ค์–‘ํ•œ ์Šคํƒ€์ผ์€ ๋ถˆํ–‰ํžˆ๋„ ํ˜„์žฌ ์ผ๋ฐ˜ ๋ฌธ์„œ์— ๋ฌธ์„œํ™”๋˜์–ด ์žˆ์ง€ ์•Š์ง€๋งŒ ์ด ์ •๋ณด๊ฐ€ ์—ฌ๊ธฐ์—๋„ ํฌํ•จ๋˜๋Š”์ง€ ํ™•์ธํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @pawelfus์ž…๋‹ˆ๋‹ค.
github์˜ ๋ชจ๋“  ๋ฌธ์„œ์™€ ๋ฌธ์ œ๋ฅผ ์‚ดํŽด๋ณด์•˜์ง€๋งŒ 6.1.2 ์ดํ›„ ๋ฒ„์ „์—์„œ Highchart ๋ชจ๋“ˆ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์—ฌ์ „ํžˆ ์ดํ•ดํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

highchart-3d ๋ชจ๋“ˆ๋กœ ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. http://jsfiddle.net/3ugb2e1q/
๋ณด์‹œ๋‹ค์‹œํ”ผ ์ฐจํŠธ๋Š” ์—ฌ์ „ํžˆ ํ‰ํ‰ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด ๋™์ผํ•œ ์œ ์‚ฌํ•œ ์ฝ”๋“œ https://jsfiddle.net/cf4Lv6u3/ ๋Š” ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
factory(Highcharts) ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

} else if (typeof define === 'function' && define.amd) {
        define('highcharts/highcharts-3d', ['highcharts'], function (Highcharts) {
            factory(Highcharts);
            factory.Highcharts = Highcharts;
            return factory;
        });

์‹ค์ œ ์‚ฌ๋ก€๋ฅผ ์•Œ๋ ค ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

7.0.3์—์„œ ๋‚ด๊ฐ€ํ•˜๊ณ ์žˆ๋Š” ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

app.js :

requirejs.config({
    baseUrl: '/js',
    paths: {
        'highcharts': 'https://code.highcharts.com/7.0.3/highcharts.src',
        'highcharts-more': 'https://code.highcharts.com/7.0.3/highcharts-more.src',
        'highcharts-exporting' : 'https://code.highcharts.com/7.0.3/modules/exporting',
        'highcharts-wordcloud' : 'https://code.highcharts.com/7.0.3/modules/wordcloud',
        'highcharts-sunburst' : 'https://code.highcharts.com/7.0.3/modules/sunburst',
        'highcharts-annotations' : 'https://code.highcharts.com/7.0.3/modules/annotations',
        'highcharts-streamgraph' :  'https://code.highcharts.com/7.0.3/modules/streamgraph',
        'highcharts-serieslabel' :  'https://code.highcharts.com/7.0.3/modules/series-label',
   }
});

ํ•˜์ด ์ฐจํŠธ์—๋Š” ์‹ฌ์ด ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ Highcharts์— ๋Œ€ํ•ด ์›ํ•˜๋Š” ํŠน์ • ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ๋ชจ๋“ˆ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด modules/highcharts.js :

define([
    'jquery', 'highcharts', 'highcharts-more', 'highcharts-exporting', 'highcharts-serieslabel'
], function(
    $, Highcharts, HighchartsMore, HighchartsExporting, HighchartsSerieslabel) {

    var HS = function() {
        HighchartsMore(Highcharts);
        HighchartsExporting(Highcharts);
        HighchartsSerieslabel(Highcharts);
    };

    new HS();

    return Highcharts;
});

๋˜๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด modules/somethingElse/highcharts.js :

define([
    'jquery', 'highcharts', 'highcharts-more', 'highcharts-exporting', 'highcharts-wordcloud', 'highcharts-sunburst',
    'highcharts-annotations', 'highcharts-streamgraph', 'highcharts-serieslabel'
], function(
    $, Highcharts, HighchartsMore, HighchartsExporting, HighchartsWordcloud, HighchartsSunburst,
    HighchartsAnnotations, HighchartsStreamgraph, HighchartsSerieslabel) {

    var HC = function() {
        HighchartsMore(Highcharts);
        HighchartsExporting(Highcharts);
        HighchartsWordcloud(Highcharts);
        HighchartsSunburst(Highcharts);
        HighchartsAnnotations(Highcharts);
        HighchartsStreamgraph(Highcharts);
        HighchartsSerieslabel(Highcharts);
    };

    new HC();

    return Highcharts;
});

๊ทธ๋ฆฌ๊ณ  stats.js ์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ :

define(['jquery', 'modules/highcharts'], function($, Highcharts) {

    var Stats = function(...) {
        ...
    };

    Stats.prototype = {
         initMyCharts: function() {
              $('...').highcharts({
                    ...
              });
         }
    }

    return Stats;
});

๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์ด ์Šค๋ ˆ๋“œ์—์„œ ์ดํ•ดํ•œ ๋ฐ”์™€ ๊ฐ™์ด 7.0.3์„ ์œ„ํ•œ ๊ฒƒ์ž„์„ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ฃผ์˜ํ•˜์‹ญ์‹œ์˜ค. ๋‚˜์ค‘์— ๋กœ๋“œ๋ฅผ ๋ณ€๊ฒฝํ–ˆ๊ณ  ์ด์ œ๋Š” ๋‹ค์‹œ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @sergevic๋‹˜ , ๊ถŒ์žฅ ์ ‘๊ทผ ๋ฐฉ์‹์€ CDN์—์„œ AMD ๋ชจ๋“ˆ๋กœ Highcharts ๋กœ๋“œ์— ๋ฌธ์„œํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด์— ๋”ฐ๋ผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค .

์•ˆ๋…•ํ•˜์„ธ์š” requirejs๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ highstock์˜ ์ข…์†์„ฑ์„ ๋กœ๋“œํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ด์ฐจํŠธ ํฌ๋Ÿผ์— ๊ฒŒ์‹œ๋จ:
https://www.highcharts.com/forum/viewtopic.php?f=12&t=42874&p=150985#p150985
์ข…์†์„ฑ์ด ์„œ๋ฒ„์—์„œ ์ œ๊ณต๋˜๊ณ  URL์ผ ๋•Œ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š” ๋™์•ˆ "์ •์˜๋˜์ง€ ์•Š์Œ" ๋ฌธ์ œ์— ์ง๋ฉดํ•ฉ๋‹ˆ๋‹ค. ์นœ์ ˆํ•˜๊ฒŒ ์กฐ์–ธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”.

์•ˆ๋…•ํ•˜์„ธ์š” @sina123s ์ž…๋‹ˆ๋‹ค .

Highcharts๋Š” ์ž์ฒด ๋‚ด๋ถ€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค highcharts ๋ฅผ amd์— ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚ด๋ถ€ ์ข…์†์„ฑ์„ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด highcharts/modules/stock ๋Š” ์ž๋™์œผ๋กœ ํ•„์š”ํ•œ highcharts ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค.
์ด๋Š” highstock ๊ฐ€ requirejs์— ๋“ฑ๋ก๋œ ๋ชจ๋“ˆ์„ ์ฐธ์กฐํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋“ˆ์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ highcharts/highstock id๋กœ ๋“ฑ๋ก๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ CDN์—์„œ AMD ๋ชจ๋“ˆ๋กœ ๋กœ๋“œ ํ•˜์ด์ฐจํŠธ์— ์„ค๋ช…๋œ ๊ตฌ์„ฑ์„ ๋งž๊ฒŒ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ์ข…์†์„ฑ๊ณผ ๊ด€๋ จ๋œ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์„œ๋ฒ„์— Highcharts ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์ง€๋งŒ ๋ชจ๋“ˆ์—๋Š” highstock.js๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ๋‚ด VM ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์ €์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ๊ตฌ์„ฑ๊ณผ ๊ฐ™๋„๋ก ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ •์˜๋˜์ง€ ์•Š์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์œ„์น˜๋ฅผ ์•„๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ํ˜ผ๋ž€์Šค๋Ÿฝ๊ณ  ์ธํ„ฐ๋„ท ๊ฒ€์ƒ‰์—์„œ ๊ฐ€๋Šฅ์„ฑ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์•„๋ฌด๋ฐ๋„ ๋„๋‹ฌํ•˜์ง€ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ๊ฐ€ ์—‰๋ง์ด ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค!

requirejs.config({
ํŒจํ‚ค์ง€: [{
์ด๋ฆ„: 'ํ•˜์ด์ฐจํŠธ',
๋ฉ”์ธ: 'ํ•˜์ด์ฐจํŠธ'
}],
๊ฒฝ๋กœ: {
jquery: "js/jquery/jquery",
"datatables.net": "js/datatables/js/jquery.dataTables.min",
"datatables.net-css": "js/datatables/css/jquery.dataTables.min",
tippy: "js/tippy.all.min",
fixedHeader: "js/datatables/js/dataTables.fixedHeader.min",
"fixedHeader-css": "js/datatables/css/fixedHeader.dataTables.min",
jquerymin: "js/jquery-1.10.2.min",
colpick: "js/colpick",
colpickcss: "css/colpick",
highstock: "js/highstock"
},
์‹ฌ: {
"datatables.net": ["jquery", "css!datatables.net-css"],
fixedHeader: ["css!fixedHeader-css"],
colpick: ["css!colpickcss"]
}
});
require.config({
์šฐ์„  ์ˆœ์œ„: ["jquery", "jquerymin", "colpick"]
});
ํ•„์š”ํ•˜๋‹ค([
"jquery", "tippy", "DS/3DXHighcharts/3DXHighcharts", "highstock", "datatables.net", "fixedHeader", "jquerymin", "colpick"],
๊ธฐ๋Šฅ(
$, tippy, Highcharts, highstock )

๊ทธ๋Ÿฐ ๋‹ค์Œ Highcharts.stockChart()๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ •์˜๋˜์ง€ ์•Š์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”...์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š” @sina123s๋‹˜ , ๊ท€ํ•˜์˜ ์ฝ”๋“œ์™€ ๊ด€๋ จ๋œ ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค

์•ˆ๋…•ํ•˜์„ธ์š” @sina123s ์ž…๋‹ˆ๋‹ค .

๋‹ค์Œ์€ ๋กœ์ปฌ ์†Œ์Šค ํด๋”์—์„œ Highcharts๋ฅผ ๋กœ๋“œํ•˜๋„๋ก RequireJS๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ฃผ๋Š” ์˜ˆ์ž…๋‹ˆ๋‹ค. https://codesandbox.io/s/static-jixls

์ด ์˜ˆ์—์„œ๋Š” highstock.js ๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ์„ค์ •ํ–ˆ์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ€์žฅ ์œ ์—ฐํ•œ ์†”๋ฃจ์…˜์€ highcharts.js ๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  highcharts/modules/stock ๋ฅผ ์ข…์†์„ฑ์œผ๋กœ ๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด๋Š” ์ผ๋ถ€ ๋ชจ๋“ˆ์ด highcharts/modules/stock ์— ๋Œ€ํ•œ ๋‚ด๋ถ€ ์ข…์†์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— highstock.js ๊ฐ€ ๊ธฐ๋ณธ์ด๋ฉด ์ด ๊ฒฝ์šฐ ์ผ๋ถ€ ์ฝ”๋“œ๊ฐ€ ๋‘ ๋ฒˆ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ์•ฑ์˜ ๋ฒˆ๋“ค ํฌ๊ธฐ๊ฐ€ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @jon-a-nygaard ์˜ˆ๋ฅผ ๋“ค์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์•„ํŒŒ์„œ ์ด๊ฒƒ์„ ํ…Œ์ŠคํŠธ ํ•  ๊ธฐํšŒ๋ฅผ ์–ป์ง€ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๋‹ต ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ด ์ฐจํŠธ์— ๋Œ€ํ•œ ๋‚ด ์„œ๋ฒ„ ํด๋”๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
highcharts_server
๋ชจ๋“ˆ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ highstock์„ ์ฐพ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— Highstock.js๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ๋””๋ ‰ํ† ๋ฆฌ ์ค‘ ํ•˜๋‚˜์— ๋ฐฐ์น˜ํ•˜๊ณ  requirejs.config์—์„œ ์ฐธ์กฐํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. Highcharts ๋˜๋Š” highstock๋งŒ ๋˜๋Š” ๋‘˜ ๋‹ค์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๊ณ„์† ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ๋‚ด ์š”์ ์„ ๋ถ„๋ช…ํžˆ ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @sina123s

Highcharts v4.0.3์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. v7๋กœ ์—…๋ฐ์ดํŠธ๋ฅผ ์‹œ๋„ํ•˜์…จ์Šต๋‹ˆ๊นŒ?

์ฐธ๊ณ : Highstock with Highcharts v4.0.3์„ ์ฃผ๋ฌธํ•˜๋ ค๋ฉด Highstock v2.0.3( ๋งํฌ )์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹œ์—๋Š” stock ๋ชจ๋“ˆ์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ํฅ๋ฏธ๋กญ๊ฒŒ๋„ ์ด๊ฒƒ์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.
image
๊ทธ๋Ÿฌ๋‚˜ highstock ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด ์ฝ”๋“œ์—์„œ ์ด๋Ÿฌํ•œ ๊ฒฝ๋กœ๋ฅผ ์ˆ˜์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. "DS/SMAHighcharts/Highcharts"๊ฐ€ ์žˆ์„ ๋•Œ ์˜ฌ๋ฐ”๋ฅธ ๊ฒฝ๋กœ๋ฅผ ์–ป์ง€ ๋ชปํ•˜๊ณ  ์ •์˜๋˜์ง€ ์•Š์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š” @sina123s๋‹˜ , ๋งˆ์ง€๋ง‰ ์งˆ๋ฌธ์„ ์ œ๋Œ€๋กœ ์ดํ•ดํ–ˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์ฃผ์‹ ๋ชจ๋“ˆ๊ณผ ํ•จ๊ป˜ Highcharts๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด https://codesandbox.io/s/static-lo70d ์—์„œ์™€ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด Highstock์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ https://codesandbox.io/s/static-jixls ์—์„œ์™€ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ require.config ์—์„œ ์ œ๊ณต๋˜๋Š” paths.highcharts ๋Š” Highcharts ํŒŒ์ผ์ด ์žˆ๋Š” ํด๋”๋ฅผ ๊ฐ€๋ฆฌ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ํด๋”๋Š” ๋งˆ์ง€๋ง‰ ์ฃผ์„์—์„œ DS/SMAVenHighcharts/6.0.7/ ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ตฌ์„ฑ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

```
requirejs.config({
๊ฒฝ๋กœ: {
ํ•˜์ด์ฐจํŠธ: "DS/SMAVenHighcharts/6.0.7"
}
})

์ฝ”๋“œ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
requirejs.config({
๊ฒฝ๋กœ: {
....
ํ•˜์ด์ฐจํŠธ: "DS/SMAVenHighcharts/6.0.7"
},
ํŒจํ‚ค์ง€: [
{
์ด๋ฆ„: "ํ•˜์ด์ฐจํŠธ",
// highcharts.js๋ฅผ ๋ฉ”์ธ์œผ๋กœ ์„ค์ •
๋ฉ”์ธ: "ํ•˜์ด์ฐจํŠธ"
}
]
});
require(["jquery", "tippy", "DS/WAFData/WAFData", "DS/i3DXCompassServices/i3DXCompassServices", "DS/PlatformAPI/PlatformAPI",
"DS/DataDragAndDrop/DataDragAndDrop","DS/LifecycleControls/EditPropDialog", "highcharts", "highcharts/modules/stock"

ํ•˜์ง€๋งŒ ์ด์ œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์Šคํฌ๋ฆฝํŠธ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
RequireJS ์˜ค๋ฅ˜ ์œ ํ˜•: ๋ชจ๋“ˆ์— ๋Œ€ํ•œ "์Šคํฌ๋ฆฝํŠธ ์˜ค๋ฅ˜": ["highcharts/modules/stock"]
์žกํžˆ์ง€ ์•Š์€ ์˜ค๋ฅ˜: ์Šคํฌ๋ฆฝํŠธ ์˜ค๋ฅ˜: highcharts/modules/stock
AmdLoader.js:1 ์žกํžˆ์ง€ ์•Š์€ ์˜ค๋ฅ˜: ์Šคํฌ๋ฆฝํŠธ ์˜ค๋ฅ˜: highcharts/highcharts

๊ทธ๋Ÿฌ๋‚˜ SMAVenHighcharts/6.0.7/modules/stock.js ๊ฒฝ๋กœ๋Š” ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค.
์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. Highstock ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ด ๋ฌธ์ œ๋ฅผ ์–ด๋””์—์„œ ์–ด๋–ป๊ฒŒ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ์ž‘๋™์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์˜ค๋žซ๋™์•ˆ ๋…ธ๋ ฅํ–ˆ์ง€๋งŒ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ  ์‚ฌํ•ญ: ์ €๋Š” Dassault Systemes์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ Highchart์—์„œ๋งŒ ์ž‘๋™ํ•  ๋•Œ highchart js ํŒŒ์ผ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ๋ชจ๋“ˆ์€ ๊ณ ๋ คํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์•Œ๊ณ  ์žˆ์ง€๋งŒ, ์ด ๊ฐœ๋…์€ ๋‚ด ๋จธ๋ฆฌ์— ์กฐ๊ธˆ ๋“ค์–ด์˜ค์ง€ ์•Š๋Š”๋‹ค! ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์— ๋Œ€ํ•ด ์•ˆ๋‚ดํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์œผ๋ฉด ์นœ์ ˆํ•˜๊ฒŒ ์กฐ์–ธํ•˜์‹ญ์‹œ์˜ค. ๊ฐ์‚ฌ ํ•ด์š”.

์•ˆ๋…•ํ•˜์„ธ์š” @sina123s , ํ”„๋กœ์ ํŠธ์˜ ๋ผ์ด๋ธŒ ์žฌ์ƒ์‚ฐ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋ฌธ์ œ์˜ ์›์ธ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ์ ํŠธ์— ๋ฏผ๊ฐํ•œ ์ •๋ณด๋‚˜ ๊ฐœ์ธ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ [email protected]์œผ๋กœ ๋ฌธ์˜ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค

์•ˆ๋…•ํ•˜์„ธ์š”..์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ๋ผ์ด๋ธŒ ์žฌ์ƒ์‚ฐ์„ ์ œ๊ณตํ•˜์ง€ ๋ชปํ•˜๊ฑฐ๋‚˜ ๋ฏผ๊ฐํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ์ฝ”๋“œ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์—†์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฒฝ๋กœ shim ๋“ฑ์— ๊ด€ํ•œ ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์œผ๋ฉฐ, ๋ชจ๋“ˆ ๋””๋ ‰ํ† ๋ฆฌ ๋ฐ ๊ธฐํƒ€ ํŒŒ์ผ์„ ์ œ์™ธํ•˜๊ณ  js ํŒŒ์ผ๋งŒ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. :
require.config({
๊ฒฝ๋กœ: {
"DS/SMAVenHighcharts": a
},
์‹ฌ: {
"DS/SMAVenHighcharts": {
๋‚ด๋ณด๋‚ด๊ธฐ: "ํ•˜์ด์ฐจํŠธ"
}
}
})
define("DS/SMAHighcharts/Highcharts", ["../SMAVenHighcharts/6.0.7/highcharts"], function(a) {
๋ฐ˜ํ™˜
});

๊ทธ๊ฒƒ์ด ๋‚ด๊ฐ€ ์ถ”์ธกํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.
๋˜ํ•œ requirejs.config ๋ถ€๋ถ„์˜ ์˜ˆ์ œ์™€ ๊ฐ™์ด ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š๊ณ  undefined๋กœ ํ‘œ์‹œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•  ์ˆ˜๋„ ์—†์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @sina123s ์ž…๋‹ˆ๋‹ค .

์ด์ œ ๋ฌธ์ œ์˜ ๊ตฌ์ฒด์ ์ธ ๋ฒ„์ „์„ ๋ณด์—ฌ์ฃผ์‹ค ๋•Œ๊ฐ€ ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ์— ๋ฏผ๊ฐํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋ฉด ์•„์ง ๋ฌธ์ œ๋ฅผ ์ค„์ด๋Š” ๋ฐ ์ถฉ๋ถ„ํ•œ ์‹œ๊ฐ„์„ ๋“ค์ด์ง€ ์•Š์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด https://stackoverflow.com/help/minimal-reproducible-example์„ ์ฐธ์กฐ

์ œ ์ƒ๊ฐ์—๋Š” @jon-a-nygaard๊ฐ€ ์ง€๊ธˆ๊นŒ์ง€ ๋‚˜์˜จ ๊ฒƒ ์ด์ƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋‹น์‹ ์ด ์šฐ๋ฆฌ์™€ ๊ทธ์—๊ฒŒ _๋‹น์‹ ์ด ๊ฒช๊ณ  ์žˆ๋Š” ์ •ํ™•ํ•œ ๋ฌธ์ œ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š”_ ๊ตฌ์ฒด์ ์ด๊ณ  ์ž‘๊ณ  ์ฝ๊ธฐ ์‰ฌ์šด ์˜ˆ๋ฅผ ์ œ๊ณตํ•  ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค.

๋ถ€์ž‘์šฉ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ์ ์  ๋” ์ž‘๊ฒŒ ๋งŒ๋“ค๊ณ  ๋…์  ๋ฐ ๊ด€๋ จ ์—†๋Š” ๋ถ€๋ถ„์„ ์ œ๊ฑฐํ•˜๋Š” ๊ณผ์ •์—์„œ ์Šค์Šค๋กœ ๋‹ต์„ ์ฐพ์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  75% ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค... ์ •๋ง ๋งค์šฐ ๊ฐ•๋ ฅํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ž์ฒด์ ์œผ๋กœ ๋””๋ฒ„๊น…ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ๊ฒŒ์‹œํ•˜๋Š” ์ฝ”๋“œ ์กฐ๊ฐ์˜ ํ˜•์‹์„ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ์‹ญ์‹œ์˜ค. ๊ฒŒ์‹œํ•œ ์ฝ”๋“œ๋ฅผ ์ฝ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Markdown ๋งˆ์Šคํ„ฐ๋ง์˜ '๊ตฌ๋ฌธ ๊ฐ•์กฐ ํ‘œ์‹œ' ์ฐธ์กฐ

์˜ˆ, ์ด ๋ชจ๋“  ์ž‘์—…์—๋Š” ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์žฅ๊ธฐ์ ์œผ๋กœ ๋ณด๋ฉด ๋„์›€์„ ์ค„ ์‚ฌ๋žŒ์ด ์—†๋‹ค๋ฉด ๋„์™€์ค„ ์‚ฌ๋žŒ์„ ์ฐพ๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ์งง์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค... :-)

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰