Pegjs: PEG.js์—์„œ ํŒจํ„ด๊ณผ ์—ฌ๋Ÿฌ ๋ฒˆ ์ผ์น˜ํ•˜๋„๋ก ๊ทœ์น™์„ ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2020๋…„ 01์›” 25์ผ  ยท  22์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: pegjs/pegjs

๋ฌธ์ œ ์œ ํ˜•

  • ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ:
  • ๊ธฐ๋Šฅ ์š”์ฒญ:
  • ์งˆ๋ฌธ: ๋„ค
  • ๋ณ„์ผ ์•„๋‹ˆ๋‹ค:

์ „์ œ ์กฐ๊ฑด

  • ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?: ์˜ˆ
  • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ฌธ์ œ๋ฅผ ๊ฒ€์ƒ‰ํ–ˆ์Šต๋‹ˆ๊นŒ?: ํ™•์žฅํ•˜๋ ค๋ฉด
  • ํฌ๋Ÿผ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๊นŒ?: ์•„๋‹ˆ์š”
  • ์›น ๊ฒ€์ƒ‰(google, yahoo ๋“ฑ)์„ ์ˆ˜ํ–‰ํ•˜์…จ์Šต๋‹ˆ๊นŒ?: ์˜ˆ

์„ค๋ช…


ํŒจํ„ด์ด ์—ฌ๋Ÿฌ ๋ฒˆ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

G04 hello world*
G04 foo bar*

ํ•ด๋‹น PEG.js ๋ฌธ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  = "G04" _ content:String* _ EOL
  {
    return content
  }

_ "whitespace"
  = [ \t\n\r]*

String
  = value:[a-zA-Z0-9.(): _-]+
  {
    return value.join('') 
  }

EOL
  = [*] _ 

์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘:

PEG.js๊ฐ€ ๊ฐ G04 ํ–‰์— ๋Œ€ํ•ด 2๊ฐœ์˜ ํ•ญ๋ชฉ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ํ–‰๋™:

๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

2ํ–‰, 1์—ด: ์ž…๋ ฅ์˜ ๋์ด ์˜ˆ์ƒ๋˜์ง€๋งŒ "G"๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์†Œํ”„ํŠธ์›จ์–ด

  • PEG.js: ์˜จ๋ผ์ธ ๋ฒ„์ „
  • Node.js:
  • NPM ๋˜๋Š” ํ„ธ์‹ค:
  • ๋ธŒ๋ผ์šฐ์ €:
  • ์šด์˜ ์ฒด์ œ:
  • ํŽธ์ง‘์ž:

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

peg ์˜ˆ์ œ ๋ฌธ๋ฒ•์„ ์ฝ์–ด๋ณด์„ธ์š”. ์—ฌ๊ธฐ์—๋Š” ๋ฒ„๊ทธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ ์ถ”์ ๊ธฐ๋Š” ๋„์›€ ์š”์ฒญ์„ ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์˜ˆ์ œ ๋ฌธ๋ฒ• ์ค‘ ํ•˜๋‚˜๋Š” ์ •ํ™•ํžˆ ๋‹น์‹ ์ด ์š”๊ตฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋„์›€ ์š”์ฒญ์„ ์œ„ํ•œ ์ ์ ˆํ•œ ์žฅ์†Œ๋Š” StackOverflow์ž…๋‹ˆ๋‹ค. ์ด์Šˆ ํŠธ๋ž˜์ปค๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฌด์—‡์ด ๊ณ ์žฅ๋‚ฌ๋Š”์ง€ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ํ”„๋กœ์ ํŠธ ํ’ˆ์งˆ์„ ์ธก์ •ํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ํŒจํ‚ค์ง€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Document
  = ClassRow+

ClassID
  = "G04"

ClassTitle
  = title:[^\n]+ { return title.join(''); }

ClassRow = 
  id:ClassID title:ClassTitle '\n'? { return { id, title }; }

์ด๊ฒƒ์„ ๋ณธ ํ›„์—๋Š” ์ด ๋ฌธ์ œ๋ฅผ ๋‹ซ์œผ์‹ญ์‹œ์˜ค. ๊ฐ์‚ฌ ํ•ด์š”.

image

ํ•ต์‹ฌ์€ PEG ๋ฌธ๋ฒ•์„ ์ฝ๋Š” ๋ฒ•์„ ๋ฐฐ์šฐ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋งํ•œ๋‹ค:

  1. " Document ๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ClassRow ์ž…๋‹ˆ๋‹ค."
  2. "A ClassID ๋Š” ๊ณ ์ • ๋ฌธ์ž์—ด "G04" ์ž…๋‹ˆ๋‹ค."
  3. " ClassTitle ๋Š” ๋‹ค์Œ ์ค„ ๋ฐ”๊ฟˆ๊นŒ์ง€์˜ ๋ชจ๋“  ํ…์ŠคํŠธ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ฅผ "์ œ๋ชฉ"์ด๋ผ๊ณ  ๋ถ€๋ฅผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ œ๋ชฉ์„ ๋ฌธ์ž ๋ฐฐ์—ด์ด ์•„๋‹Œ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค."
  4. "A ClassRow ๋Š” ClassID ๋‹ค์Œ์— ClassRow ์ž…๋‹ˆ๋‹ค.

ClassRow๊ฐ€ ๊ฐœํ–‰์œผ๋กœ ๋๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœํ–‰์€ ํšจ๊ณผ์ ์œผ๋กœ ์ƒˆ ํ–‰์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ์งˆ๋ฌธ์— StackOverflow๋ฅผ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ต๋ณ€๊ณผ ์„ค๋ช…์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. "๋ฌธ์ œ ์œ ํ˜•: ์งˆ๋ฌธ: [์˜ˆ/์•„๋‹ˆ์š”]" ๋ถ€๋ถ„์€ ๊ท€ํ•˜๊ฐ€ ์–ธ๊ธ‰ํ•œ ์ง€์‹œ๋ฌธ๊ณผ ๊ด€๋ จํ•˜์—ฌ ์•ฝ๊ฐ„ ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ ์„น์…˜์„ "๋ฌธ์ œ ์ถ”์ ๊ธฐ๊ฐ€ ์งˆ๋ฌธํ•˜๊ธฐ์— ์ ํ•ฉํ•œ ์žฅ์†Œ"๋ผ๊ณ  ํ•ด์„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  2. "examples": examples/ ํด๋”์—์„œ 4๊ฐœ์˜ ์˜ˆ์ œ ๋ฌธ๋ฒ•์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ IMHO๋Š” "arithmetics.pegjs"๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ์ดˆ๋ณด์ž(๋‚˜ ๋˜๋Š” ์ €์™€ ๊ฐ™์€)์—๊ฒŒ ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ถฉ๋ถ„ํžˆ ๊ฐ„๋‹จํ•จ). PEG.js๊ฐ€ (๋ฌด๊ฑฐ์šด?) ๊ฐœ๋ฐœ ์ค‘์ด๋ผ๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜๋ฏ€๋กœ ๋ณต์žกํ•œ ์‹ค์ œ ๋ฌธ์ œ/์‹œ๋‚˜๋ฆฌ์˜ค์— ๋” ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ์ถฉ๋ถ„ํžˆ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ๋ฌธ๋ฒ•์—์„œ ๋ณต์žกํ•œ ๋ฌธ๋ฒ•์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๋‹จ๊ณ„๋ณ„ ์˜ˆ์ œ๋ฅผ ์˜ˆ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์‹ ๊ทœ ์‚ฌ์šฉ์ž ํ”ผ๋“œ๋ฐฑ์œผ๋กœ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.

"๋ฌธ์ œ ์œ ํ˜•: ์งˆ๋ฌธ: [์˜ˆ/์•„๋‹ˆ์š”]" ๋ถ€๋ถ„์€ ๊ท€ํ•˜๊ฐ€ ์–ธ๊ธ‰ํ•œ ์ง€์‹œ๋ฌธ๊ณผ ๊ด€๋ จํ•˜์—ฌ ์•ฝ๊ฐ„ ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ ์„น์…˜์„ "๋ฌธ์ œ ์ถ”์ ๊ธฐ๊ฐ€ ์งˆ๋ฌธํ•˜๊ธฐ์— ์ ํ•ฉํ•œ ์žฅ์†Œ"๋ผ๊ณ  ํ•ด์„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋™์˜ํ•œ๋‹ค. ๊ทธ ํ…์ŠคํŠธ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์‹ถ๊ณ  2017๋…„์— ์š”์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ…์ŠคํŠธ๊ฐ€ ์žˆ๋Š” ์ด์œ ๋Š” ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋” ์ด์ƒ ์šด์˜ํ•˜์ง€ ์•Š๋Š” David๊ฐ€ ์ด์Šˆ๋ฅผ ๋ณด์ง€ ์•Š๊ณ  ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์„ ์ฐพ์ง€ ์•Š๊ณ  "์ด๊ฒƒ์€ ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค"๋ผ๊ณ  ๋งํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์— ์ง€์ณค๊ณ  ๋ฒ„๊ทธ๊ฐ€ ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ด ๋ฌธ์ œ์—๋Š” 6๊ฐœ์˜ ํด๋ก ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

.

"Examples": examples/ ํด๋”์—์„œ 4๊ฐœ์˜ ์˜ˆ์ œ ๋ฌธ๋ฒ•์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ IMHO๋Š” "arithmetics.pegjs"๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ์ดˆ๋ณด์ž(๋‚˜ ๋˜๋Š” ์ €์™€ ๊ฐ™์€)์—๊ฒŒ ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ถฉ๋ถ„ํžˆ ๊ฐ„๋‹จํ•จ).

