Forgejo 12.0 ํ˜‘์—… ๊ฐœ๋ฐœ ํ”Œ๋žซํผ ์ถœ์‹œ

Forgejo 12.0 ํ˜‘์—… ๊ฐœ๋ฐœ ํ”Œ๋žซํผ์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋ฒ„์— Git ์ €์žฅ์†Œ๋ฅผ ํ™œ์šฉํ•œ ํ˜‘์—… ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, GitHub, Bitbucket, Gitlab๊ณผ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Forgejo๋Š” Gogs ํ”Œ๋žซํผ์—์„œ ๋ถ„๋ฆฌ๋œ Gitea ํ”„๋กœ์ ํŠธ์˜ ํฌํฌ(fork) ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. Forgejo๋Š” Gitea ์ƒ์šฉํ™” ์‹œ๋„์™€ ์ƒ์—… ๊ธฐ์—…์œผ๋กœ์˜ ์šด์˜๊ถŒ ์ด์–‘ ์ดํ›„ 2022๋…„์— ๋ถ„๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Forgejo ํ”„๋กœ์ ํŠธ๋Š” ๋…๋ฆฝ์ ์ธ ๊ด€๋ฆฌ ๋ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ด€๋ฆฌ ์›์น™์„ ๊ณ ์ˆ˜ํ•ฉ๋‹ˆ๋‹ค. Git ํ˜ธ์ŠคํŒ… ์—…์ฒด์ธ Codeberg.org๋Š” Forgejo๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋Š” Go ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ GPLv3 ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

์ด ํ”Œ๋žซํผ์˜ ์ฃผ์š” ํŠน์ง•์€ ๋‚ฎ์€ ์ž์› ์†Œ๋น„๋Ÿ‰์ž…๋‹ˆ๋‹ค(๋ผ์ฆˆ๋ฒ ๋ฆฌ ํŒŒ์ด ๋ณด๋“œ ๋˜๋Š” ์ €๋ ดํ•œ ๋น„์šฉ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ). VPS์„ค์น˜ ๊ณผ์ •์ด ๊ฐ„๋‹จํ•˜๋ฉฐ, ์ž‘์—… ๊ด€๋ฆฌ, ์ด์Šˆ ์ถ”์ , ํ’€ ๋ฆฌํ€˜์ŠคํŠธ, ์œ„ํ‚ค, ๊ฐœ๋ฐœํŒ€ ํ˜‘์—… ๋„๊ตฌ, ๋ฆด๋ฆฌ์Šค ์ค€๋น„, ํŒจํ‚ค์ง€ ์ž๋™ ์ €์žฅ์†Œ ๋ฐฐ์น˜, ์ ‘๊ทผ ๊ถŒํ•œ ๊ด€๋ฆฌ, ์ง€์†์  ํ†ตํ•ฉ ํ”Œ๋žซํผ๊ณผ์˜ ํ†ตํ•ฉ, ์ฝ”๋“œ ๊ฒ€์ƒ‰, LDAP ๋ฐ OAuth ์ธ์ฆ, SSH ๋ฐ HTTP/HTTPS ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•œ ์ €์žฅ์†Œ ์ ‘๊ทผ, Slack, Discord ๋ฐ ๊ธฐํƒ€ ์„œ๋น„์Šค์™€์˜ ํ†ตํ•ฉ์„ ์œ„ํ•œ ์›นํ›…, Git ํ›… ๋ฐ Git LFS ์ง€์›, ์ €์žฅ์†Œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋ฐ ๋ฏธ๋Ÿฌ๋ง ๋„๊ตฌ ๋“ฑ ํ‘œ์ค€ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ActivityPub ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ณ„ ํ”„๋กœ์ ํŠธ๋ฅผ ์—ฐํ•ฉ ๋„คํŠธ์›Œํฌ๋กœ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ํŠน์ง•์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„ ๊ฐœ๋ฐœ์ž.

