GitHub๋Š” ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์˜ "๋งˆ์Šคํ„ฐ" ์ด๋ฆ„์„ ์‚ญ์ œํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

GitHub์˜ ์ฑ…์ž„์ž์ธ Nat Friedman ํ™•์ธ ๋œ ๋ฏธ๊ตญ์˜ ๊ฒฝ์ฐฐ ํญ๋ ฅ๊ณผ ์ธ์ข… ์ฐจ๋ณ„์— ๋ฐ˜๋Œ€ํ•˜๋Š” ์‹œ์œ„๋Œ€์™€์˜ ์—ฐ๋Œ€์˜ ํ‘œ์‹œ๋กœ "๋งˆ์Šคํ„ฐ"๋Œ€์‹  ์ฃผ์š” ์ง€์ ์˜ ๊ธฐ๋ณธ ์ด๋ฆ„์œผ๋กœ ์ „ํ™˜ํ•˜๋ ค๋Š” ํšŒ์‚ฌ์˜ ์˜๋„์ž…๋‹ˆ๋‹ค. ์ƒˆ ์ด๋ฆ„์€ ์ƒˆ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—๋งŒ ์‚ฌ์šฉ๋˜๋ฉฐ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์—์„œ๋Š” "๋งˆ์Šคํ„ฐ" ๋ถ„๊ธฐ๊ฐ€ ํ•ด๋‹น ์ด๋ฆ„์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐœ๋ณ„ ๊ฐœ๋ฐœ์ž์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์˜ ์ด๋ฆ„์„ ์ž๋™์œผ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์„ ์ค€๋น„ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋…ผ์˜๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

'๋งˆ์Šคํ„ฐ'๋ผ๋Š” ์šฉ์–ด์—์„œ ๋ฒ—์–ด๋‚˜์•ผ ํ•œ๋‹ค๋Š” ๋…ผ์˜
๋ฌถ์ด์ง€ ์•Š์€ Git ๊ฐœ๋ฐœ์ž ๋ฉ”์ผ๋ง ๋ฆฌ์ŠคํŠธ์—๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ์†Œ์ˆ˜์˜ ํ™œ๋™๊ฐ€๋งŒ์ด ์ด ์•„์ด๋””์–ด๋ฅผ ์ ๊ทน์ ์œผ๋กœ ์ง€์ง€ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๋Œ€๋ถ€๋ถ„์˜ ๊ฐœ๋ฐœ์ž๋Š” ์ด์— ๋ฐ˜๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ Git์—์„œ๋Š” ๋งˆ์Šคํ„ฐ๋ผ๋Š” ๋‹จ์–ด๊ฐ€ "์Šฌ๋ ˆ์ด๋ธŒ"๋ผ๋Š” ๋‹จ์–ด์™€ ์Œ์œผ๋กœ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ณ  ๋ณ„๋„๋กœ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ •์น˜์  ์˜ฌ๋ฐ”๋ฆ„์˜ ์ง„์ •ํ•œ ์Šน๋ฆฌ๋Š” ์ฐธ๊ฐ€์ž๋“ค์ด "ํ‘๋งˆ๋ฒ•"์ด๋ผ๋Š” ํ‘œํ˜„์„ ์šฉ๋‚ฉํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•œ OpenSSL ํ”„๋กœ์ ํŠธ์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. OpenSSL ๊ฐœ๋ฐœ์ž ๊ณ ๋ ค ์ค‘์ด๋‹ค ํฌํ•จ ๋ฐ˜์ , "Black Magic"์„ "magic"์œผ๋กœ, "blacklist"๋ฅผ "block list"๋กœ, "white space"๋ฅผ "whitespace"๋กœ, "master"๋ฅผ "parent" ๋˜๋Š” "main"์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

์ง€๋‚œ๋ฒˆ์— ์–ธ๊ธ‰ํ•œ ์ด๋‹ˆ์…”ํ‹ฐ๋ธŒ ์™ธ์—๋„ OpenZFS ะธ Go, ๊ธฐํƒ€ ์ตœ๊ทผ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํฌ๋กฌ์—์„œ ํ—ˆ์šฉ ๋ณ€๊ฒฝ, ํŒŒ์ผ ์ด๋ฆ„ ๋ฐ ์ฝ”๋“œ์—์„œ "๋ธ”๋ž™๋ฆฌ์ŠคํŠธ"์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ "์ฐจ๋‹จ ๋ชฉ๋ก"์œผ๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค("๋ธ”๋ž™๋ฆฌ์ŠคํŠธ" ๋ฐ "ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ"์— ๋Œ€ํ•œ ์–ธ๊ธ‰์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ๋จ). ๊ต์ฒด๋˜์—ˆ๋‹ค 2019๋…„ ์ดˆ).
  • ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์šฐ๋ฆฌ๋Š” ์‹œ์ž‘ ๊ต์ฒดํ•˜๋‹ค "๋ธ”๋ž™๋ฆฌ์ŠคํŠธ/ํ—ˆ์šฉ ๋ชฉ๋ก"์„ "์ฐจ๋‹จ ๋ชฉ๋ก/ํ—ˆ์šฉ ๋ชฉ๋ก"์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
  • Node.js ํ”„๋กœ์ ํŠธ ์ผํ•˜๊ณ ์žˆ๋‹ค ์ฐจ๋‹จ ๋ชฉ๋ก/ํ—ˆ์šฉ ๋ชฉ๋ก์„ ์ฐจ๋‹จ ๋ชฉ๋ก/ํ—ˆ์šฉ ๋ชฉ๋ก์œผ๋กœ ๋ฐ”๊พธ๋ ค๊ณ  ํ•˜์ง€๋งŒ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์•„์ง ์Šน์ธ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœ์ ํŠธ ์ปฌ ๊ต์ฒด "ํ—ˆ์šฉ ๋ชฉ๋ก"์„ "๊ฑด๋„ˆ๋›ฐ๊ธฐ ๋ชฉ๋ก"์œผ๋กœ, "์„ ํƒ" ๋˜๋Š” "๊ฑด๋„ˆ๋›ฐ๊ธฐ"๋กœ, "๋ธ”๋ž™๋ฆฌ์ŠคํŠธ"๋ฅผ "์ฐจ๋‹จ ๋ชฉ๋ก"์œผ๋กœ ์–ธ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.
  • ์•ค์„œ๋ธ” ๊ฐœ๋ฐœ์ž ๊ณ ๋ คํ•˜๊ณ  ์žˆ๋‹ค "master" ๋ธŒ๋žœ์น˜๋ฅผ "devel"๋กœ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค.
  • PHPUnit ์ฝ”๋“œ์—์„œ ๋Œ€์ฒด ๋œ PHPUnit/Util/Blacklist ํŒŒ์ผ์„ PHPUnit/Util/ExcludeList๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ•˜์—ฌ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ๋ฅผ ExcludeList๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