๋‚˜๋Š” ๋™์˜ํ•œ๋‹ค. ๋งŽ์ด ์“ฐ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

.

PEG.js๊ฐ€ (๋ฌด๊ฑฐ์šด?) ๊ฐœ๋ฐœ ์ค‘์ด๋ผ๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ๊ฐ€์žฅ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์›๋ž˜ ์ž‘์„ฑ์ž๋Š” 1๋…„ ๋™์•ˆ ์œ ํœด ์ƒํƒœ๋กœ ๋‘์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ ์œ ์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ์š”์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค.

2017๋…„ 5์›”์— ์ธ์ˆ˜ํ•œ ์ƒˆ๋กœ์šด ๊ด€๋ฆฌ์ž๋Š” ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์— ๋‹จ ํ•œ ๋ฐ”์ดํŠธ์˜ ์ฝ”๋“œ๋„ ๊ณต๊ฐœํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ธ์ˆ˜๋ฅผ ์œ„ํ•ด ๋™์š”ํ•˜๋Š” ๊ณผ์ •์„ ์‹œ์ž‘ํ–ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์‚ฌ์šฉ๋Ÿ‰์ด ๋–จ์–ด์ง€๊ณ  ์žˆ๊ณ , ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ 2014๋…„๋ถ€ํ„ฐ javascript๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๊ณ , ๊ฑฐ์˜ 3๋…„ ๋™์•ˆ NPM์— readme ๊ฐ€ ์—†์—ˆ๊ณ , ๋‹จ์ผ ๋ฌธ์ž AST ์ˆ˜์ •์ด 1๋…„ ๋™์•ˆ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์ด ์—†์—ˆ๊ณ , ์ƒˆ๋กœ์šด ๊ด€๋ฆฌ์ž๋Š” 2.5๋…„ ๋™์•ˆ ์ˆ˜๋งŽ์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋œ ๊ธฐ๋Šฅ ๋ถ„๊ธฐ๋ฅผ ๋ฒ„๋ฆฌ๊ณ  ์ „์ฒด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์ง์ ‘ ์ž‘์„ฑํ•œ ์ƒˆ๋กœ์šด ๊ฒƒ์œผ๋กœ ๊ต์ฒดํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

.

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

๋‚˜๋Š” ์‚ฌ์šฉ์ž ์˜จ๋ณด๋”ฉ์ด ์•„๋งˆ๋„ ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋‹ค์‹œ ๊ฑด๊ฐ•ํ•˜๊ฒŒ ๋งŒ๋“  ๋‹ค์Œ ํ˜„์žฌ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํ˜„์‹ค ์„ธ๊ณ„์˜ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ช…ํ™•ํžˆ ํ•˜์ž๋ฉด ์ €๋Š” ์›์ž‘์ž๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. @dmajda ์ž…๋‹ˆ๋‹ค.

๋ช…ํ™•ํžˆ ํ•˜์ž๋ฉด, ์ €๋Š” ๊ด€๋ฆฌ์ž๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

"๋ฌธ์ œ ์œ ํ˜•: ์งˆ๋ฌธ: [์˜ˆ/์•„๋‹ˆ์š”]" ๋ถ€๋ถ„์€ ๊ท€ํ•˜๊ฐ€ ์–ธ๊ธ‰ํ•œ ์ง€์‹œ๋ฌธ๊ณผ ๊ด€๋ จํ•˜์—ฌ ์•ฝ๊ฐ„ ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ ์„น์…˜์„ "๋ฌธ์ œ ์ถ”์ ๊ธฐ๊ฐ€ ์งˆ๋ฌธํ•˜๊ธฐ์— ์ ํ•ฉํ•œ ์žฅ์†Œ"๋ผ๊ณ  ํ•ด์„ํ–ˆ์Šต๋‹ˆ๋‹ค.

@ceremcem , ๋‹น์‹ ์€ ๋ชจ๋“  ๊ฒƒ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒํ–ˆ์Šต๋‹ˆ๋‹ค (wikipedia์—์„œ PEG์˜ ์„ค๋ช…์„ ๋ณด์ง€ ์•Š๊ณ  ๋ฌธ๋ฒ•์„ ์ˆ˜๋™์œผ๋กœ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜์ง€ ์•Š์€ ๊ฒƒ ์™ธ์—๋Š” ๊ท€ํ•˜์˜ ์งˆ๋ฌธ, IMHO๊ฐ€ ํ•ด๊ฒฐ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค). ๊ท€ํ•˜์˜ ์งˆ๋ฌธ์ด ๋‹จ์ˆœํžˆ ์งˆ๋ฌธ์ด๊ฑฐ๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ฒ„๊ทธ์— ๋Œ€ํ•œ ์„ค๋ช…์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ฐœ๋ฐœ์ž๋งŒ์ด ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฒ„๊ทธ๋งŒ์„ ์œ„ํ•œ GitHub ๊ทœ์น™์€ ์—†์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ์•„ํ”„๋ฆฌ์นด์—์„œ๋„ ๋ฌธ์ œ๋‹ค

์ผ๋ฐ˜์  ์œผ๋กœ ๋ฌธ์ œ ์ถ”์ ๊ธฐ๋Š” ์งˆ๋ฌธ์ด ์•„๋‹ˆ๋ผ ๋ฌธ์ œ๋ฅผ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ceremcem์€ stackoverflow์—์„œ ๋ช‡ ์‹œ๊ฐ„ ๋งŒ์— ๋‹ต๋ณ€์„ ์–ป์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ๊ทธ๋Š” 9์ผ์„ ๊ธฐ๋‹ค๋ ธ๊ณ  ๋‚ด๊ฐ€ ๋ง์„ ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๋‹ต์„ ์–ป์ง€ ๋ชปํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด์™€ ๊ฐ™์€ ๋งŽ์€ ์œ ์‚ฌํ•œ ์งˆ๋ฌธ์€ 1๋…„ ๋˜๋Š” ๊ทธ ์ด์ƒ์ด ์ง€๋‚œ ํ›„์—๋„ ์—ฌ๊ธฐ์— ๋‹ต์ด ์—†์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿ ์‚ด์งœ๋ฆฌ ์—ฌ์„ฏ ๊ฐœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

.

๊ท€ํ•˜์˜ ์งˆ๋ฌธ์ด ๋‹จ์ˆœํžˆ ์งˆ๋ฌธ์ด๊ฑฐ๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ฒ„๊ทธ์— ๋Œ€ํ•œ ์„ค๋ช…์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์˜ˆ, ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” "์ด ์ž‘์—…์„ ์–ด๋–ป๊ฒŒ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๊นŒ?"๋ผ๊ณ  ๋ฌป๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฐ€ ํŒŒ์„œ๊ฐ€ ์ด๊ฒƒ์„ ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ๋ฏฟ์ง€ ์•Š๋Š” ํ•œ, ๊ทธ๊ฒƒ์€ ๊ฒฐ์ฝ” ๋ฒ„๊ทธ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํŒŒ์„œ์—์„œ ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๊ฒƒ์ด๋ฉฐ peg ๊ฐ€ ์—ฌ์ „ํžˆ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์„œ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์ด ๋น ๋ฅด๊ฒŒ ์‚ฌ์‹ค์ด ์•„๋‹˜์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๊ทธ๋Š” ์ง€์ ์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ์ œ ์ƒ๊ฐ์—๋Š” ๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ํŒŒ์„œ ์ƒ์„ฑ๊ธฐ๊ฐ€ ํ•œ ๋ฒˆ ์ด์ƒ ๊ทœ์น™์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ๋ฏฟ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ์˜ ์ตœ์„ ์˜ ์ด์ต์„ ์œ„ํ•ด, ํŠนํžˆ ์งˆ๋ฌธ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋งค์šฐ ํ™œ๋™์ ์ธ ๋ฆฌ์†Œ์Šค์ด๊ณ  ๋„์„œ๊ด€ ์ˆ˜๋ฆฌ ๋ฆฌ์†Œ์Šค๊ฐ€ 3๋…„์˜ ์ž‘์—…๊ณผ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์งˆ๋ฌธ์„ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์‚ฌ๋žŒ๋“ค์„ ํƒœ๊ทธํ•˜๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ๊นŒ์ง€ ์ด๊ฒƒ์ด ๋‹ต์ด ์—†์—ˆ๋˜ ๊ฒƒ์€ ์šฐ์—ฐ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ 6๊ฐœ์˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์˜€์Šต๋‹ˆ๋‹ค.

๊ฒฐ์ •์ด ๋‚ด๋ ค์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ์—๊ฒŒ ์กฐ์–ธ์„ ํ•ด์ฃผ๊ณ  ์žˆ์—ˆ๋‹ค.

๋˜ํ•œ ๋‚˜๋Š” ๊ทธ์˜ ์งˆ๋ฌธ์— ๋‹ตํ–ˆ๋‹ค .

