C3: ์ด ๋†€๋ผ์šด ์ฐจํŠธ ๋‚ด๋ณด๋‚ด๊ธฐ

์— ๋งŒ๋“  2014๋…„ 06์›” 03์ผ  ยท  26์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: c3js/c3

question

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

๋‚ด ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ c3 ์ฐจํŠธ์— PNG ๋‚ด๋ณด๋‚ด๊ธฐ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/annatomka/ng-c3-export

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

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

C3 ์ฐจํŠธ๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ตœ๊ณ ์˜ ์ฐจํŠธ์ž…๋‹ˆ๋‹ค. ์ฐจํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์‰ฌ์šด ์ง€ ๋ฏฟ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์œ ์ผํ•œ ๊ฒƒ์€ ์ฐจํŠธ๋ฅผ ๋‚ด๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ด์™€ ๊ด€๋ จํ•˜์—ฌ ์ €๋ฅผ ๋„์™€์ฃผ์„ธ์š”.

๊ฐ์‚ฌ.

์ฐจํŠธ๋ฅผ pdf๋กœ ๋‚ด๋ณด๋‚ด๋ ค๊ณ ํ•˜๊ฑฐ๋‚˜ ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค ... ๋ˆ„๊ตฐ๊ฐ€ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์œผ๋ฉด ๋„์™€์ฃผ์„ธ์š”