์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ :

  • ์‚ฌ์šฉ์ž ํ”„๋กœํ•„ ํŽ˜์ด์ง€๊ฐ€ ์ƒˆ๋กญ๊ฒŒ ๋””์ž์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœํ•„ ๋ฉ”๋‰ด์— ์ถ”๊ฐ€ ์ž‘์—…์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
     Forgejo 12.0 ํ˜‘์—… ๊ฐœ๋ฐœ ํ”Œ๋žซํผ ์ถœ์‹œ
  • ์ปค๋ฐ‹ ์ˆ˜์ค€์—์„œ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ๊ฒ€ํ† ํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(๋ชจ๋“  ์ปค๋ฐ‹์„ ํฌํ•จํ•˜๋Š” ์ „์ฒด ๋ณ€๊ฒฝ ๋กœ๊ทธ ๋Œ€์‹ , ์ด ๋ชจ๋“œ์—์„œ๋Š” ๊ฐœ๋ณ„ ์ปค๋ฐ‹์ด ์ˆœ์ฐจ์ ์œผ๋กœ ๊ฒ€ํ† ๋ฉ๋‹ˆ๋‹ค). ๊ฒ€ํ†  ์ค‘ ์ปค๋ฐ‹์„ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์•ž์œผ๋กœ ๋ฐ ๋’ค๋กœ ๋ฒ„ํŠผ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ์ปค๋ฐ‹์— ๋Œ€ํ•œ ๊ฒ€ํ†  ์ข…๋ฃŒ ๋ฒ„ํŠผ ์‚ฌ์šฉ์ด ํ—ˆ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฒ€ํ†  ํŽ˜์ด์ง€์— ์ปค๋ฐ‹ ์„ค๋ช… ํ…์ŠคํŠธ๊ฐ€ ๊ทธ๋Œ€๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
     Forgejo 12.0 ํ˜‘์—… ๊ฐœ๋ฐœ ํ”Œ๋žซํผ ์ถœ์‹œ
  • ์˜ˆ์•ฝ๋œ ์ž‘์—…์„ ์‹คํ–‰ํ•  ๋•Œ ์‹คํŒจ์— ๋Œ€ํ•œ ์ด๋ฉ”์ผ ์•Œ๋ฆผ์„ ๋ณด๋‚ด๋Š” ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(Forgejo ์ž‘์—…).
  • ๋Œ€์ƒ ๋ธŒ๋žœ์น˜์— ์ƒˆ ์ปค๋ฐ‹์„ ํ‘ธ์‹œํ•  ๋•Œ ์—ด๋ ค ์žˆ๋Š” ํ’€ ๋ฆฌํ€˜์ŠคํŠธ์™€์˜ ์ถฉ๋Œ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์ตœ์ ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ์ž‘์—… ํŠธ๋ฆฌ์— ์ ์šฉ๋˜๋Š” ์ž‘์—…์œผ๋กœ ์ธํ•ด ์—ด๋ ค ์žˆ๋Š” ํ’€ ๋ฆฌํ€˜์ŠคํŠธ ์ˆ˜์— ๋น„๋ก€ํ•˜๋Š” I/O ๋ถ€ํ•˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์ง€๋งŒ, "git merge-tree --write-tree" ๋ช…๋ น์œผ๋กœ ์ „ํ™˜ํ•˜์—ฌ ์ž‘์—… ํŠธ๋ฆฌ์— ์ ‘๊ทผํ•˜์ง€ ์•Š๊ณ ๋„ ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๊ณ , ์ด๋ฅผ ํ†ตํ•ด ๋Œ€๊ทœ๋ชจ ๋ฐฐํฌ ์‹œ ๋ถ€ํ•˜๊ฐ€ ํฌ๊ฒŒ ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ „์— OpenPGP์— ๋ฌถ์—ฌ ์žˆ๋˜ ์ž‘์—…์— SSH๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ํŽธ์ง‘ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•œ ํ›„ ์ปค๋ฐ‹์— ์„œ๋ช…ํ•  ๋•Œ ์ด์ œ GPG ํ‚ค ๋Œ€์‹  SSH ํ‚ค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์„œ๋ช…์€ ssh-agent๋ฅผ ํ†ตํ•ด TPM์—์„œ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค).
  • ๊ธฐ๋ณธ์ ์œผ๋กœ robots.txt ํŒŒ์ผ์€ ์ธ๋ฑ์‹ฑ๋˜์–ด์„œ๋Š” ์•ˆ ๋˜๋Š” ์„น์…˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ด‡์— ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.
  • ํฌํฌ๋ฅผ ๋ฉ”์ธ ํ”„๋กœ์ ํŠธ์™€ ๋™๊ธฐํ™” ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
     Forgejo 12.0 ํ˜‘์—… ๊ฐœ๋ฐœ ํ”Œ๋žซํผ ์ถœ์‹œ
  • glTF ํฌ๋งท์œผ๋กœ 3D ๋ชจ๋ธ์„ ๋ฏธ๋ฆฌ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
     Forgejo 12.0 ํ˜‘์—… ๊ฐœ๋ฐœ ํ”Œ๋žซํผ ์ถœ์‹œ
  • ์ด์ œ ์ฃผ์„ ํŽธ์ง‘๊ธฐ์—์„œ Tab ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Alpine 3.22๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Git 12, GnuPG 2.49.1, SQLite 2.4.7 ๋ฐ OpenSSH 3.49.2์„ ์‚ฌ์šฉํ•˜์—ฌ Forgejo 10.0๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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