๋‚˜๋Š” ๋ณดํ†ต StackOverflow์—์„œ ๋ช‡ ์‹œ๊ฐ„ ์•ˆ์— ๋‹ต๋ณ€์„ ์–ป์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ €๋Š” ๊ทธ๊ฒƒ์„ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚ด SO ์งˆ๋ฌธ ์— ๋Œ€ํ•œ ํ™œ๋™์ด ์—†์—ˆ์œผ๋ฏ€๋กœ ์—ฌ๊ธฐ์— ์™€์„œ ์งˆ๋ฌธํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์‘๋‹ต ์‹œ๊ฐ„์€ ๊ฑฐ์˜ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ ์ถ”์ ๊ธฐ ์‚ฌ์šฉ์˜ ๋ชจ๋“  ์กฐํ•ฉ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

  • ๋ฒ„๊ทธ ๋ฆฌํฌํŠธ์˜ ๊ฒฝ์šฐ์—๋งŒ ๋ณ„๋„์˜ ํฌ๋Ÿผ์ด๋‚˜ ๋ฉ”์ผ ๊ทธ๋ฃน์ด ์ œ๊ณต๋˜๋Š” ๊ฒฝ์šฐ(์˜ˆ: PaperJS),
  • ์งˆ๋ฌธ ๋ฐ ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ ๋ชจ๋‘(RactiveJS <3, FreeCAD_Assembly3 <3)
  • ๋‚ด๊ฐ€ ์‹ค์ œ๋กœ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ํฌ๋Ÿผ๊ณผ ํ•จ๊ป˜ ์ผ๋ฐ˜์ ์ธ ์šฉ์˜์ž๊ฐ€ ํ”„๋กœ์ ํŠธ ์†Œ์œ ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๊ณ  ์žˆ์–ด ๋‹ค๋ฅธ ์–ด๋–ค ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ ์ขŒ์ ˆ์„ ์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: KiCAD(grrr)).
  • ์•„๋ฌด๊ฒƒ๋„ ์•„๋‹™๋‹ˆ๋‹ค(Espruino, AFAIR). ๋ชจ๋“  ๋ฌธ์ œ๋Š” ์ฆ‰์‹œ ์ข…๋ฃŒ๋˜๋ฉฐ ํ•ด๋‹น ํฌ๋Ÿผ์—์„œ ์ ์ ˆํ•œ ์Šค๋ ˆ๋“œ๋ฅผ ์—ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ์ตœ์„ ์˜ ์„ ํƒ์€ ์—†์ง€๋งŒ(๋ชจ๋“  ๊ฒฝ์šฐ์— ๋งž๋Š” ์‚ฌ๋žŒ์€ ์—†์Œ) ๋ชจ๋“  ๊ฒƒ์— ๋ฌธ์ œ ์ถ”์ ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.

๊ท€ํ•˜์˜ ์งˆ๋ฌธ์ด ๋‹จ์ˆœํžˆ ์งˆ๋ฌธ์ด๊ฑฐ๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ฒ„๊ทธ์— ๋Œ€ํ•œ ์„ค๋ช…์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

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

๋‚˜๋Š” ๋™์˜ํ•œ๋‹ค. ๋งŽ์ด ์“ฐ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด ๋„์„œ๊ด€์— ๋Œ€ํ•œ ๋‹น์‹ ์˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ์‹ ๊ฒฝ์„ ๋งŽ์ด ์“ฐ์‹œ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๊ทธ๊ฐ€ ํŒŒ์„œ ์ƒ์„ฑ๊ธฐ๊ฐ€ ํ•œ ๋ฒˆ ์ด์ƒ ๊ทœ์น™์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ๋ฏฟ์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ณ์€. ๋‚ด ์˜๋„๋Š” ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ๊ฐ€ ์•„๋‹ˆ ์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์ค„์— ๋™์ผํ•œ ๊ทœ์น™์„ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ œ SO ์งˆ๋ฌธ์— ํ™œ๋™์ด ์—†์–ด์„œ ์—ฌ๊ธฐ๊นŒ์ง€ ์˜ค๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์–ด๋จธ, ๊ฑฐ๊ธฐ ํŽ˜๊ทธ ์ปค๋ฎค๋‹ˆํ‹ฐ๋„ ์ฃฝ์—ˆ๋‚˜์š”?

๋„ˆ๋ฌด ์Šฌํ”„๋‹ค โ˜น๏ธ

์ข‹์•„์š”, ์ด๋ฏธ SO ๊ฒŒ์‹œ๋ฌผ์„ ์ž‘์„ฑํ–ˆ๋‹ค๋ฉด ๊ทธ ์‹œ์ ์—์„œ ์—ฌ๊ธฐ ์˜ค๋Š” ๊ฒƒ์ด 100% ๋งž์Šต๋‹ˆ๋‹ค.

.

๋ฌธ์ œ ์ถ”์ ๊ธฐ ์‚ฌ์šฉ์˜ ๋ชจ๋“  ์กฐํ•ฉ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์˜ˆ, ์‚ฌ๋žŒ๋“ค์€ ํ•ญ์ƒ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ทœ๋ฒ”์„ ์œ„๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค.

.

๋‚˜๋Š” ๋™์˜ํ•œ๋‹ค. ๋งŽ์ด ์“ฐ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด ๋„์„œ๊ด€์— ๋Œ€ํ•œ ๋‹น์‹ ์˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ์‹ ๊ฒฝ์„ ๋งŽ์ด ์“ฐ์‹œ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ ๋ป‘. 2017 ์†Œ์œ ๊ถŒ ์ „ํ™˜์— ์ฐธ์—ฌํ•˜๊ณ  ์‹ถ์—ˆ์ง€๋งŒ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ 17๊ฐœ์˜ ์ฃผ์š” ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•œ ๊ณ„ํš์„ ์ œ์•ˆํ–ˆ๊ณ  ์ด์ „ ์†Œ์œ ์ž๋Š” ์ด๋ฅผ ๋ฏฟ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ์‚ฌ๋žŒ์€ 3๋…„ ํ›„์— ์ฒซ ๋ฒˆ์งธ ๋งˆ์ด๋„ˆ ๋ฆด๋ฆฌ์Šค๋ฅผ ํฌ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์‹ค ๊ณต๊ฐœ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์ž‘์„ฑํ•˜๊ธฐ๊ฐ€ ์ •๋ง ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๋‚˜๋ฅผ ํฌํ•จํ•˜์—ฌ ๋‚ด๊ฐ€ ์•„๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์€ "์ด ๋ฆด๋ฆฌ์Šค๋Š” X, Y, Z๊ฐ€ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ์ค€๋น„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค."๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  Y๊ฐ€ ๋๋‚˜๋ฉด V์™€ W๋„ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  Z๊ฐ€ ๋๋‚˜๋ฉด S, T, U๋„ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  V๊ฐ€ ๋๋‚˜๋ฉด ...

์ด๊ฒƒ์ด 0.11.0 ์ด 2017๋…„์— 6๊ฐœ์˜ ๊ธฐ๋Šฅ์œผ๋กœ ์‹œ์ž‘ํ•˜์—ฌ 2020๋…„์— ์ถ”์ ๊ธฐ์—์„œ ๋‹ซํž˜์œผ๋กœ ์ž˜๋ชป ํ‘œ์‹œ๋œ 100๊ฐœ์˜ ๋ณ‘ํ•ฉ์œผ๋กœ ์‚ฌ๋งํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

๊ณต๊ฐœ ์†Œํ”„ํŠธ์›จ์–ด ๋ถ„์•ผ์˜ ์ผ๋ถ€๋Š” ๋นˆ๋ฒˆํ•œ ์†Œ๊ทœ๋ชจ ๋ฆด๋ฆฌ์Šค์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ํ•ญ์ƒ peg์˜ ๋ฌธ์ œ์˜€์ง€๋งŒ ์†Œํ”„ํŠธ์›จ์–ด์˜ ํ’ˆ์งˆ์ด ๋„ˆ๋ฌด ๋†’์•„์„œ ์–ด์จŒ๋“  ์ฐธ์•˜์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ dmajda๋Š” ๋– ๋‚ฌ๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ๋ฉˆ์ท„์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์ฐธ์„์„ฑ ์žˆ๊ฒŒ ์˜ค๋žซ๋™์•ˆ ๊ธฐ๋‹ค๋ ธ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ƒˆ๋กœ์šด ์‚ฌ๋žŒ์€ ์ด์ œ ์ด๊ฒƒ์„ ์ทจ๋ฏธ ํ”„๋กœ์ ํŠธ๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ ์ž์‹ ์ด ์“ด ์ƒˆ๋กญ๊ณ  ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฌด์–ธ๊ฐ€๋ฅผ ์œ„ํ•ด ๋ชจ๋“  ๊ฒƒ์„ ํ๊ธฐํ–ˆ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋™์ผํ•œ AST์™€ ๋™์ผํ•œ ๊ธฐ๋Šฅ ์„ธํŠธ ๋“ฑ์ด ์žˆ๋”๋ผ๋„ 10๋…„ ๋™์•ˆ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋””๋ฒ„๊น…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์•˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฐ€ ๋” ๊ฐ•๋ ฅํ•˜๊ณ  ์ƒˆ๋กœ์šด PEG ํŒŒ์„œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๋ฉด, ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์†ํ•˜์‹ญ์‹œ์˜ค.

๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋Š” ๋ฉ”์ธํ…Œ์ด๋„ˆ์ธ ์ฒ™ ํ•œ ๋‹ค์Œ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ์ฒ™ ํ•œ ๋‹ค์Œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ์œ„์น˜๋ฅผ ์ธ์ˆ˜ํ•˜๊ณ  ๊ทธ ์ž๋ฆฌ์— ๊ฒฐ์ฝ” ๋ฆด๋ฆฌ์Šค๋˜์ง€ ์•Š์„ ์ž์‹ ์˜ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋ฐฐ์น˜ํ•˜์—ฌ ์ด๊ฒƒ์„ ์ฃฝ์ผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด์ œ ๊ฑด๊ฐ•ํ•œ ๊ณผ์ •์ด ๋‹ค์‹œ ์‹œ์ž‘๋  ๋•Œ์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๊ด€๋ฆฌ์ž๋Š” ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๋กœ ๊ตฌ์„ฑ๋œ ๋งˆ์ดํฌ๋กœ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ๊ตฌ์ถ•ํ–ˆ์œผ๋ฉฐ ์‹ค์ œ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ฃฝ์€ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์„ ์˜นํ˜ธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณ€ํ™”๊ฐ€ ์ ˆ์‹คํžˆ ํ•„์š”ํ•œ ๊ฒƒ์€ ๋ถ„๋ช…ํ•˜๋‹ค

