SourceHut ํ˜‘์—… ๊ฐœ๋ฐœ ํ”Œ๋žซํผ์— ํ”„๋กœ์ ํŠธ ํ—ˆ๋ธŒ๊ฐ€ ๋“ฑ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค.

Drew DeVault, ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ ์ž‘์„ฑ์ž ๋™์š” ๋ฐ ๋ฉ”์ผ ํด๋ผ์ด์–ธํŠธ AERC, ะพะฑัŠัะฒะธะป ์ž์‹ ์ด ๊ฐœ๋ฐœํ•˜๋Š” ๊ณต๋™ ๊ฐœ๋ฐœ ํ”Œ๋žซํผ์— ํ”„๋กœ์ ํŠธ ํ—ˆ๋ธŒ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์†Œ์Šคํ—›. ์ด์ œ ๊ฐœ๋ฐœ์ž๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๋‹จ๊ฒฐํ•˜๋‹ค ์—ฌ๋Ÿฌ ์„œ๋น„์Šค๋ฅผ ํ™•์ธํ•˜๊ณ  ๋ช…๋ถ€ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Sourcehut ํ”Œ๋žซํผ์€ JavaScript ์—†์ด ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ, ๊ณ ์„ฑ๋Šฅ ๋ฐ Unix ์Šคํƒ€์ผ์˜ ๋ฏธ๋‹ˆ ์„œ๋น„์Šค ํ˜•ํƒœ๋กœ ์ž‘์—…์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ์œ ๋ช…ํ•ฉ๋‹ˆ๋‹ค. Sourcehut์˜ ํ”„๋กœ์ ํŠธ ๊ธฐ๋Šฅ์€ ๋ณ„๋„๋กœ ๊ฒฐํ•ฉํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋ณ„ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ €์žฅ์†Œ๋ฅผ ํ‹ฐ์ผ“๊ณผ ๋ฐ˜๋“œ์‹œ โ€‹โ€‹์—ฐ๊ฒฐํ•  ํ•„์š” ์—†์ด ํ‹ฐ์ผ“์ด๋‚˜ ์ฝ”๋“œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค๋ฅผ ์ž์œ ๋กญ๊ฒŒ ๊ฒฐํ•ฉํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ์ธํ•ด ์–ด๋–ค ๋ฆฌ์†Œ์Šค๊ฐ€ ํ”„๋กœ์ ํŠธ์— ์†ํ•˜๋Š”์ง€ ๊ฒฐ์ •ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ํ—ˆ๋ธŒ๋Š” ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ๋ชจ๋“  ํ”„๋กœ์ ํŠธ ๊ด€๋ จ ์ •๋ณด๋ฅผ ํ•œ๊ณณ์— ๋ชจ์œผ๋Š” ๊ฒƒ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด์ œ ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ ํŽ˜์ด์ง€์— ์ผ๋ฐ˜ ์„ค๋ช…์„ ๋ฐฐ์น˜ํ•˜๊ณ  ํ”„๋กœ์ ํŠธ ์ €์žฅ์†Œ, ๋ฌธ์ œ ์ถ”์  ์„น์…˜, ๋ฌธ์„œ, ์ง€์› ์ฑ„๋„ ๋ฐ ๋ฉ”์ผ๋ง ๋ชฉ๋ก์„ ๋‚˜์—ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์™ธ๋ถ€ ํ”Œ๋žซํผ๊ณผ์˜ ํ†ตํ•ฉ์„ ์œ„ํ•ด ์›น ํ•ธ๋“ค๋Ÿฌ(์›นํ›„ํฌ)๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ API์™€ ์‹œ์Šคํ…œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Sourcehut์˜ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์—๋Š” ์œ„ํ‚ค ์ง€์›, ์ง€์†์ ์ธ ํ†ตํ•ฉ ์‹œ์Šคํ…œ, ์ด๋ฉ”์ผ ๊ธฐ๋ฐ˜ ํ† ๋ก , ๋ฉ”์ผ๋ง ์•„์นด์ด๋ธŒ ํŠธ๋ฆฌ ๋ณด๊ธฐ, ์›น์„ ํ†ตํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๊ฒ€ํ† , ์ฝ”๋“œ์— ์ฃผ์„ ์ถ”๊ฐ€(๋งํฌ ๋ฐ ๋ฌธ์„œ ์ฒจ๋ถ€)๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. Git ์™ธ์—๋„ Mercurial๋„ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” Python๊ณผ Go๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, ๋ฐฐํฌ์ž GPLv3์— ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋กœ์ปฌ ๊ณ„์ •์ด ์—†๋Š” ์‚ฌ์šฉ์ž(OAuth๋ฅผ ํ†ตํ•œ ์ธ์ฆ ๋˜๋Š” ์ด๋ฉ”์ผ ์ฐธ์—ฌ)๋ฅผ ํฌํ•จํ•˜์—ฌ ๊ฐœ๋ฐœ ์ฐธ์—ฌ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐํ•œ ์•ก์„ธ์Šค ์ œ์–ด ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ๊ณต๊ฐœ, ๋น„๊ณต๊ฐœ ๋ฐ ์ˆจ๊ฒจ์ง„ ์ €์žฅ์†Œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ทจ์•ฝ์  ์ˆ˜์ • ์‚ฌํ•ญ์„ ์•Œ๋ฆฌ๊ณ  ์กฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋น„๊ณต๊ฐœ ๋ฌธ์ œ ๋ณด๊ณ  ์‹œ์Šคํ…œ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์„œ๋น„์Šค์—์„œ ๋ณด๋‚ธ ์ด๋ฉ”์ผ์€ PGP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”๋˜๊ณ  ํ™•์ธ๋ฉ๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ์—๋Š” ์ผํšŒ์šฉ TOTP ํ‚ค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ XNUMX๋‹จ๊ณ„ ์ธ์ฆ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ๊ฑด ๋ถ„์„์„ ์œ„ํ•ด ์ƒ์„ธํ•œ ๊ฐ์‚ฌ ๋กœ๊ทธ๊ฐ€ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