์ง€๋‚œ ๋ช‡ ๋…„ ๋™์•ˆ ๋งˆ์Šคํ„ฐ/์Šฌ๋ ˆ์ด๋ธŒ ์‚ฌ์šฉ์„ ํฌ๊ธฐํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ค‘์—์„œ ์šฐ๋ฆฌ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ฃผ๋ชฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Python, ๋“œ๋ฃจํŒ”, ์žฅ๊ณ , CouchDB, ์†Œ๊ธˆ, ๋ฏธ๋””์–ด ์œ„ํ‚ค, PostgreSQL ะธ Redis. BIND DNS ์„œ๋ฒ„๋Š” "๋งˆ์Šคํ„ฐ/์Šฌ๋ ˆ์ด๋ธŒ"๋ผ๋Š” ์ด๋ฆ„์˜ ์„ค์ •์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์œ ์ง€ํ–ˆ์ง€๋งŒ "๊ธฐ๋ณธ/๋ณด์กฐ"๋ผ๋Š” ๋Œ€์•ˆ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ด๋ฅผ ๋” ์„ ํ˜ธํ•œ๋‹ค๊ณ  ์„ ์–ธํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•œ๋•Œ Linux ์ปค๋„ ๊ฐœ๋ฐœ์ž๋Š” "๋ธ”๋ž™๋ฆฌ์ŠคํŠธ/ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ"์˜ ์ด๋ฆ„์„ ๋ฐ”๊พธ๋ ค๋Š” ์‹œ๋„๋ฅผ ์ •์น˜์ธ๊ณผ ํฌํ“ฐ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ฃผ์ž…ํ•œ ๋„Œ์„ผ์Šค์™€ ์–ด๋ฆฌ์„์€ ์ง“์ด๋ผ๊ณ  ๋ถˆ๋ €์Šต๋‹ˆ๋‹ค. ๊ฑฐ์ ˆ ํ•œ "์ฐจ๋‹จ ๋ชฉ๋ก"์ด๋ผ๋Š” ์šฉ์–ด๊ฐ€ ์˜๋ฏธ ์™œ๊ณก์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ "์ฐจ๋‹จ ๊ฐœ์ฒด ๋ชฉ๋ก"์ด๋ผ๋Š” ์ธ์‹์„ ๋ฐฐ์ œํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์„ค๋ช…์„ ํฌํ•จํ•˜์—ฌ ๊ต์ฒด๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ๊ณผ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” IETF(Internet Engineering Task Force) ์œ„์›ํšŒ๋Š”, ะฟั€ะตะดะปะพะถะธะป "ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ/๋ธ”๋ž™๋ฆฌ์ŠคํŠธ" ๋ฐ "๋งˆ์Šคํ„ฐ/์Šฌ๋ ˆ์ด๋ธŒ"๋ผ๋Š” ์šฉ์–ด์— ๋Œ€ํ•œ ๋Œ€์•ˆ์œผ๋กœ ์‚ฌ์–‘์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. "๋งˆ์Šคํ„ฐ/์Šฌ๋ ˆ์ด๋ธŒ" ๋Œ€์‹  "๊ธฐ๋ณธ/๋ณด์กฐ", "๋ฆฌ๋”/ํŒ”๋กœ์›Œ"๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
"ํ™œ์„ฑ/๋Œ€๊ธฐ"
"๊ธฐ๋ณธ/๋ณต์ œ๋ณธ",
"์ž‘๊ฐ€/๋…์ž",
"์ฝ”๋””๋„ค์ดํ„ฐ/์ž‘์—…์ž" ๋˜๋Š”
"๋ถ€๋ชจ/๋„์šฐ๋ฏธ", "๋ธ”๋ž™๋ฆฌ์ŠคํŠธ/ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ" ๋Œ€์‹  "์ฐจ๋‹จ ๋ชฉ๋ก/ํ—ˆ์šฉ ๋ชฉ๋ก" ๋˜๋Š” "์ฐจ๋‹จ/ํ—ˆ์šฉ".

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€