.

์—ฌ๋Ÿฌ ์ค„์— ๋™์ผํ•œ ๊ทœ์น™์„ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹ต๋ณ€์„ ๋‹ค์‹œ ์ฐพ๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ์–ธ์ œ๋“ ์ง€ ์ €๋ฅผ ๊ฐœ์ธ์ ์œผ๋กœ ํƒœ๊ทธํ•ด ์ฃผ์„ธ์š”.

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

๊ทธ๋Ÿฌ๋‚˜ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‚ด๊ฐ€ ์ƒˆ๋‚ด๊ธฐ์˜€์„ ๋•Œ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋‚˜์—๊ฒŒ ๋งํ–ˆ์œผ๋ฉด ํ•˜๋Š” ๊ฒƒ์€ "ํ•ต์‹ฌ์€ PEG ๋ฌธ๋ฒ•์„ ์ฝ๋Š” ๋ฒ•์„ ๋ฐฐ์šฐ๋Š” ๊ฒƒ"์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ฃผ์„ ์•„๋ž˜์— ๋งํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ ํ† ๋ก  ํ˜•์‹์—์„œ PEG ๋ฌธ๋ฒ•์„ ์ฝ๋Š” ๋ฒ•์„ ๋ฐฐ์šฐ๋ฉด ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ๋„ ๋งค์šฐ ์‰ฌ์›Œ์ง€๊ณ  ๊ทธ ์‹œ์ ์—์„œ ๊ฐ‘์ž๊ธฐ ์“ฐ๊ธฐ๊ฐ€ ์‚ฌ์†Œํ•ด์ง‘๋‹ˆ๋‹ค.

์ „๋“ฑ ์Šค์œ„์น˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋žจํ”„๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒƒ์—์„œ ์‰ฌ์šด ๊ฒƒ๊นŒ์ง€

์ „๋“ฑ ์Šค์œ„์น˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋žจํ”„๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒƒ์—์„œ ์‰ฌ์šด ๊ฒƒ๊นŒ์ง€

๋‹น์‹ ์€ ๋‚˜๋ฅผ ๊ฒฉ๋ คํ–ˆ๋‹ค! :) ๊ทธ๋ž˜์„œ ๋‚ด๊ฐ€ "ํšก์„ค์ˆ˜์„คํ•œ" ๊ทœ์น™ ์„ธํŠธ๋งŒ ๋ณผ ์ˆ˜ ์žˆ์„ ๋•Œ ๊ทธ๋ ‡๊ฒŒ ์–ด๋ฆฌ์„๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. :)

๋‹ต๋ณ€์„ ๋‹ค์‹œ ์ฐพ๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ์–ธ์ œ๋“ ์ง€ ์ €๋ฅผ ๊ฐœ์ธ์ ์œผ๋กœ ํƒœ๊ทธํ•ด ์ฃผ์„ธ์š”.

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

๋ณ€ํ™”๊ฐ€ ์ ˆ์‹คํžˆ ํ•„์š”ํ•œ ๊ฒƒ์€ ๋ถ„๋ช…ํ•˜๋‹ค

ํฌํฌ์—์„œ "๋ฌธ์ œ" ์„น์…˜์„ ํ™œ์„ฑํ™”ํ•œ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ํ•ญ์ƒ ์Šน๊ฐ์ผ ๋•Œ ์กฐ์ข…์„์œผ๋กœ ๋Œ์ง„ํ•˜์—ฌ ์—ฌ๊ฐ๊ธฐ๋ฅผ ์กฐ์ข…ํ•˜๋ ค๋Š” ์ข‹์€ ์ง•์กฐ์ž…๋‹ˆ๋‹ค. ์ข‹์€ ์ผ์ด์•ผ.

์‚ด์•„์žˆ๋Š” ๋ฌผ ์†Œ์Šค๊ฐ€ ์žˆ๋‹ค๋ฉด, ๋‹น์‹ ์ด ๊ฐ€๋Š” ๊ธธ์— ๋ฌด์—‡์„ ๋†“์•„๋„ ํ•ญ์ƒ ํ˜๋Ÿฌ๊ฐˆ ๊ธธ์„ ์ฐพ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์†Œ์Šค๊ฐ€ ๋ฐฐ์ˆ˜๋˜์–ด ํ๋ฆ„์ด ์—†์œผ๋ฉด ํ•  ์ผ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ถœ์ฒ˜๋Š” ์ˆ˜์š”์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ํƒœ๋„๋Š” ๋ฌผ์˜ ๊ทผ์›์ด ๋งค์šฐ ์‚ด์•„ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๊ถ๊ธˆํ•ด์„œ์š”. ๊ทธ๋ƒฅ ์ธ์ˆ˜ํ•ด ์ฃผ์‹œ์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์ด ๋‚ด๊ฐ€ ๋กœ๋”ฉ ๋ฐ” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์œ„ํ•ด ํ•œ ์ผ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ด ๋ฉˆ์ถ˜ ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜๊ณ , ๋‚ด ๋ฌธ์ œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ๊ฐ ์ง€์ ์— ๋Œ€ํ•œ pull ์š”์ฒญ์„ ์ƒ์„ฑํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ผ๋งˆ ํ›„, ์›์ €์ž๋Š” ๊ทธ์˜ ์ž‘์—…์„ ๊ณ„์†ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๊ณ  ์šฐ๋ฆฌ๋Š” ๊ฐ€๊ธฐ์— ์ข‹์•˜์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ์ฑ…์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ?

๋‹น์‹ ์€ ๋‚˜๋ฅผ ๊ฒฉ๋ คํ–ˆ๋‹ค! :)

๋‹คํ–‰์ด๋‹ค.

.

์ „๋“ฑ ์Šค์œ„์น˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋žจํ”„๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒƒ์—์„œ ์‰ฌ์šด ๊ฒƒ๊นŒ์ง€

๋”ฐ๋ผ์„œ ์ผ๋ถ€ "ํšก์„ค์ˆ˜์„คํ•œ" ๊ทœ์น™ ์ง‘ํ•ฉ๋งŒ ๋ณผ ์ˆ˜ ์žˆ์„ ๋•Œ ๊ทธ๋ ‡๊ฒŒ ์–ด๋ฆฌ์„๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. :)

์•„๋‹ˆ. ํŒŒ์„œ๋Š” "๊ทธ๋ƒฅ ์šฐ์Šค๊ฝ์Šค๋Ÿฝ๋‹ค๊ฐ€ ๊ฐ‘์ž๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค"๋Š” ๊ทน๋‹จ์ ์ธ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ ํ‚ค์ปค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ๋Œ€์ ์œผ๋กœ ๋งํ•ด์„œ ํŽ˜๊ทธ๋Š” ๋งค์šฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฒƒ๋“ค์€ ์ข…์ข… ๊ทธ๋ƒฅ ์ž”์ธํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ์˜๊ฒฌ์œผ๋กœ๋Š” ํ•™์Šต ํŽ˜๊ทธ์—๋Š” ๋„ค ๊ฐ€์ง€ ํฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์ œ๋Œ€๋กœ ๊ตฌ์„ฑ๋œ ์†Œ๊ฐœ ์ž๋ฃŒ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  2. ์ค‘๊ฐ„ ์ˆ˜์ค€์˜ ์˜ˆ์ œ๊ฐ€ ๋งŽ์ด ์žˆ์ง€๋งŒ ์ฐพ์œผ๋ ค๋ฉด Google์„ ์ž˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  3. ๋‚˜์œ ์˜ˆ๋„ ์žˆ๊ณ  ๊ทธ๊ฒƒ์„ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์œผ๋ ค๋ฉด ๊ฒฝํ—˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  4. ๋‹น์‹ ์€ "์ด๋Ÿฐ ์‹์œผ๋กœ ์ƒ๊ฐ"ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ์ฆ‰์‹œ ์ผ์–ด๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

๋ช‡ ๊ฐ€์ง€ ๋น„๋””์˜ค ์ž์Šต์„œ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ด๊ฒƒ์„ _ํ›จ์”ฌ_ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค.

.

๋‚˜๋Š” ์ด๊ฒƒ์„ ๋‚จ์šฉํ•˜๊ณ  ์‹ถ์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ฌผ์–ด๋ณผ ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๋ฉด ๋งค๋ฒˆ ์ „ํ™”ํ•˜๊ธฐ ์–ด๋ ค์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ผ์ฃผ์ผ์— ํ•œ ๋ฒˆ์€ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋” ๋ฐ˜์‘์ด ๋Š๋ฆฌ๋‹ค๋Š” ์  ์ดํ•ดํ•ด์ฃผ์„ธ์š”

.

ํฌํฌ์—์„œ "๋ฌธ์ œ" ์„น์…˜์„ ํ™œ์„ฑํ™”ํ•œ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ํ•ญ์ƒ ์Šน๊ฐ์ผ ๋•Œ ์กฐ์ข…์„์œผ๋กœ ๋Œ์ง„ํ•˜์—ฌ ์—ฌ๊ฐ๊ธฐ๋ฅผ ์กฐ์ข…ํ•˜๋ ค๋Š” ์ข‹์€ ์ง•์กฐ์ž…๋‹ˆ๋‹ค. ์ข‹์€ ์ผ์ด์•ผ.

์ด์ œ ๋ง‰ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ์‹ค์ œ repo๊ฐ€ โ€‹โ€‹๊ตฌ์ถœ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

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

.