๋‚ด์žฅ๋œ ์ง€์†์  ํ†ตํ•ฉ ์ธํ”„๋ผ๋ฅผ ํ†ตํ•ด
์ •๋ฆฌํ•˜๋‹ค ๋‹ค์–‘ํ•œ Linux ๋ฐ BSD ์‹œ์Šคํ…œ์˜ ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ ์ž๋™ํ™”๋œ ๋นŒ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ €์žฅ์†Œ์— ๋ฐฐ์น˜ํ•˜์ง€ ์•Š๊ณ  ์–ด์…ˆ๋ธ”๋ฆฌ ์ž‘์—…์„ CI๋กœ ์ง์ ‘ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋นŒ๋“œ ๊ฒฐ๊ณผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์— ๋ฐ˜์˜๋˜๊ฑฐ๋‚˜ ์ด๋ฉ”์ผ๋กœ ์ „์†ก๋˜๊ฑฐ๋‚˜ ์›นํ›…์„ ํ†ตํ•ด ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ์žฅ์•  ๋ถ„์„์„ ์œ„ํ•ด SSH๋ฅผ ํ†ตํ•ด ์กฐ๋ฆฝ ํ™˜๊ฒฝ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ Sourcehut์€ ์ž‘์—… ์ค‘์ž…๋‹ˆ๋‹ค. ์‹ค์งˆ์ ์œผ๋กœ ์˜ˆ๋ฅผ ๋“ค์–ด ์š”์•ฝ ์ •๋ณด, ์ปค๋ฐ‹ ๋ชฉ๋ก, ๋ณ€๊ฒฝ ๋กœ๊ทธ, ์ฝ”๋“œ ๋ณด๊ธฐ, ๋ฌธ์ œ ๋ฐ ํŒŒ์ผ ํŠธ๋ฆฌ๊ฐ€ ํฌํ•จ๋œ ํŽ˜์ด์ง€๋Š” ๊ฒฝ์Ÿ ์„œ๋น„์Šค๋ณด๋‹ค ๋น ๋ฆ…๋‹ˆ๋‹ค. GitHub ๋ฐ GitLab๋ณด๋‹ค 3~4๋ฐฐ ๋” ๋น ๋ฅด๊ฒŒ ์—ด๋ฆฌ๊ณ  Bitbucket๋ณด๋‹ค 8~10๋ฐฐ ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค. Sourcehut์€ ์•„์ง ์•ŒํŒŒ ๊ฐœ๋ฐœ ๋‹จ๊ณ„๋ฅผ ๋– ๋‚˜์ง€ ์•Š์•˜์œผ๋ฉฐ ๊ณ„ํš๋œ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์•„์ง ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์•„์ง ๋ณ‘ํ•ฉ ์š”์ฒญ์„ ์œ„ํ•œ ์›น ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค(๋ณ‘ํ•ฉ ์š”์ฒญ์€ ํ‹ฐ์ผ“์„ ์ƒ์„ฑํ•˜๊ณ  ๋งํฌ๋ฅผ ์ฒจ๋ถ€ํ•˜์—ฌ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค). Git์˜ ๋ถ„๊ธฐ ์ง€์ ). ๋‹จ์ ์€ GitHub ๋ฐ GitLab ์‚ฌ์šฉ์ž์—๊ฒŒ ์ต์ˆ™ํ•˜์ง€ ์•Š์ง€๋งŒ ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๊ฐ„๋‹จํ•˜๊ณ  ์ฆ‰์‹œ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋…ํŠนํ•œ ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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