Ace: ์ž๋™ ์™„์„ฑ ๋“ฑ์˜ ์ƒˆ๋กœ์šด JSON ๋ชจ๋“œ

์— ๋งŒ๋“  2016๋…„ 02์›” 08์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ajaxorg/ace

๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ JSON ๋ชจ๋“œ ์žฌ๊ตฌํ˜„์„ ๊ฑฐ์˜ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ์ฝ”๋“œ์˜ ์—ฌ๋Ÿฌ ์˜ค๋ฅ˜ ์ง€์›(์ฒซ ๋ฒˆ์งธ ์˜ค๋ฅ˜ ์ดํ›„์— ์‹คํŒจํ•˜๋Š” ๋Œ€์‹ )
  2. JSON ์Šคํ‚ค๋งˆ ๊ฒ€์ฆ ์ง€์›
  3. ์ œ๊ณต๋œ JSON Schema์— ๋”ฐ๋ฅธ ์ž๋™ ์™„์„ฑ ์ง€์›
  4. ๊ธฐ์—ฌ ์ง€์›: ๋ณต์žกํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฝ”๋“œ ์‚ฝ์ž… ํ—ˆ์šฉ(์˜ˆ: ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ ์†Œ์Šค์—์„œ ๊ฐ’ ๋‹ค์šด๋กœ๋“œ)
  5. ์‚ฌ์šฉ์ž ์ง€์ • ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ - JSON ๋ฌธ์„œ์— ๋Œ€ํ•œ ๋‘ ๋ฒˆ์งธ ์ˆ˜์ค€์˜ ๋…ผ๋ฆฌ์  ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    ๋ชจ๋“  ์ž‘์—…์€ ์›น ์ž‘์—…์ž์—์„œ ์ œ๋Œ€๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๋‚ด ์ฝ”๋“œ๋ฅผ ๊ณต์œ ํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์ฃผ์š” ์‚ฌํ•ญ: MIT ๋ผ์ด์„ ์Šค์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๋‹ค๋ฅธ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์˜ ์ผ๋ถ€ JSON ํŒŒ์„œ๋ฅผ ํ™œ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ฑฐ๋ž˜ ์ฐจ๋‹จ๊ธฐ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ์‚ฌ์†Œํ•œ ๊ฒƒ: ๋‚˜๋Š” ์‚ฌ์†Œํ•œ ์ฝ”๋“œ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ์—๋Š” ๋„ˆ๋ฌด ๊ฒŒ์œผ๋ฅด๋‹ค :-(
  3. ๊ทธ๋Ÿฌํ•œ PR์„ ์ˆ˜๋ฝํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ(ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋‚˜์š”?)?
  4. ์ด๋Ÿฌํ•œ PR์— ๋Œ€ํ•œ ๋ผ์ด์„ ์Šค ํ—ค๋”๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

์ฉ. ACE ํŽธ์ง‘๊ธฐ๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค! :)

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

ํฅ๋ฏธ๋กญ๊ฒŒ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. pr์„ ์ œ์ถœํ•˜๊ฑฐ๋‚˜ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ œ๊ณตํ•˜๋ฉด ์ง„ํ–‰ ๋ฐฉ๋ฒ•์„ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ace์— ํฌํ•จํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์—๋„ ๋ณ„๋„์˜ ์ €์žฅ์†Œ์—์„œ json ๋„๊ตฌ๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋‹ค๋ฅธ ์ž‘์—…์ž๋„ ์ž์‹ ์˜ ์ €์žฅ์†Œ๋กœ ์˜ฎ๊ธฐ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ๋‚ด ๊ฐœ์ธ ์ €์žฅ์†Œ์— ์žˆ์œผ๋ฏ€๋กœ ์‹คํ–‰ ๊ณ„ํš์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿด ๊ฒŒ์š”

  1. ๋‚ด ์ฝ”๋“œ ์™„์„ฑ(๊ธฐ์—ฌ(4) ๋ฐ ์‚ฌ์šฉ์ž ์ง€์ • ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ(5) ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์ œ์™ธ - ์ด์œ ๋Š” ์•„๋ž˜์—์„œ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค)
  2. GH์˜ ํฌํฌ ์—์ด์Šค ๋ฆฌํฌ์ง€ํ† ๋ฆฌ
  3. ์ด ํฌํฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ์ฝ”๋“œ ์ด๋™ ๋ฐ ์ •๋ฆฌ
  4. ํ™๋ณด ๋งŒ๋“ค๊ธฐ

๋‚˜๋Š” ~ ํ•  ๊ฒƒ์ด๋‹ค

  • ๋ ˆ๊ฑฐ์‹œ ํŒŒ์„œ๋ฅผ ์ œ๊ฑฐํ•œ ํ›„ ์„ธ ๋ฒˆ์งธ ๋ถˆ๋ฒ• ์ฝ”๋“œ๋ฅผ ๋ชจ๋‘ ๋ชจ๋“œ/json ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ชจ๋“  ์›๋ณธ MIT ํ—ค๋”๋ฅผ ์ด ๋””๋ ‰ํ† ๋ฆฌ์— ์œ ์ง€ํ•˜๊ณ  ์ด ๋””๋ ‰ํ† ๋ฆฌ์— LICENSE๋„ ์ถ”๊ฐ€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ์ ์ ˆํ•˜๊ฒŒ ๋‹จ์ˆœํ™”๋œ ๊ณตํ†ต js ๋ชจ๋“ˆ ์Šคํƒ€์ผ์ด ์žˆ๋Š” javascript ํŒŒ์ผ๋งŒ ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค(์›๋ณธ typescript ํŒŒ์ผ์€ ํ‘ธ์‹œํ•˜์ง€ ์•Š์Œ). ์ผ๋ถ€ ๋ฌธ์„œ ํŒŒ์ผ์—์„œ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋„๋ก ์›๋ณธ typescript ํŒŒ์ผ์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ œ๊ณตํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ์กด ๋ชจ๋“œ/json_worker, ๋ชจ๋“œ/json ์œ ์ง€ BSD ํ—ค๋”์— ๋‚ด ์ˆ˜์ • ์ ์šฉ

๊ธฐ์—ฌ ๋ฐ ์‚ฌ์šฉ์ž ์ง€์ • ์Šคํ‚ค๋งˆ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์™€ ๊ด€๋ จํ•˜์—ฌ - ํ”Œ๋Ÿฌ๊ทธ ๊ฐ€๋Šฅํ•œ ๊ธฐ์—ฌ ๋ฐ ์‚ฌ์šฉ์ž ์ง€์ • ์Šคํ‚ค๋งˆ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•œ ๋˜ ๋‹ค๋ฅธ ํ™•์žฅ์„ฑ ์ข…๋ฅ˜(์˜ˆ: ๋ชจ๋“œ, ํ…Œ๋งˆ ๋“ฑ)๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋” ๋งŽ์€ ๋…ผ์˜๊ฐ€ ํ•„์š”ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ ๋ฉ”์ปค๋‹ˆ์ฆ˜. ์ด๋Ÿฌํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ํ‘œ์ค€ ACE ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…์ž์— ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ชจ๋“  ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์œผ๋กœ ๋“ค๋ฆฝ๋‹ˆ๊นŒ?

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

์ด ์ €์žฅ์†Œ๋Š” ์—ฌ์ „ํžˆ ์œ ์ง€ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๊นŒ? ๐Ÿ‘€

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