๊ทธ๋ž˜์„œ ๊ถ๊ธˆํ•ด์„œ์š”. ๊ทธ๋ƒฅ ์ธ์ˆ˜ํ•ด ์ฃผ์‹œ์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๊นŒ?

ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ด ๋•Œ ํ•ด๋‹น ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ์ธ์ฆ์€ ํ•œ ์‚ฌ๋žŒ์˜ ์†์— ๋‹ฌ๋ ค ์žˆ์–ด ์•„์ง๊นŒ์ง€ ์•„๋ฌด๋Ÿฐ ๋Œ€์‘๋„ ํ•˜์ง€ ์•Š๊ณ  ์žˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋ณผ ๊ฒƒ์ด๋‹ค.

.

๊ฐœ๋ฐœ์ด ๋ฉˆ์ท„๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ๊ณ  ๋‚ด ๋ฌธ์ œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ๊ฐ ์ง€์ ์— ๋Œ€ํ•œ pull ์š”์ฒญ์„ ์ƒ์„ฑํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ์ธ๊ณ„๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค

๊ฒŒ์‹œ๋œ ๋‚ด์šฉ์€ 0.10.0 ์ž…๋‹ˆ๋‹ค.

์ƒˆ ์œ ์ง€ ๊ด€๋ฆฌ์ž๋Š” 0.11.0 ๋ถ„๊ธฐ๊ฐ€ 3๋…„ ๋™์•ˆ ๋ฌด์ œํ•œ์œผ๋กœ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•œ ๋‹ค์Œ, 0.12.0 ๊ฐ€ ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ฒฉ๋ฆฌ๋˜์–ด ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ทจ์†Œ๋˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

PR์„ ํ•  ์ผ์ด ์—†์Šต๋‹ˆ๋‹ค. npm ์— ์žˆ๋Š” ๊ฒƒ์€ 2017๋…„์ด๊ณ , ์ƒˆ ๊ด€๋ฆฌ์ž ์•„๋ž˜ github ์— ์žˆ๋Š” ๊ฒƒ์€ ๊ฒŒ์‹œํ•˜์ง€ ์•Š๊ณ  3๋…„ ํ›„์— ์ทจ์†Œ๋ฉ๋‹ˆ๋‹ค.

.

์–ผ๋งˆ ํ›„, ์›์ €์ž๋Š” ๊ทธ์˜ ์ž‘์—…์„ ๊ณ„์†ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๊ณ  ์šฐ๋ฆฌ๋Š” ๊ฐ€๊ธฐ์— ์ข‹์•˜์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ์ฑ…์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ?

๊ต์ฒด ์œ ์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ๊ธฐ๊บผ์ด ํ—ˆ์šฉํ•œ๋‹ค๋ฉด ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฑฐ์˜ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

David๊ฐ€ ๋Œ์•„์˜ฌ์ง€ ์˜์‹ฌ์Šค๋Ÿฝ๊ธด ํ•˜์ง€๋งŒ ๊ทธ๊ฐ€ ๋Œ์•„์˜จ๋‹ค๋ฉด ํ™˜์ƒ์ ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ด๊ฒƒ์„ ํ‘œ์ค€ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋กœ ๋‹ค์‹œ ๋ฐ”๊พธ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์— ๋”ฐ๋ฅด๋ฉด ์—ฌ๊ธฐ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ 3๊ฐ€์ง€ ๋ฌธ์ œ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋‚˜์—๊ฒŒ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋งํ•˜๋Š” ๊ฒƒ์€ ์•ฝ๊ฐ„ ์œ„ํ—˜ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์—ฌ๊ธฐ์—๋Š” peg ๋ณด๋‹ค ๋” ๋งŽ์€ ๊ฒฝํ—˜์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. " ๋“ฃ๊ฒŒ ๋  ๊ฒƒ ๊ฐ™๋‹ค.

์ด๋ฅผ ์œ„ํ•ด ์—ฌ๊ธฐ์—์„œ ๊ฐœ๋ฐœํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์—์„œ ๋‚ด๊ฐ€ ๊ด€์‹ฌ์„ ๊ฐ€์ง€๋Š” ๊ฒƒ์€ ๋ฉ”์ธํ…Œ์ด๋„ˆ ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ ์ฝ”๋”ฉ์€ ์ •๋ง, ์ •๋ง ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

  • Development coding ๋Š” ์ƒˆ๋กญ๊ณ  ๋ฉ‹์ง„ ์•„์ด๋””์–ด, ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ, ๋ฉ‹์ง„ ์•„์ด๋””์–ด๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.
  • Maintenance coding ๋Š” ์ž‘์€ ๋ฌธ์ œ๊ฐ€ ์ง‘๊ณ„๋˜์–ด ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋งŒ๋“ค๊ธฐ ์ „์— ์ˆ˜์ •ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ ์ฝ”๋”ฉ์„ ํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€๋Š” ๊ธฐ๋Œ€ํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์— ๋” ์ ํ•ฉํ•œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ €๋Š” ๋ถ„๋ช…ํžˆ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ œ ์‹ค์ œ ๋ชฉํ‘œ๋Š” ๊ทธ๋“ค์ด ์˜ˆ์ „์ฒ˜๋Ÿผ ๋‹ค์‹œ PR์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.


์ฆ‰, ๋‚ด ๊ฐœ์ธ์ ์ธ ๊ฒฌํ•ด๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด :

1. ์ •๊ทœ ๋ฆด๋ฆฌ์Šค ์ฃผ๊ธฐ๋ฅผ ๋˜๋Œ๋ฆฌ๊ธฐ

peg.js ๋Š” ๋‹ค์‹œ๋Š” ๋งค์ง ๋ธŒ๋žœ์น˜๋ฅผ ๊ฐ€์ง€์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋นŒ์–ด๋จน์„ One Ring๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ํ›Œ๋ฅญํ•˜๊ณ  ๊ฐ•๋ ฅํ•˜๊ฒŒ ๋“ค๋ฆฌ์ง€๋งŒ ๊ทธ๊ฒƒ์€ ๋นŒ์–ด๋จน์„ ์ผ์ด ์•„๋‹ˆ๋ฉฐ ๊ฒฐ๊ตญ ๋‹น์‹ ์€ ๊ณจ๋ฃธ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ svn ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์Šคํ‹ฐ๋ธŒ ๋ฐœ๋จธ์˜ ๋ชฉ์†Œ๋ฆฌ์—์„œ feature branches , feature branches , feature branches , feature branches .

๋ฒ„์ „์€ ๊ธฐ๋Šฅ ๊ณ„ํš์˜ ์ˆ˜์ง‘ ์ง€์ ์ด ์•„๋‹ˆ๋ผ ๊ธฐ๋Šฅ์˜ ๊ฒฐ๊ณผ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” 1980๋…„๋Œ€ ํšŒ์‚ฌ๊ฐ€ ์•„๋‹ˆ๋ฉฐ ๊ทธ๋Ÿฐ ํšŒ์‚ฌ๋ฅผ ๊ณ„ํšํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

๋™์‹œ์— ๋‘˜ ์ด์ƒ์˜ ๊ธฐ๋Šฅ์ด ๋“ค์–ด๊ฐ€์•ผ ํ•˜๋Š” ์œ ์ผํ•œ ๊ฒฝ์šฐ๋Š” ์™ธ๋ถ€ ์—…๊ทธ๋ ˆ์ด๋“œ์— ๋Œ€์ฒ˜ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋Šฅ์„ ํŒจ์น˜ํ•œ ๊ฒฐ๊ณผ ๋˜๋Š” ์ง„์ •์œผ๋กœ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์—†๋Š” ์ผ๊ณผ ๊ฐ™์ด ๋ถˆ๊ฐ€ํ”ผํ•œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์˜ค, ๋‹ค๋ฅธ ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ? ์ข‹์Šต๋‹ˆ๋‹ค. 2.31.0 ์— ๋„ฃ๊ณ  2.29.0 ๋ฅผ ๊บผ๋‚ด์•ผ ํ•˜๊ณ  ์ €๊ธฐ ์žˆ๋Š” ๋‹ค๋ฅธ ๊ฒƒ์€ 30 ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

๊ตฌ์ฒด์ ์œผ๋กœ ๋งํ•˜์ž๋ฉด,

  • ์‚ฌ๋žŒ๋“ค์€ ์ด ๋„์„œ๊ด€์ด ๋” ์ด์ƒ ์กด์žฌํ•œ๋‹ค๋Š” ๋ฏฟ์Œ์„ ํฌ๊ฒŒ ์žƒ์—ˆ์Šต๋‹ˆ๋‹ค.
  • 3๊ฐœ์›”์˜ ์ฃผ๊ฐ„ ๋ฆด๋ฆฌ์Šค๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋˜ ๋‹ค๋ฅธ ๊ธฐํšŒ๋ฅผ ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    • 3๊ฐœ์›”์˜ ์ฃผ๊ฐ„ ๋ฆด๋ฆฌ์Šค๋Š” ์‹ค์ œ๋กœ ๋‹ฌ์„ฑํ•˜๊ธฐ ๋งค์šฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

  • 0.12.0 ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ 0.13.0 ๋„ ๊ฐ€์ ธ์™”๋‹ค๋ฉด - ๊ทธ๋ฆฌ๊ณ  ๋‚ด๊ฐ€ ๊ทธ ์•ˆ์— ๋ฌด์—‡์ด ๋“ค์–ด ์žˆ๋Š”์ง€ ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ทธ๊ฒƒ์ด ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„์ฐจ๋ฆฌ๋ฉด - ๊ทธ๋Ÿฌ๋ฉด ์šฐ๋ฆฌ๋Š” 1.0.0 ์—์„œ ์‹ค์ œ ๊ธฐํšŒ๋ฅผ ์žก์œผ์„ธ์š”
  • ์—ฌ๊ธฐ์—์„œ ๊ณต๊ฐœ ๋ฐ ๋น„๊ณต๊ฐœ ๋ณ‘ํ•ฉ๋˜์ง€ ์•Š์€ PR์„ ์‚ดํŽด๋ณด๋ฉด 2015๋…„ ์ •๋„์— "๋‚˜์ค‘์— ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค."์™€ ๊ฐ™์€ ๋Œ“๊ธ€๊ณผ ํ•จ๊ป˜ ์—„์ฒญ๋‚œ ์–‘์˜ ํž˜๊ณผ ์•„๋ฆ„๋‹ค์›€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋Œ€ํ•œ ์‚ฌ๋žŒ์ด ๋˜๊ณ  ๊ถŒ์œ„๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์„ ์ฐพ๋Š” ๊ฒƒ์€ peg ์— ๋„์›€์ด ๋  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฝƒ์„ ํ”ผ์šฐ๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋Ÿฐ ์˜๋ฏธ์—์„œ ๋‚˜๋Š” ์˜ˆ์ˆ ๊ฐ€๊ฐ€ ๋˜๊ณ  ์‹ถ์ง€ ์•Š๋‹ค. ํ๋ ˆ์ดํ„ฐ๊ฐ€ ๋˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