ํŠนํžˆ ๋งŽ์€ ๋ธŒ๋ผ์šฐ์ € ๋ฒ„์ „์„ ์ง€์›ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ Javascript๋กœ๋งŒํ•˜๋Š” ๊ฒƒ์€ ์‰ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์บ”๋ฒ„์Šค๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ (๋ชจ๋“  ์ตœ์‹  ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ง€์›ํ•จ) ๋น„๊ต์  ์‰ฌ์šด ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. SVG๋ฅผ ์บ”๋ฒ„์Šค๋กœ ๋ณ€ํ™˜ํ•˜๋Š” canvg (https://code.google.com/p/canvg/) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ๋‹ค์Œ (http://www.nihilogic.dk/labs/canvas2image/)์™€ ๊ฐ™์ด ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ์ปฌ์— ์ด๋ฏธ์ง€ ํŒŒ์ผ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ์ง์ ‘ ์‹œ๋„ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— C3 ์ฐจํŠธ์—์„œ ์•ˆ์ •์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ํƒ๊ตฌ ํ•  ๋ฐฉํ–ฅ์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ์œ ์šฉ ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ (http://jsfiddle.net/8ypxW/3/) ์•„์ง ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‚ด๊ฐ€ ์‹œ๋„ํ•œ ๊ฒƒ์€ ์›๋ž˜ ์ฝ”๋“œ (span ํƒœ๊ทธ) ์•ˆ์— C3 ์ฐจํŠธ (div ํƒœ๊ทธ)๋ฅผ ๋„ฃ์—ˆ์ง€๋งŒ ๋‹ค์šด๋กœ๋“œ ๊ฒฐ๊ณผ๋Š” ๋นˆ ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค !!!
์—…๋ฐ์ดํŠธ : http://jsfiddle.net/panubear/mGDt8/ >> ์ถœ๋ ฅ ์ด๋ฏธ์ง€๋Š” c3 ์ฐจํŠธ์—†์ด ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ž‘์—…์ค‘์ธ C3 ๊ธฐ๋ฐ˜ ์ฐจํŠธ ๋นŒ๋”๋ฅผ ์œ„ํ•ด์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์™„๋ฃŒ๋˜๋ฉด ์ฝ”๋“œ๋ฅผ ๊ณต์œ  ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. canvg ์— ๋Œ€ํ•œ @lblb์˜ ์š”์ ์— ๋™์˜ํ•˜๋ฉด Quartz๊ฐ€ ChartBuilder์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ PNG๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๋Š” https://github.com/Quartz/Chartbuilder/blob/master/js/chartbuilder.js#L295๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ข‹์•„์š”, ์ž‘๋™ํ•˜๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ Quartz / Chartbuilder ์—์„œ ๋ป”๋ป”ํ•˜๊ฒŒ ๊ฐ€์ ธ์˜จ Angular ์ง€์‹œ๋ฌธ์ž…๋‹ˆ๋‹ค . ๋ชจ๋“  Angular ํ•ญ๋ชฉ์„ ๋ฌด์‹œํ•˜๊ณ  ๋ชจ๋“  ์‹ค์ œ ์ž‘์—…์€ createChartImages() ์—์„œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

์š”์ปจ๋Œ€ ๋‚ด๊ฐ€ํ•ด์•ผ ํ•  ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ๋นˆ canvas ์š”์†Œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  2. c3.js์˜ ๋ชจ๋“  ์Šคํƒ€์ผ์„ ๊ฐ€์ ธ์™€ ๋Œ€๋ถ€๋ถ„์˜ SVG ์š”์†Œ์—์„œ ์ธ๋ผ์ธ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๊ด€๋ จ ๊ฐ์ฒด (CSS ์Šคํƒ€์ผ ์†์„ฑ์„ ํ†ตํ•ด ์ƒ‰์ƒ์ด ์ง€์ •๋˜๋Š” ๊ฐ์ฒด)์—์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋„๋ก์ฃผ์˜ํ•ฉ๋‹ˆ๋‹ค. c3.css์˜ 6 ํ–‰์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. C3๋ฅผ ํ†ตํ•ด ์„ค์ •๋œ ๋ฐ์ดํ„ฐ ๋ผ์ธ ์ƒ‰์ƒ์„ stroke: #000 ๋ฐ fill: none .)
  3. CSS "visibility"์†์„ฑ์— ๋Œ€ํ•ด "hidden"์ด์žˆ๋Š” ์š”์†Œ๋ฅผ ์ฐพ์•„ "display : none"์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ C3์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ๋ชจ๋“  ์ถ•์„ ์ˆจ ๊น๋‹ˆ๋‹ค.
  4. ๋ชจ๋“  SVG ๋ฐ์ดํ„ฐ ๊ฒฝ๋กœ์— fill: none ๋ฅผ ์„ค์ •ํ•˜์—ฌ ์ด์ƒํ•œ ๋ฒ  ์ง€์–ด ํด๋ฆฌํ•‘ ํšจ๊ณผ๋ฅผ ์–ป์ง€ ์•Š๋„๋กํ•ฉ๋‹ˆ๋‹ค.
  5. Canvg ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ PNG๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. NYT์˜ ์Šค ๋‹ˆํŽซ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด ์ง€์‹œ๋ฌธ์— SVG๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ  ์ €๋Š” ๋‹จ์ˆœํ•œ ์‹œ๋ฆฌ์ฆˆ ์ฐจํŠธ๋กœ๋งŒ ์ด๊ฒƒ์„ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ฐจํŠธ ์œ ํ˜•์— ๋ฌธ์ œ๊ฐ€์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋†’์œผ๋ฉฐ ๊ณ ์œ  ํ•œ ์กฐ์ •์ด ํ•„์š”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํŽธ์ง‘ : SVG ์ถœ๋ ฅ์ด ๊ดœ์ฐฎ์•„ ๋ณด์ด์ง€๋งŒ "์˜์—ญ"์œ ํ˜•์ด PNG ์ถœ๋ ฅ์„ ์™„์ „ํžˆ ๊นจ๋œจ๋ฆฌ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. SVG ์ถœ๋ ฅ์ด ๋ชจ๋“  ์ฐจํŠธ ์œ ํ˜•, AFAIK์—์„œ ์ž‘๋™ํ•˜๋„๋ก ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ตœ์‹  ํŽธ์ง‘ : Gist๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ PNG์™€ SVG๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ์ฐจํŠธ ์œ ํ˜•์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋Š” ๊ตฌํ˜„์„ ์›ํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ๋ฉฐ์น  ๋‚ด์— ์–ธ์  ๊ฐ€ LlamaCharts๋ฅผ ์ถœ์‹œํ•˜๊ธฐ๋ฅผ ํฌ๋งํ•ฉ๋‹ˆ๋‹ค.

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

์ €๋Š” .png , .jpeg , .gif ๋ฐ .pdf ๋ฅผ ์ง€์›ํ•˜๋Š” ๋‚ด๋ณด๋‚ด๊ธฐ ์ž‘์—…์„ ํ•ด์™”์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ๋‚ด ํ•˜์‹ญ์‹œ์˜ค

๊ทธ๋Ÿฌ๋‚˜ ๋‚ด ๋ฐฉ๋ฒ•์€ phantomjs์— ์˜์กดํ•˜๋Š” _server-side_ ๊ตฌํ˜„์ž…๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์—๋Š” ํด๋ผ์ด์–ธํŠธ ์ชฝ ๋‚ด๋ณด๋‚ด๊ธฐ๋„์žˆ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์™„์„ฑ ๋œ ๋ฒ„์ „์„๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค

@yuvii ์•ˆ๋…•ํ•˜์„ธ์š”! ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค (์•„๋งˆ์ด ๋ฌธ์ œ๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค ...), times / axisJS์— ์žˆ์Šต๋‹ˆ๋‹ค.

http://times.github.io/axisJS/ ์—์„œ ์˜จ๋ผ์ธ์œผ๋กœ ์žฌ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PDF๋Š” ๋งค์šฐ ์œ ์šฉํ•˜๋ฉฐ PR์„ ์‚ดํŽด๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ธ์  ๊ฐ€๋Š” ๊ถ๊ทน์ ์œผ๋กœ axisJS์— ๋Œ€ํ•œ ์ธ์‡„ ํ˜•์‹์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค ...

์˜ค ์™€์šฐ, ๋‹น์‹ ์€ ์‹ค์ œ๋กœ ์ด๊ฒƒ์„ ์œ„ํ•ด ์ „์ฒด GUI๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ ๋‚ด๋ณด๋‚ด๊ธฐ์œ„ํ•œ ๋ช…๋ น ์ค„ ๋„๊ตฌ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์•„์ฃผ ๋ฉ‹์ง€๋‹ค.

์ด๊ฒƒ์€ ์ข…๊ฒฐ๋˜๋Š” ๊ฒƒ๋ณด๋‹ค์ด ์‹œ์ ์—์„œ ์ง€์› ๋ฌธ์ œ์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. @yuvii ์˜ CLI ๋„๊ตฌ๋Š” ์ •๋ง ๋ฉ‹์ง€๊ณ  ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด ๊ทธ์˜ pull request, # 555์— ์ง์ ‘ ๋Œ€ํ™” ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ๋„์ฐฉํ•˜๋Š” ์‚ฌ๋žŒ์€ @gonsakon ์˜ ๊ตฌํ˜„์ด Angular๋กœ ์ˆ˜ํ–‰ ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ jQuery๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‚ด๊ฐ€ ์ œ๊ณต ํ•œ ๊ฒƒ๋ณด๋‹ค ๋” ์‰ฌ์šด ์˜ˆ์ œ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

์•ˆ๋…•, ๋‚˜๋Š” c3 ์ฐจํŠธ, ์ฆ‰ SVG๋ฅผ ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๊ณ ํ•˜์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์™ธ๋ถ€ CSS ์ธ c3.css๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
SVG์— ์™ธ๋ถ€ CSS๋ฅผ ์–ด๋–ป๊ฒŒ ์ ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@ raj-mehta C3 Google ๊ทธ๋ฃน ์— ๋ฌธ์˜ํ•˜์„ธ์š”.์ด ๋ฌธ์ œ๋Š” ๋‹ซํžŒ ๋ฌธ์ œ์ด๋ฉฐ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•˜์—ฌ ์‹ค์งˆ์ ์œผ๋กœ ๋„์›€์„ ์ค„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋˜๋Œ๋ ค ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
๋‹ค์Œ svg๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ur sample.html์—์„œ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ๋ธŒ๋ผ์šฐ์ €์˜ ์ฐจํŠธ์™€ canvg์—์„œ ๋ณ€ํ™˜ ๋œ ์ด๋ฏธ์ง€๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
distorted

์—ฌ๋ถ„์˜ ๋„“์€ ์ถ• ๋ง‰๋Œ€๊ฐ€์žˆ๋Š” raj-mehta์™€ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•˜์Šต๋‹ˆ๊นŒ?

๋ฌธ์ œ๋Š” ๋‚ด๋ณด๋‚ผ ๋•Œ ์ธ๋ผ์ธ ์Šคํƒ€์ผ ๋งŒ ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ์Šคํƒ€์ผ (์˜ˆ : ์ด์ƒํ•œ ๊ฒ€์€ ์ƒ‰ ๋ฐฐ๊ฒฝ์„ ํ‘œ์‹œํ•˜๋Š” ์„  ๊ทธ๋ž˜ํ”„์˜ ๊ฒฝ์šฐ fill-opacity : 0)์„ ํฌํ•จํ•˜๋„๋ก ๋กœ์ปฌ ๋ฒ„์ „์˜ c3๋ฅผ ์ˆ˜์ •ํ–ˆ์œผ๋ฉฐ ์ด๋ฏธ์ง€๊ฐ€ ์˜ˆ์ƒ๋Œ€๋กœ ๋‚˜์˜ต๋‹ˆ๋‹ค.

@aendrew ์ด http://times.github.io/axisJS/#/ ์ด ํŠœํ† ๋ฆฌ์–ผ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ c3 ์ฐจํŠธ์— PNG ๋‚ด๋ณด๋‚ด๊ธฐ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/annatomka/ng-c3-export

์•ˆ๋…•ํ•˜์„ธ์š” @annatomka https://github.com/annatomka/ng-c3-export whith ๋น„๋™๊ธฐ๋กœ๋“œ ๊ทธ๋ž˜ํ”„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚ด ์ฝ”๋“œ :

app.controller ( "ChartController", function ($ http) {
$ http.get ( 'URL').
success (function (data, status, headers, config) {
c3.generate ({
bindto : "# ๋‚ด ์ฐจํŠธ",
๋ฐ์ดํ„ฐ : {
์œ ํ˜• : 'ํŒŒ์ด',
์—ด : [
[ '์ƒ˜ํ”Œ', 30],
[ '์ƒ˜ํ”Œ 2', 200]
]
}
});
}).
error (function (data, status, headers, config) {
๋””๋ฒ„๊ฑฐ;
});

-์ฐจํŠธ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ทธ๋ฆฌ์ง€ ๋งŒ ๋‹ค์šด๋กœ๋“œ ์•„์ด์ฝ˜์ด ์—†์Šต๋‹ˆ๋‹ค.

@annatomka ํ›Œ๋ฅญํ•œ ๋ชจ๋“ˆ์ด์ง€๋งŒ ๋น„๋™๊ธฐ ๋กœ๋”ฉ ๊ทธ๋ž˜ํ”„์—๋„ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„๋ฅผ ๋‹ค์‹œ ์ƒ์„ฑํ•˜๋ฉด ๋‹ค์šด๋กœ๋“œ ๋ฒ„ํŠผ์ด ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

@annatomka ๋„ˆ๋ฌด ์ข‹์•„์š”! ๋‚˜๋Š” ๋‹น์‹ ์˜ ๋ชจ๋“ˆ์„ ๋‹ค์Œ Angular ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!

@annatomka +1

@ morales-franco @johnmarkli ๋น„๋™๊ธฐ ๋กœ๋”ฉ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „ (0.1.5)์—์„œ ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ช‡ ๊ฐ€์ง€ ์˜ˆ๋„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

@annatomka ๋‚ด ์›ํ˜• ์ฐจํŠธ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.
download

CSS์—์„œ ๋‚ด๊ฐ€ ๋ฌด์—‡์„ ๋†“์น˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?
download

@annatomka ํ›Œ๋ฅญํ•œ ๋ชจ๋“ˆ์ด์ง€๋งŒ ๋ธŒ๋ผ์šฐ์ €์—๋„ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Internet Explorer์—์„œ ๋ชจ๋“ˆ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฒ„๊ทธ๋ฅผ ๊ณ ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ์‚ฌ

์—ฌ๊ธฐ ์ง„์‹ฌ์œผ๋กœ ์—ฌ๋Ÿฌ๋ถ„. annatomka / ng-c3-export์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ

์ž ๊ธˆ ์Šค๋ ˆ๋“œ.

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