C3: D3 4.0 ํ˜ธํ™˜์„ฑ

์— ๋งŒ๋“  2016๋…„ 04์›” 12์ผ  ยท  30์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: c3js/c3

D3 4.0๊ณผ์˜ ํ˜ธํ™˜์„ฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

C-feature-request question

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

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

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

๋ฐฉ๊ธˆ 0.4.11-rc4 ๋ฒ„์ „์— C3๋ฅผ ์„ค์น˜ํ•˜๊ณ  4.0.0-alpha.29 ๋ฒ„์ „์— D3๋ฅผ ์„ค์น˜ํ–ˆ๋Š”๋ฐ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. :(

์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. D3 4.0์— ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์œผ๋ฏ€๋กœ c3.js ํ˜ธ์ถœ๋„ ์—…๋ฐ์ดํŠธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค :

๋ฒ„์ „ 4.0์€ ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ์ฃผ์š” ๋ฆด๋ฆฌ์Šค์ž„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

https://github.com/visfest/topics2015/blob/master/d3-v4.md

ํฅ๋ฏธ ๋กญ๊ตฐ. ์•„๋งˆ๋„ ์ด๊ฒƒ์€ Webpack fork ์— ๋Œ€ํ•ด ์—ฐ๊ตฌํ•˜๊ณ ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ๋งŽ์€ ๋ถ€๋ถ„์„ ๋” ๋ชจ๋“ˆํ™”๋˜๋„๋ก ์žฌ ์ž‘์„ฑํ•  ์ˆ˜์žˆ๋Š” ์ข‹์€ ๊ธฐํšŒ ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์ œ ๋ชจ๋“  ๊ฒƒ์ด D3์—์„œ Rollup๊ณผ ํ•จ๊ป˜ ES6 ๊ฐ€์ ธ ์˜ค๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“ˆ์„ ๋” ์ž˜ ์‚ฌ์šฉํ•˜์—ฌ C3์™€ ํŠธ๋ฆฌ ์‰์ดํ‚น๊ณผ ๊ฐ™์€ ๊ฒƒ์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ •๋ง ํ˜„๋ช… ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฆ‰, ์ €๋Š” JS ๋””์ž์ธ ํŒจํ„ด ์ „๋ฌธ๊ฐ€ ๊ทผ์ฒ˜์— ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํฌํฌ๋ฅผ ๋ณด๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ ํŒŒ์ผ์„ CommonJS๋กœ ๊ฐ€์ ธ ์™€์„œ ์—ฐ๊ฒฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์œ ์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋” ๋ชจ๋“ˆํ™”๋˜๋„๋ก ๋ฆฌํŒฉํ† ๋งํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ œ์•ˆ์€ ๋งŽ์ด ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” forking c3๋ฅผ ๊ณ ๋ คํ•ด ์™”๊ณ , ๋‚ด๋ถ€ ๋„๊ตฌ๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๋‚ด ์ž์‹ ์˜ ๋ฒ„์ „์„ ์ ๊ทน์ ์œผ๋กœ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋งŽ์€ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•ด์•ผํ–ˆ๊ณ , ๋ถˆํ–‰ํžˆ๋„์ด ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ์ปค๋ฐ‹์€ ๋ฐ›์•„ ๋“ค์—ฌ์ง€์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ถ”๊ฐ€ ํ•œ ๊ฒƒ ์ค‘ ์ผ๋ถ€๋Š” ์• ํŠธ๋ฆฌ๋ทฐํŠธ์™€ ์„ ํƒ๊ธฐ์˜ ์บ์‹ฑ์ธ๋ฐ, ์ด๋กœ ์ธํ•ด ์ฐจํŠธ ๋‹ค์‹œ ๊ทธ๋ฆฌ๊ธฐ ๋ฐฉ๋ฒ•๊ณผ ์ดˆ๊ธฐ ๋ Œ๋”๋ง์—์„œ ์„ฑ๋Šฅ์ด ๋‘ ๋ฐฐ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ทธ๋ผ๋””์–ธํŠธ ์ฐจํŠธ๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ๊ธฐ๋Šฅ๊ณผ ๋” ๋‚˜์€ ๋„๊ตฌ ์„ค๋ช…๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋™์•ˆ ๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์€ ์ˆ˜๋งŽ์€ ์ˆ˜์ • ์‚ฌํ•ญ.

c3.core๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  ์ฐจํŠธ๋ฅผ ํฌํ•จํ•˜์—ฌ ์Šˆํผ ๋ฆฐ ๋นŒ๋“œ๋ฅผ ์ƒ์„ฑ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. c3์˜ ์ฐจํŠธ.

c3์— ํฌํ•จ๋  ์ˆ˜์žˆ๋Š” D3-4.0 ๊ฐœ์„  ์‚ฌํ•ญ์€ ๋งํ•  ๊ฒƒ๋„ ์—†์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ๋‚˜๋Š”์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด ๊ณ ๋ฐฑ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์šฐ๋ฆฌ๊ฐ€์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ด ์Šฌํ”„๊ฒŒ๋„ ์ตœ๊ณ ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” c3์™€ d3 @ v4๋ฅผ ๊ฐ€์ง€๊ณ  ๋†€์•˜๋‹ค

๊ทธ๋Ÿฌ๋‚˜ ES6 ๊ฐ€์ ธ ์˜ค๊ธฐ ๋ฐ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด c3์˜ concat ๋ฐ d3 ์Šค๋งค์‹œ ์ž‘์—…์„ ๋Œ€์ฒดํ•˜์—ฌ ์•ฝ๊ฐ„์˜ Rollup ๋‹จ๋ง›์„ ์–ป์„ ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์„ธ ๋ฒˆ์˜ ํ”๋“ค๋ฆผ์„์œ„ํ•œ ๋งŽ์€ ๊ณต๊ฐ„์„ ๋‚จ๊ฒจ ๋‘์ง€ ์•Š์ง€๋งŒ, ๋‚˜๋Š” ๋•œ์งˆ์„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

@abacaj ๋‚ด๊ฐ€ ๊ณผ๊ฑฐ์— ํ•œ ์ผ์€ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์™€ ์žฅ๊ธฐ ํฌํฌ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“  ์กฐ์ง์œผ๋กœ ํฌํฌํ•˜๋Š” ๊ฒƒ์ด ์—ˆ์Šต๋‹ˆ๋‹ค : https://github.com/huaofoundrie. ๊ด€์‹ฌ์ด ์žˆ์œผ์‹œ๋ฉด ์ €์—๊ฒŒ ๋ง์”€ํ•ด ์ฃผ์‹œ๋ฉด c3 nextgen์„ ๊ด€๋ฆฌ ํ•  ์ˆ˜ โ€‹โ€‹์žˆ๋„๋ก ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@abacaj ๋ฐ @amenadiel ์•ˆ๋…•ํ•˜์„ธ์š”! ์•„์ง ํฌ๊ธฐํ•˜์ง€ ๋งˆ์„ธ์š”. ์ €๋Š” ๋ฌธ์ œ ๋Œ€๊ธฐ์—ด๊ณผ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์—„์ฒญ๋‚œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ 0.4.11์„ ๋ฐ€์–ด ๋‚ผ ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

๊ทธ ํ›„ ์šฐ๋ฆฌ๋Š” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๋ฆด๋ฆฌ์Šค๋ฅผ ์œ„ํ•ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์–ธ๊ธ‰ ํ•œ ๋งŽ์€ ๋‚ด์šฉ์„ ์–ป์„ ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๊ณ  ์žˆ์œผ๋ฉฐ, ์•ž์œผ๋กœ ํ›จ์”ฌ ๋” ๋น ๋ฅด๊ฒŒ ๋ฐ˜๋ณต ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋‘ ์‚ฌ๋žŒ์„ ์–ด๋–ป๊ฒŒ ๋“  ์ฐธ์—ฌ์‹œํ‚ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค ( @abacaj , ๊ท€ํ•˜์˜ ์ƒ๊ฐ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค : c3.core๋Š” ํ˜„๋ฌผ์ž…๋‹ˆ๋‹ค. ์ง€๋‚œ ๋ฉฐ์น  ๋™์•ˆ ์ •ํ™•ํžˆ ์–ด๋–ป๊ฒŒ ํ•  ๊ฒƒ์ธ์ง€ ๊ณ ๋ คํ•ด ์™”์Šต๋‹ˆ๋‹ค). ๋‚ด๊ฐ€ ๋‹น์‹ ์ด ๊ฒช์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋™์•ˆ ๋‹น์‹ ์ด ํ•œ ์ผ์„ ๋ฌธ์„œํ™” / ์‹ ์šฉ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹น์‹ ์˜ ๊ฐœ์ธ ํฌํฌ๋ฅผ ์–ด๋”˜๊ฐ€์— ๋ฐ€์–ด ๋„ฃ์œผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๊ฐ์‚ฌ! ๐Ÿ˜„

@aendrew ํ™•์‹คํžˆ,์ด ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์‹œ ์›€์ง์ด๊ณ  ์‹ถ๋‹ค๋ฉด, ๋ฌผ๋ก  ์ €์˜ ์ฒซ ๋ฒˆ์งธ ์„ ํƒ์€ ๋ฉ”์ธ ์ €์žฅ์†Œ์— ๊ธฐ์—ฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

์š”์ฆ˜ POC๋ฅผ ๋งŒ๋“ค ๊ฒŒ์š”

v4๊ฐ€ ๊ณต์‹์ ์œผ๋กœ ์ถœ์‹œ ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. c3๋ฅผ ํ†ตํ•ด ์ œ๊ณต๋˜๋Š” ์—…๋ฐ์ดํŠธ๋ฅผ ๋ณด๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@travi์— ๋™์˜ํ•˜๊ณ  ์ ์–ด๋„ ์ฒซ ๋ฒˆ์งธ "์‹œ์ž‘ํ•˜๊ธฐ"์˜ˆ์ œ ๋Š” d3 4.0.0์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ์ €๋Š” bower์—์„œ ์ œ์•ˆํ•œ d3 3.5.0 ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋ชจ๋“  ๋ฒ„์ „์„ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ณ  ์ ์ ˆํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

@alundiak et al, 4.0์—์„œ๋Š” ๊ทธ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. D3 v4๋Š” ์™„์ „ํžˆ ๋‹ค๋ฅธ ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค๋ฅผ ๊ฐ€์ง€๋ฉฐ ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. v4๋กœ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ๊ฐ„๋‹จํ•œ ์ž‘์—…์ž…๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‹œ์ž‘ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. c3๋ฅผ es6 ๋ชจ๋“ˆ๋กœ ๋ถ„๋ฆฌํ•˜๋ฉด ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

d3์— ES6 shim์„ ์‚ฌ์šฉํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋Œ€๋ถ€๋ถ„์˜ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ–ˆ์ง€๋งŒ ๋ชจ๋“ˆ ๊ตฌ์กฐ์™€ ์ผ๊ด€๋œ ํด๋” ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค๊ธฐ ์ „๊นŒ์ง€๋Š” ๋งŽ์€ ์ž‘์—…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ ์–ด๋„ Chart, Chartinternal ๋ฐ Axis๋Š” ์„ธ ๊ฐœ์˜ ๋ถ„๋ฆฌ ๋œ ๋ชจ๋“ˆ์ด์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์•ž์„œ ์–ธ๊ธ‰ ํ•œ ๋ชจ๋“ˆ์˜ ์ผ๋ถ€ ์ •์  ๋ฉ”์„œ๋“œ๋Š” ์ž์ฒด์ ์œผ๋กœ ๋ฉ”์„œ๋“œ๊ฐ€๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ ์‹คํ—˜ ๊ฒฐ๊ณผ๋กœ PR์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค : https://github.com/c3js/c3/pull/1765

์—ฌ๊ธฐ์—๋Š” d3์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ์˜ d3 @ 3 ์Šค์ผˆ๋ ˆํ†ค์„ ์‚ฌ์šฉํ•˜๊ณ  d3 @ 4 ์„œ๋ธŒ ๋ชจ๋“ˆ๋กœ ์›์ˆญ์ด ํŒจ์น˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ # 1765๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ• ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

D4 ๋ฒ„์ „ 4๋กœ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š์œผ๋ฉด ๋” ์ด์ƒ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@Niondir ํ˜ธ๊ธฐ์‹ฌ์— ์™œ ์ด๋Ÿฐ ๊ฒฝ์šฐ์ž…๋‹ˆ๊นŒ? V4๋Š” D3์˜ ๊ธฐ๋Šฅ์ด๋‚˜ ์•ˆ์ •์„ฑ์— ํฐ ๋ณ€ํ™”๋ฅผ ๊ฐ€์ ธ ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ๋‹ค๋ฅธ ๊ณณ์—์„œ D3 v4๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋ฉด (๊ทธ๋ฆฌ๊ณ  C3์˜ ๋ฒ„์ „์ด ์ถฉ๋Œ์„ ์ผ์œผํ‚ค๋Š” ๊ฒฝ์šฐ), C3๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” D3์˜ ๋ฒ„์ „์€ ๊ทธ๋‹ค์ง€ ์ค‘์š”ํ•˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค. , v4 ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ง„ํ–‰ํ•ด์•ผํ•˜๋Š” ๋ถ€๋‹ด์ด ์ฆ๊ฐ€ ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ด๋ฒˆ ์ฃผ # 1765์—์„œ @amenadiel ์˜ ๊ด‘๋ฒ”์œ„ํ•œ PR์„๋ณด๊ณ  ์žˆ์œผ๋ฉฐ ๊ถ๊ทน์ ์œผ๋กœ์ด๋ฅผ C3 v1 ์šฉ V4๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ์œ„ํ•œ ๊ธฐ์ดˆ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘ ์ธ๋‚ดํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ์•„๋งˆ๋„ ์ง€๊ธˆ ์ „์ฒด ๋Œ€๊ธฐ์—ด์—์„œ ๊ฐ€์žฅ ์‚ฌ์†Œํ•œ ๋ฌธ์ œ ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๐Ÿ˜„

์„ ํƒ๊ธฐ์—์„œ merge () ํ•จ์ˆ˜๊ฐ€ ๋ˆ„๋ฝ ๋œ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค.

@Niondir ์ข‹์•„์š”, v4์—๋Š” selection.merge ์ด ์žˆ์ง€๋งŒ v3์—๋Š” ์—†์Šต๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด ์ผ์ƒ์ ์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ์— ์–ด๋–ค ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ ๊นŒ? C3 ์™ธ๋ถ€์—์„œ D3๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•  ๋•Œ๊นŒ์ง€ v4๋ฅผ ์‚ฌ์šฉํ•ด๋„ ์‹ค์งˆ์ ์ธ ์ด์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ์˜คํ•ดํ•˜์ง€ ๋งˆ์„ธ์š”. C3 ๊ฐœ๋ฐœ์˜ ๋งฅ๋ฝ์—์„œ v4๋กœ ์—…๋ฐ์ดํŠธํ•ด์•ผํ•˜๋Š” ๋งŽ์€ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค (์‚ฌ์šฉ์ž ์ง€์ • ๋นŒ๋“œ ๋ฐ ๊ทธ์ค‘ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํฌ๊ธฐ ๊ฐ์†Œ).ํ•˜์ง€๋งŒ ์ตœ์ข… ์‚ฌ์šฉ์ž์˜ ๊ด€์ ์—์„œ๋Š” ํ˜„์žฌ ์š•๋ง. ์œ ์Šค ์ผ€์ด์Šค์— ๋Œ€ํ•œ ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! ๐Ÿ˜„

์šฐ๋ฆฌ๊ฐ€ ํ™œ์šฉํ•˜๊ณ  ์‹ถ์—ˆ๋˜ ํ•œ ๊ฐ€์ง€ ๋ฌธ์ œ๋Š” v4์˜ datetime ๊ตฌ๋ฌธ ๋ถ„์„์ž…๋‹ˆ๋‹ค. v3๋Š” ISO-8601 ๋‚ ์งœ์— ๋Œ€ํ•ด TZ ์˜คํ”„์…‹ ์ถฉ์‹ค๋„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ€๋ฆฌ ์ดˆ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์ง€๋งŒ v4๋Š” ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” c3 ์™ธ๋ถ€์—์„œ d3 ํฌ๋งทํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋‘ ๋ฒ„์ „์„ ๋ชจ๋‘๋กœ๋“œํ•˜์ง€ ์•Š๊ณ  ํ–ฅ์ƒ๋œ ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ™œ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@travi ๊ฑด๋ฐฐ, ๋„์›€์ด๋ฉ๋‹ˆ๋‹ค. : +1 :

d3-time-format ๋ณ„๋„์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์„ค์น˜ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜์—ฌ C3์— ์ „๋‹ฌํ•˜๋ฉด ์ž‘๋™ํ• ๊นŒ์š”? ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ์‹œ์ž‘ํ•˜๊ธฐ์— ์ข‹์€ ์ดˆ๊ธฐ ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์šฐ๋ฆฌ ์‹œ์Šคํ…œ์˜ ๊ทธ โ€‹โ€‹๋ถ€๋ถ„์— ์ถฉ๋ถ„ํžˆ ๊นŠ์ˆ™์ด ๋“ค์–ด ๊ฐ„์ง€ ์–ผ๋งˆ ์ง€๋‚˜์ง€ ์•Š์•„ ์ธ์ •ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋” ์ด์ƒ ๊ทธ ๋ถ€๋ถ„์— ๋‚ด ๋จธ๋ฆฌ๋ฅผ ๋‘์ง€ ์•Š์ง€๋งŒ ์šฐ๋ฆฌ๋ฅผ ๊ฐ€๊นŒ์ด ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” C3๊ฐ€ ๋ถ„์„์— ์‚ฌ์šฉ๋˜์—ˆ๋‹ค ํŒŒ์„œ๋ฅผ ๊ตํ™˜ ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด์žˆ์„ ๊ฒƒ ๊ฐ™์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜๋Š” ์šฐ๋ฆฌ์˜ ๋‹ค๋ฅธ ํฌ๋งคํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธ ๋ฉ€๋ฆฌ ๋ฐฑ์—… ์ด์œ ๊ฐ€ ์žˆ์—ˆ๋‹ค ํ™•์‹ ํ•œ๋‹ค data.json ์— ์ „๋‹ฌ .generate() . v4 ํŒŒ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ ์ •๋„๋ฅผ ์–ป์„ ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋ฉด ์šฐ๋ฆฌ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ์ ํ•ฉํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ๋‚˜์•„๊ฐ€๋Š” ์ข‹์€ ๋‹จ๊ณ„๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ๋ฏน์Šค์— ๋„ฃ๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์˜ ๊ตฌํ˜„์—๋Š” ๋ฒ„์ „ 4์—์„œ ํ›จ์”ฌ ๋” ์ž˜ ์ž‘๋™ํ•˜๋„๋ก ์—…๋ฐ์ดํŠธ ๋œ D3 ํŒฉ ๋ ˆ์ด์•„์›ƒ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ณ€๊ฒฝ ๋กœ๊ทธ์—์„œ :

์›ํ˜• ํŒจํ‚น ๋ ˆ์ด์•„์›ƒ ์ธ d3.pack์€ Wang ๋“ฑ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋” ์ž˜ ๊ตฌํ˜„ํ•˜๊ณ  ์ฃผ์š” ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์™„์ „ํžˆ ๋‹ค์‹œ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! Welzl์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ด์ œ Wang ๋“ฑ์ด ์‚ฌ์šฉํ•˜๋Š” ๋Œ€๋žต์ ์ธ ๋‹ต์ด ์•„๋‹Œ ๊ฐ ๋ถ€๋ชจ์— ๋Œ€ํ•œ ์ •ํ™•ํ•œ ๊ฐ€์žฅ ์ž‘์€ ๋‘˜๋Ÿฌ์‹ธ๋Š” ์›์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ˆ˜๋™์œผ๋กœ ์ฐจํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋Œ€์‹  C3.js๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ทธ ์Šค์œ„์น˜์— ๋Œ€ํ•œ ๊ฑฐ๋ž˜ ์ฐจ๋‹จ๊ธฐ์ž…๋‹ˆ๋‹ค.

์ €๋Š” C3.js์— ๋Œ€ํ•ด ๋น„ํŒ์ ์ด์ง€ ์•Š๊ณ  D3 V4๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•  ์ž‘์—…์„ ์™„์ „ํžˆ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค. ์ด ํŠน์ • ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๋Š” ๋ฐ ๋„์›€์ด๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค.

๊ณ ๋งˆ์›Œ์š”!

@beaudesigns ๊ฑด๋ฐฐ, ๋งค์šฐ ๋„์›€์ด๋ฉ๋‹ˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ v1์—์„œ ์ˆ˜ํ–‰ ํ•œ ์ž‘์—…์œผ๋กœ WIP ํ’€ ์š”์ฒญ์„ ๋งŒ๋“ค๊ณ  ๋ณ‘ํ•ฉ ํ•  ์ค€๋น„๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ์ž‘์—… ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์„ ๊ฑฐ์™€ ๋‚ด๊ฐ€ ์ž‘์—…์ค‘์ธ ์ฑ…์— ๋ฏธ์นœ ๋“ฏ์ด ๋ฐ”์˜์ง€๋งŒ, ์•ž์œผ๋กœ ๋‚˜์•„๊ฐ€๋„๋ก ๋„์™€ ์ค„ ์‚ฌ๋žŒ๋“ค์ด ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ทธ๊ฒƒ์„ ์ข‹์•„ํ•  ๊ฒƒ์ด๋‹ค.

์ด๊ฒƒ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? C3๋ฅผ D3 v4์™€ ํ˜ธํ™˜๋˜๋„๋ก ๋งŒ๋“œ๋Š” ์ž‘์—…์ด ์•ฝ๊ฐ„ ๋ฉˆ์ถ˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์˜ ์ƒํƒœ๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ? D3 4.x์— ๋Œ€ํ•ด Cannot read property 'format' ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ง€๋งŒ, ๊ด€๋ฆฌ์ž๊ฐ€ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์—์„œ ๊ฐ€์žฅ ๊ฐ€์น˜์žˆ๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ๋ ค ์ฃผ๋ฉด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ๊ธฐ๊บผ์ด ๋„์™€ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ํ›Œ๋ฅญํ•œ ์ž‘์—…์— ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!
๊ฑด๋ฐฐ,

๋‚˜๋Š” ์ด๊ฒƒ์„ # 2246์—์„œ ์ž‘์—…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ๋ช‡ ๊ฐ€์ง€ ์ˆ˜์ •์ด ํ•„์š”ํ•˜์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

https://github.com/c3js/c3/commit/ccff119809de05a68ff3e33521a79566bf12b903 ์— ์˜ํ•ด ์ถ”๊ฐ€ ๋œ D3 v4์— ๋Œ€ํ•œ ์ง€์›์ด 0.5.0 ๋ฆด๋ฆฌ์Šค์—์„œ ์ œ๊ณต๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

C3JS๋ฅผ ์ตœ์‹ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ–ˆ์„ ๋•Œ Gauge์—์„œ ํ•œ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ๋Š” https://github.com/c3js/c3/issues/2390์ž…๋‹ˆ๋‹ค.

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