2. ๋ฌธ์„œํ™” ๋ฐ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜์šฉ ๊ฐ€๋Šฅํ•œ ์žฅ์†Œ์— ๊ฐ€์ ธ์˜ค๊ธฐ

๋ชจ๋‘๊ฐ€ ์ด๊ฒƒ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜์ง€๋งŒ ๋‚ด ์ทจ๋ฏธ ์œ ํ•œ ์ƒํƒœ ๊ธฐ๊ณ„๋Š” ํ˜„์žฌ 3500 ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์™€ 100% ๋ฌธ์„œ ์ ์šฉ ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋” ์‹ฌ๊ฐํ•˜๊ฒŒ ์ƒ๊ฐํ•˜์‹ญ์‹œ์˜ค.

์ €๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์ •๋ง ๊นŠ์ด ๋ฏฟ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ๋˜ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํฌ๊ธฐ๊ฐ€ ์ ˆ๋ฐ˜์ด๊ณ  ์ƒํƒœ ๋จธ์‹ ๋ณด๋‹ค ๋ณต์žก์„ฑ์ด ํ›จ์”ฌ ๋‚ฎ์Šต๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์ œ๋Œ€๋กœ ํ…Œ์ŠคํŠธ๋˜์ง€ ์•Š์•˜๊ณ  ๋ฌด์–ธ๊ฐ€๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋งŽ์€ ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์—ฌ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋„คํŠธ์›Œํฌ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์•ฝ๊ฐ„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ƒํƒœ ๋จธ์‹ ์— ๋Œ€ํ•ด ํฌ๊ด„์ ์ธ ์–ธ์–ด ๋ณ€๊ฒฝ์„ ํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ์‰ฝ์Šต๋‹ˆ๋‹ค.

FSM? ์•„๋‹ˆ, ํ…Œ์ŠคํŠธ๋Š” ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋‹น์‹ ์„ ์žก์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค

์ด ํŠน์ •ํ•œ ๋Œ€์กฐ๋Š” ๋‚ด๊ฐ€ ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋งŒ์งˆ ๋•Œ๋งˆ๋‹ค ์ž”์ธํ•  ์ •๋„๋กœ ๋ช…ํ™•ํ•˜๊ฒŒ ๋‚˜์—๊ฒŒ ํ…Œ์ŠคํŠธ๊ฐ€ ์‹ค์ œ๋กœ ์–ด๋–ค ๊ฒƒ์ด, ์ ์–ด๋„ ๋‚˜์—๊ฒŒ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์ค‘์š”ํ•œ์ง€๋ฅผ ์ƒ๊ธฐ์‹œ์ผœ์ค๋‹ˆ๋‹ค.

peg.js ์ž‘์—…์˜ ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ๋Š” ํ…Œ์ŠคํŠธ์™€ ๋ฌธ์„œํ™”๊ฐ€ ์—‰๋ง์ด๋ผ๋Š” ์ ์ž…๋‹ˆ๋‹ค. ์ด์ œ๋Š” ๋ฐ”๋€Œ์–ด์•ผ ํ•  ๋•Œ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.


3. ํž™์Šคํ„ฐ์˜ ๋„Œ์„ผ์Šค ์ œ๊ฑฐ.

  • ๋‚˜๋Š” Ruby ์‚ฌ๋žŒ์ด ์•„๋‹ˆ์ง€๋งŒ Ruby ์‚ฌ๋žŒ๋“ค์€ ๊ด€์Šต์— ๋”ฐ๋ฅธ ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ์ง„์ •ํ•œ ์š”์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” Ruby๋ฅผ ์ „ํ˜€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ ์—ฌ์ „ํžˆ ์•‰์•„์„œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ทธ๊ฒƒ์ด ๋ชจ๋‘๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚ด๊ฐ€ ๋ฌด์–ธ๊ฐ€๋ฅผ ์–ป์ง€ ๋ชปํ•˜๋ฉด ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๊ณ  ๊ทธ๋“ค์€ ์•ก์„ธ์Šคํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๊ฒƒ์ด ๊ทธ๋“ค์ด ๋ชจ๋‘ ์ผํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค
  • peg ๋Š” ์ด์™€ ๊ด€๋ จํ•˜์—ฌ 4๊ฐ€์ง€ ๋ฌธ์ œ์— ์ง๋ฉดํ•ด ์žˆ์Šต๋‹ˆ๋‹ค.

    1. peg ๋Š” ๋งค์šฐ ์ดˆ๊ธฐ์˜ javascript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋ฉฐ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ทœ๋ฒ”์ด ์กด์žฌํ•˜๊ธฐ ์ „์— ๋งŽ์€ ๊ธฐ๋ณธ ์„ ํƒ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค, ์—ฌ๋Ÿฌ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ทœ๋ฒ”์€ David ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค . ํŽ˜๊ทธ ์ด์ „์—๋Š” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋ฉ€ํ‹ฐํŒจํ‚ค์ง•์ด ์–ด๋ ต๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ๊ทธ๋Ÿฐ ๋ฉด์—์„œ ์„ ๊ตฌ์ž ์ค‘ ํ•œ ๋ช…์ด ๊ฐ™์€ ๋ฉด์—์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด ๋’ค์ฒ˜์ ธ ์žˆ์–ด์„œ ๋งˆ์Œ์ด ์•„ํ”•๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธด ํ•˜์ง€๋งŒ, David๊ฐ€ ๋ฏธ๋ฆฌ ์–ป์€ ํ›Œ๋ฅญํ•œ ๊ฒƒ๋“ค ์™ธ์—๋„ ๊ทธ๊ฐ€ ์ž˜๋ชปํ•œ ๊ฒƒ๋“ค, ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋‹น์‹œ์— ์žˆ์—ˆ๋˜ ๊ฒƒ๋“ค ์ค‘ ์ผ๋ถ€๋Š” ๋” ์ด์ƒ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์ž‘์€ ๋ณ€ํ™”๊ฐ€ ๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜์— ๊ทผ๋ณธ์ ์ธ ๋ณ€ํ™”๋ฅผ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    2. ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ทœ๋ฒ”์„ ์žฌ์ •๋ฆฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.



      1. node ํ”„๋กœ์ ํŠธ๊ฐ€ ์ž‘๋™ํ•ด์•ผ ํ•˜๋Š” ํŠน์ •ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋ธŒ๋ผ์šฐ์ € ๋Œ€์ƒ ์ถœ๋ ฅ ์ƒ์„ฑ์ด ํฌํ•จ๋˜๋ฏ€๋กœ ๋…ธ๋“œ ํ”„๋กœ์ ํŠธ๋Š” ๋ถ„๋ช…ํžˆ ์˜ฌ๋ฐ”๋ฅธ ํ˜„๋Œ€์‹ ์ž‘์—… ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.


      2. ์ด๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์†์œผ๋กœ ๋งŒ๋“  ์ž๋™ํ™”๊ฐ€ ์ ์šฉ๋œ ๋ธŒ๋ผ์šฐ์ € ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฑด ๋ฐ”๋€Œ์–ด์•ผ ํ•œ๋‹ค


      3. README ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ๋Š” ์œ„์น˜์— ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•œ ํ•™์Šต ๊ณผ์ œ์ž…๋‹ˆ๋‹ค. 3๋…„์ด ์ง€๋‚œ ํ›„์—๋„ ํ˜„์žฌ ์œ ์ง€ ๊ด€๋ฆฌ์ž๋Š” ์—ฌ์ „ํžˆ ์ด๋ฅผ ํ•ด์ œ ํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ(!) ์ง€๋‚œ ๋‘ ๋ฒ„์ „์˜ ์›๋ž˜ ๊ฐœ๋ฐœ์ž๋„ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.





        • ์•„์‹œ๋‹Œ์ž…๋‹ˆ๋‹ค. ์‚ฌ์†Œํ•ด์•ผ ํ•  ํ”„๋กœ์ ํŠธ์˜ ์กฐ๊ฐ๋“ค์ด ๋‹จ์ˆœํ•˜๊ณ  ์ •์ƒ์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์ˆ˜ํ–‰๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊นจ์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋‹จ์ˆœํ•˜๊ณ  ์ •์ƒ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•˜์ง€๋งŒ, ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๋…ธ๋“œ๋ฅผ ์•Œ๊ณ  ์ง€๋ฃจํ•œ ์ž‘์—…์„ ํ•  ์ค€๋น„๊ฐ€ ๋œ ์‚ฌ๋žŒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.






    3. peg ๋Š” ๊ทน๋‹จ์  ์ž๋™ํ™”์˜ ์ˆ˜ํ˜œ์ž์ด์ž ํ”ผํ•ด์ž์ž…๋‹ˆ๋‹ค.



      • dmajda ์ด(๊ฐ€) ์—†์—ˆ์œผ๋ฉด ์ง€๊ธˆ๊นŒ์ง€ ํ•˜์ง€ ๋ชปํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ™•์‹คํžˆ ๋‚ด ๋ฌผ๊ฑด์— ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.


      • ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ 2011 ์ž๋™ํ™”๊ฐ€ ์•„๋‹ˆ๋ผ 2020 ์ž๋™ํ™”์ž…๋‹ˆ๋‹ค.


      • ๋˜ํ•œ 2013, 2014, 2016 ๋ฐ 2018 ์ž๋™ํ™”์ž…๋‹ˆ๋‹ค. ์ด ๋‚ด์šฉ์€ zeit, ํ˜„์žฌ github ํŽ˜์ด์ง€, yahoo ๊ฐœ์ธ ๊ณ„์ •, gitlab, ์—ฌ๋Ÿฌ ์ด์ƒํ•œ ์ถ”์  ๋ฐ ์ž๋™ ๋ฐฐํฌ ์„œ๋น„์Šค, ๊ทธ๋ฆฌ๊ณ  ์•„๋งˆ๋„ ๋‚ด๊ฐ€ ์•„์ง ์ฐพ์ง€ ๋ชปํ•œ ๋งŽ์€ ๊ฒƒ๋“ค์— ํผ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.


      • ๋ถ•๊ดด์—์„œ ์‚ด์•„๋‚จ๊ฑฐ๋‚˜ ๋œจ๊ฑฐ์šด ์ƒˆ๋กœ์šด ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ๋…ธ๋Š” ๊ฒƒ์€ ๋‹จ์ง€ ๋„๊ตฌ๋ฅผ ํœ˜๋‘๋ฅด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‹ ์ค‘ํ•œ ๋„๊ตฌ ์„ ํƒ์€ ์˜๊ตฌ์ ์ธ ์„ค๊ณ„๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค. ์‹ค์ œ repl ๋Š” ์ด์ œ ๊ฑฐ์˜ 10๋…„ ๋™์•ˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "ooh Shiny"๊ฐ€ ์œ„ํ—˜ ์‹ ํ˜ธ๋กœ ์ทจ๊ธ‰๋œ๋‹ค๋ฉด ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


      • ์ด๊ฒƒ์€ gh pages ๋ฐ gh actions ๋กœ ์˜ฎ๊ฒจ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋‘๊ฐ€ ์ดํ•ดํ•˜๊ณ  ์˜์›ํžˆ ๋‚จ๊ฒจ๋‘ก๋‹ˆ๋‹ค.



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



      • ์ œ3์ž๊ฐ€ ํ‘œ์ค€ ์–ธ์–ด ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋„ ์ž‘๋™ํ•˜๋„๋ก ํ•˜๋Š” ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ œ๊ณตํ–ˆ์„ ๋•Œ ๊ทธ๋Š” ์ด๋ฅผ ๊ฑฐ๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค.


      • ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ํ–‰๋™์€ ์†”์งํžˆ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”„๋กœ์ ํŠธ์—์„œ ์šฉ๋‚ฉ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ธฐ์—ฌํ•˜๊ธฐ๊ฐ€ ํ›จ์”ฌ ๋” ์–ด๋ ต์Šต๋‹ˆ๋‹ค.


      • ์ด๋Ÿฌํ•œ ๊ทน๋‹จ์ฃผ์˜ ๋„๊ตฌ ์ค‘ ์ผ๋ถ€๋Š” ๋‹ค๋ฅธ ๊ทน๋‹จ์ฃผ์˜ ๋„๊ตฌ๋กœ ๋Œ€์ฒด๋˜์—ˆ์œผ๋ฏ€๋กœ ๊ทธ๋Š” ์ž์‹ ์ด ์•„๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€๋ฅผ ์‹œ๋„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๋™์•ˆ ์šฐ๋ฆฌ๋Š” $#$12 readme ์—์„œ npm ๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ es6 modules ๋ณ‘ํ•ฉ๊ณผ ๊ฐ™์€ AST์˜ ์ฒ ์ž ์˜ค๋ฅ˜์™€ ๊ฐ™์€ ๊ธฐ๋ณธ ์‚ฌํ•ญ์„ ํ•œ ๋ฒˆ์— 3๋…„ ๋™์•ˆ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.


      • ์†”์งํžˆ ๋งํ•ด์„œ 0.12.0 ๋ฆฌ๋ฒ ์ดํฌ์—์„œ๋Š” ๋ชจ๋“ˆ ์›์‚ฌ ์žฌ๋ฃŒ์˜ ๋ชจ๋“ˆ๊ณผ ๊ฐ™์€ ๊ฒƒ๋“ค์ด ๋‚˜์˜ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค. David์˜ ๋นŒ๋“œ ํ•ญ๋ชฉ์€ 2011๋…„๋ถ€ํ„ฐ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. 2018๋…„์˜ ์ƒˆ๋กœ์šด ํ•ญ๋ชฉ์€ 2020๋…„์— ์ด๋ฏธ ๊นจ์กŒ์Šต๋‹ˆ๋‹ค. ๋” ์ด์ƒ dilettante ๊ธฐ์ˆ ์€ ์—†์Šต๋‹ˆ๋‹ค.



  • ๊ทธ๋ฆฌ๊ณ  ES6 ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ทธ๋Ÿฌ๋‚˜ ๊ทธ ์ค‘ ์–ด๋Š ๊ฒƒ๋„ ์‹ค์ œ๋กœ ์†Œํ”„ํŠธ์›จ์–ด ์ž์ฒด์— ๊ด€ํ•œ ๊ฒƒ์ด ์•„๋‹˜์„ ์•Œ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์—ฌ๊ธฐ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š๋Š”๋‹ค

๋‚˜๋Š” ๊ทธ ๊ณผ์ •์ด, ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ •๋„๋Š” ๋œํ•˜์ง€๋งŒ,

@futagoza ๊ฐ€ ํ—ˆ์šฉํ•œ๋‹ค๋ฉด ์ˆ˜์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ๋„์„œ๊ด€์€ ์ž๋ถ€์‹ฌ์„ ์‚ผํ‚ค๊ณ  ์ทจ๋ฏธ ํ”„๋กœ์ ํŠธ ๊ด€์‹ฌ๋ณด๋‹ค ๋„์„œ๊ด€์˜ ๋Œ€๊ทœ๋ชจ ์ปค๋ฎค๋‹ˆํ‹ฐ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์„ ํƒํ•˜๋ฉด 30์ผ ๋งŒ์— ๋‹ค์‹œ ์‚ด์•„๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ทจ๋ฏธ ๋‹ค์‹œ ์“ฐ๊ธฐ๊ฐ€ ํฌํฌ๊ฐ€๋˜๊ฒŒํ•˜์‹ญ์‹œ์˜ค

๊ด€๋ฆฌ์ž๊ฐ€ ์œ ์ง€ ๊ด€๋ฆฌ๋ฅผ ์‹œ์ž‘ํ•˜๊ฒŒํ•˜์‹ญ์‹œ์˜ค

@StoneCypher ๋‚˜๋Š” ๋‹น์‹ ์˜ ์—๋„ˆ์ง€๋ฅผ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค :-) ๋‚˜๋Š” ๊ณผ๊ฑฐ (dmajda์˜ ์‹œ๋Œ€์—) pegjs๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ทธ๊ฒƒ์„ ๋งŽ์ด ์ข‹์•„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ƒฅ ํฌํฌํ•˜๊ณ  ์‹ธ์šฐ์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ƒํ™ฉ์€ ๋‚˜์ค‘์— ํ•ด๊ฒฐ๋  ์ˆ˜ ์žˆ๊ณ  ํ•ด๊ฒฐ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ํŒ”๋กœ์šฐํ•˜๋ฉด ๊ธฐ์กด "ํ‚ค ํ™€๋”"๋‚˜ ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์— ๋Œ€ํ•ด ์‹ ๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ช…์„ฑ์„ ์Œ“๋Š” ๋ฐ๋Š” ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ์ง€๋งŒ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋” ์ด์ƒ ๋…ผ์Ÿ์— ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

8๋ฒˆ์˜ ํฌํฌ๋Š” ๋ฏธ๋ž˜์˜ ์–ด๋Š ์‹œ์ ์—์„œ "์›์ ์œผ๋กœ ๋Œ์•„๊ฐ€๊ฒŒ" ๋งŒ๋“ค๊ฑฐ๋‚˜ ๊ณ ์œ ํ•œ ์ˆ˜๋ช…์„ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋‘ ์˜ต์…˜ ๋ชจ๋‘ ์œ ํšจํ•˜๊ณ  ํ›Œ๋ฅญํ•œ IMO์ž…๋‹ˆ๋‹ค.

"make fork" ํ—›์†Œ๋ฆฌ๋กœ ๋ฉˆ์ถฐ์ฃผ์„ธ์š”. 4๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ ๊ทธ๊ฒŒ ๋ญ”์ง€ ์ž˜ ๋ชจ๋ฅด์‹œ๋”๋ผ๊ตฌ์š”. ํฌํฌ๋Š” ๊ธฐ์กด ๋‹ค์šด์ŠคํŠธ๋ฆผ ์†Œ๋น„์ž๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๊ณ , PR์„ ์ €์žฅํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๋ฌธ์ œ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š์œผ๋ฉฐ, ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‚ฌ๋žŒ๋“ค์€ 3๋…„ ๋™์•ˆ ๊ทธ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ์กฐ์–ธ์„ ๊ณ„์† ์ œ๊ณตํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

@futagoza - ๋ชจ๋‘๊ฐ€ ๋‹น์‹ ์ด ์˜ณ์€ ์ผ์„ ํ•˜๋Š” ๊ฒƒ์„ ํฌ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. 5๋ช…์˜ ์‚ฌ๋žŒ๋“ค์ด ๋‚˜์—๊ฒŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํฌํ•˜๋ผ๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ทธ๋“ค์€ ๋‹น์‹ ์ด ์ˆ˜๋ฆฌ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ณ  ์ฃฝ์ด๊ณ  ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ณ„์† ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ทธ๋“ค์ด ์ด๊ฒƒ์„ ๊ธฐ๋Œ€ํ•˜๋Š” ์ด์œ ๋Š” ๋‹น์‹ ์ด ์•ฝ์†ํ–ˆ์ง€๋งŒ ํ•˜์ง€ ์•Š์€ ์ผ์„ ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ๊ฒ ๋‹ค๊ณ  ์ œ์•ˆํ•˜๋Š” 12๋ช… ์ด์ƒ์˜ ์‚ฌ๋žŒ๋“ค์„ ์ฐพ์•˜๊ณ  ๋‹น์‹ ์ด "์•„๋‹ˆ์š”, ๊ณง ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. "

2018๋…„์— ํ–ˆ์–ด์•ผ ํ•  ์ผ์„ ํ•˜๊ณ  ์‹ค์ œ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ ์ง€ ๊ด€๋ฆฌํ•  ์‚ฌ๋žŒ์—๊ฒŒ ์œ ์ง€ ๊ด€๋ฆฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฃฝ์ด๋Š” ๊ฒƒ์„ ๋ฉˆ์ถ”๊ณ , ์ด ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์ฃฝ์ด๋Š” ๊ฒƒ์„ ๋ฉˆ์ถ”๊ณ , ๋น„์ผœ์ฃผ์„ธ์š”.

@StoneCypher John, ํฌํฌ๋ฅผ ๋งŒ๋“ค์ž๊ณ  ์ œ์•ˆํ–ˆ์„ ๋•Œ ์ •๋ง ์˜๋ฏธ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ํฌํฌ๋Š” ํŠนํžˆ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ์ฃฝ์–ด ๊ฐ€๊ณ  ์žˆ๋‹ค๊ณ  ๋Š๋‚„ ๋•Œ ์˜คํ”ˆ ์†Œ์Šค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํ›Œ๋ฅญํ•œ ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„๋‹ˆ์š”, ์ €๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด ์งˆ๋ฌธ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ €์—๊ฒŒ DM์„ ๋ณด๋‚ผ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

"๋‹ค์‹œ๋Š” ์ด๋Ÿฐ ์ถฉ๊ณ  ํ•˜์ง€๋งˆ"๋ผ๊ณ  ํ•œ ๊ฒƒ๋„ ์ง„์‹ฌ์ด์—ˆ๋‹ค.

๋‚˜๋Š” ์ด ๋Œ€ํ™”๋ฅผ ์ข‹์•„ํ•œ๋‹ค.

@StoneCypher ๋‚˜๋Š” ๋ฐ˜๋Œ€๋ฅผ ๋ณด์•˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์— ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  1. ์ €๋Š” FreeCAD๋ฅผ ๋ฐฐ์šฐ๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. "์–ด์…ˆ๋ธ”๋ฆฌ ๋ชจ๋“ˆ"์ด ์™„์ „ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ „๋ฌธ์ ์ธ ์ž‘์—…์— ์“ธ๋ชจ๊ฐ€ ์—†๋Š” ๋ณต์žกํ•œ ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ๊ฑฐ์˜ ๋งŒ๋“ค ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.
  2. realthunder ๋ผ๋Š” ์‚ฌ๋žŒ์ด ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋ช‡ ๊ฐ€์ง€ ํ•ต์‹ฌ ์†์„ฑ์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ–ˆ๊ณ , ๊ทธ ๊ฒฐ๊ณผ ํฌํฌ๊ฐ€ ์ฃผ๋ฅ˜ ๋ธŒ๋žœ์น˜์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ๋ชจ๋“  ์‚ฌ์šฉ์ž, ๊ฑฐ์˜ ๋ชจ๋“  ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์žƒ์—ˆ์Šต๋‹ˆ๋‹ค. ์†Œ์ˆ˜์˜ ์‚ฌ๋žŒ๋“ค์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์ง€์ง€์ž๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค(์ œ๊ฐ€ ๋ณธ ๊ฒƒ์ž…๋‹ˆ๋‹ค). ๋‚ด๊ฐ€ ์ดํ•ดํ•˜๋Š” ํ•œ ๊ทธ๋Š” ๋˜ํ•œ ํ™œ์„ฑ ์‚ฌ์šฉ์ž๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.
  3. ๋‚˜๋Š” ๊ทธ์˜ ๋ฌธ์„œ ยน ๋ฅผ ์กฐ์‚ฌํ–ˆ๊ณ  ๊ฐœ๋ฐœ์ด ์ง€์—ฐ๋œ ํ•ด์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ (๋‹น์‹œ ๋‚ด๊ฐ€ ๋ณธ ๊ฒƒ) ์ˆ˜ํ•™(ํฅ๋ฏธ๋กœ์šด ์ˆ˜ํ•™)์„ ๋งŒ๋“ค๊ณ  ์‹œ๋„ํ•ด ๋ณด๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
  4. ๋‚˜๋Š” ๋งŽ์€ ์งˆ๋ฌธ์„ ยน ํ–ˆ๊ณ  ๊ทธ๋Š” ์ฐธ์„์„ฑ ์žˆ๊ฒŒ ๋Œ€๋‹ตํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋™์•ˆ ๋ฐฐ์šด ๋‚ด์šฉ์„ ๋ฉ”๋ชจ ํ•˜์—ฌ ์ข‹์€ ์†Œ๊ฐœ ์ž๋ฃŒ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
  5. ์‚ฌ๋žŒ๋“ค์€ ยน ๊ฐ€ ์™ธ๋กœ์šด ์ €์ž์ด์ž ์œ ์ง€ ๊ด€๋ฆฌ์ž์ด๋ฉฐ ์ง€์† ๊ฐ€๋Šฅ์„ฑ ์ธก๋ฉด์—์„œ ๊ทธ์˜ ์ž‘์—…์„ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์ฃผ์žฅํ•˜๋ฉด์„œ ๊ทธ์˜ ์ง€์ ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋‚™๋‹ดํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ๋ฌด์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.
  6. ๊ทธ์˜ pull ์š”์ฒญ์€ ์˜ค๋žซ๋™์•ˆ(์•ฝ 1๋…„ ์ •๋„) ๋ณ‘ํ•ฉ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

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

๊ทธ๋Ÿฌ๋Š” ๋™์•ˆ ์‹ฌ๊ฐํ•œ ์žฌ์ • ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ์œ ์ผํ•œ ์œ ์ง€ ๊ด€๋ฆฌ์ธ์ด์—ˆ๊ณ  ๋ช‡๋ช‡ ์‚ฌ์šฉ์ž์˜ ๊ธฐ๋ถ€๋กœ ๊ทธ๋ฅผ ์‚ด์•„๋‚จ์„ ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ํ„ฐํ‚ค์—์„œ FreeCAD/Assembly3๋ฅผ ๊ฐ€๋ฅด์น˜๊ณ  ์žฌ์ • ์ง€์›์„ ์œ„ํ•ด ์ง€์›์„ ํŒ๋งคํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ์—๊ฒŒ ์ œ์•ˆํ–ˆ๊ณ  ์ด๊ฒƒ์€ ๋ฐ›์•„๋“ค์—ฌ์กŒ๋‹ค. ๋‚˜๋Š” ์ตœ๊ทผ์— ์Šน์ธ๋œ ์œ ๋ช…ํ•œ ์žฌ๋‹จ์—์„œ ํŠธ๋ ˆ์ด๋„ˆ๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ชจ๋“  ์ง€์›์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋•Œ๋กœ๋Š” ํ•œ ์‚ฌ๋žŒ์ด ๋ถˆ์„ ์ง€ํ”ผ๊ธฐ์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋น„์ผœ

๋™์˜ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋“ค์ด ๊ธธ์„ ๊ฐ€๋„๋ก ๋‚ด๋ฒ„๋ ค ๋‘์‹ญ์‹œ์˜ค. ์ข‹์€ ๋™๊ธฐ๋Š” ํ•ญ์ƒ ํƒˆ์ถœ๊ตฌ๋ฅผ ์ฐพ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ๋ชปํ•˜๋‹ค๋ฉด ์ข‹์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋‚˜๋Š” ์ด ์ฃผ์ œ์— ๋Œ€ํ•œ ์กฐ์–ธ์„ ๋ช…ํ™•ํ•˜๊ณ  ๋ช…ํ™•ํ•˜๊ฒŒ ์ˆ˜์ง‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ถ€ํ™œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์ถฉ๋ถ„ํžˆ ์„ค๋ช…ํ•˜์ง€ ๋ชปํ–ˆ๋‹ค๋ฉด ์œ ๊ฐ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ œ๊ฐ€ ๋ฐ›๋Š” ์‘๋‹ต์€ ์ œ๊ธฐ๋œ ์‹ค์งˆ์ ์ธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ๋žŒ๋“ค์˜ ์‚ถ๊ณผ ์ง์—…์ด ์—ฌ๊ธฐ์— ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.

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