Zulip 4.0 ๋ฉ”์‹œ์ง• ํ”Œ๋žซํผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

์ง์›๊ณผ ๊ฐœ๋ฐœํŒ€ ๊ฐ„์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•œ ๊ธฐ์—… ๋ฉ”์‹ ์ € ๋ฐฐํฌ์šฉ ์„œ๋ฒ„ ํ”Œ๋žซํผ์ธ Zulip 4.0์˜ ์ถœ์‹œ๊ฐ€ ๋ฐœํ‘œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ์›๋ž˜ Zulip์ด ๊ฐœ๋ฐœํ–ˆ์œผ๋ฉฐ Apache 2.0 ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ Dropbox๊ฐ€ ์ธ์ˆ˜ํ•œ ํ›„ ๊ณต๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์ธก ์ฝ”๋“œ๋Š” Django ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Python์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์†Œํ”„ํŠธ์›จ์–ด๋Š” Linux, Windows, macOS, Android ๋ฐ iOS์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋‚ด์žฅ ์›น ์ธํ„ฐํŽ˜์ด์Šค๋„ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์ด ์‹œ์Šคํ…œ์€ ๋‘ ์‚ฌ๋žŒ ๊ฐ„์˜ ์ง์ ‘ ๋ฉ”์‹œ์ง•๊ณผ ๊ทธ๋ฃน ํ† ๋ก ์„ ๋ชจ๋‘ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Zulip์€ Slack ์„œ๋น„์Šค์™€ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋Œ€๊ทœ๋ชจ ์ง์› ๊ทธ๋ฃน์˜ ์—…๋ฌด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์˜์‚ฌ์†Œํ†ต ๋ฐ ํ† ๋ก ์— ์‚ฌ์šฉ๋˜๋Š” Twitter์˜ ๊ธฐ์—… ๋‚ด ์•„๋‚ ๋กœ๊ทธ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. Slack ๋ฃธ ์นœํ™”์„ฑ๊ณผ Twitter์˜ ํ†ตํ•ฉ ๊ณต๊ฐœ ๊ณต๊ฐ„ ๊ฐ„์˜ ์ตœ์ƒ์˜ ์ ˆ์ถฉ์•ˆ์ธ ์Šค๋ ˆ๋“œ ๋ฉ”์‹œ์ง€ ํ‘œ์‹œ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒํƒœ๋ฅผ ์ถ”์ ํ•˜๊ณ  ๋™์‹œ์— ์—ฌ๋Ÿฌ ํ† ๋ก ์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋‹จ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ํ† ๋ก ์„ ๋™์‹œ์— ์Šค๋ ˆ๋“œํ•˜์—ฌ ํ‘œ์‹œํ•˜๋ฉด ๋ชจ๋“  ๊ทธ๋ฃน์„ ํ•œ ๊ณณ์—์„œ ๋‹ค๋ฃจ๋ฉด์„œ ๊ทธ๋ฃน ๊ฐ„์˜ ๋…ผ๋ฆฌ์  ๊ตฌ๋ถ„์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Zulip์˜ ๊ธฐ๋Šฅ์—๋Š” ์˜คํ”„๋ผ์ธ ๋ชจ๋“œ์—์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฉ”์‹œ์ง€ ์ „์†ก ์ง€์›(๋ฉ”์‹œ์ง€๋Š” ์˜จ๋ผ์ธ์— ํ‘œ์‹œ๋œ ํ›„ ์ „๋‹ฌ๋จ), ์„œ๋ฒ„์— ๋Œ€ํ•œ ์ „์ฒด ํ† ๋ก  ๊ธฐ๋ก ์ €์žฅ ๋ฐ ์•„์นด์ด๋ธŒ ๊ฒ€์ƒ‰ ๋„๊ตฌ, ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ ๋ชจ๋“œ, ๋ฉ”์‹œ์ง€๋กœ ์ „์†ก๋œ ์ฝ”๋“œ ๋ธ”๋ก์— ๋Œ€ํ•œ ์ž๋™ ๊ฐ•์กฐ ๊ตฌ๋ฌธ, ๋ชฉ๋ก ๋ฐ ํ…์ŠคํŠธ ํ˜•์‹์„ ๋น ๋ฅด๊ฒŒ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋‚ด์žฅ ๋งˆํฌ์—… ์–ธ์–ด, ๊ทธ๋ฃน ์•Œ๋ฆผ ์ „์†ก ๋„๊ตฌ, ํ์‡„ ๊ทธ๋ฃน ์ƒ์„ฑ ๊ธฐ๋Šฅ, Trac, Nagios, Github, Jenkins, Git๊ณผ์˜ ํ†ตํ•ฉ , Subversion, JIRA, Puppet, RSS, Twitter ๋ฐ ๊ธฐํƒ€ ์„œ๋น„์Šค, ๋ฉ”์‹œ์ง€์— ์‹œ๊ฐ์  ํƒœ๊ทธ๋ฅผ ์ฒจ๋ถ€ํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ํ˜์‹ :

  • ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ํ™œ๋™์„ ์Œ์†Œ๊ฑฐํ•˜์—ฌ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณผ ์ˆ˜ ์—†๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
  • ์•ก์„ธ์Šค ๊ถŒํ•œ ์‹œ์Šคํ…œ์— ์ƒˆ๋กœ์šด ์—ญํ• ์ธ "์กฐ์ •์ž"๊ฐ€ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋Š” ์„ค์ • ๋ณ€๊ฒฝ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜์ง€ ์•Š๊ณ ๋„ ๋ฐœํ–‰๋ฌผ(์ŠคํŠธ๋ฆผ) ๋ฐ ํ† ๋ก  ์„น์…˜์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ถ”๊ฐ€ ๊ถŒํ•œ์„ ๋ถ€์—ฌ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฃผ์ œ๋ฅผ ๋น„๊ณต๊ฐœ ์„น์…˜์œผ๋กœ ์ด๋™ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜์—ฌ ์„น์…˜ ๊ฐ„์— ํ† ๋ก ์„ ์ด๋™ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • GIPHY ์„œ๋น„์Šค์— ๋Œ€ํ•œ ํ†ตํ•ฉ ์ง€์›์„ ํ†ตํ•ด ๋ฐˆ ๋ฐ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ด๋ฏธ์ง€๋ฅผ ์„ ํƒํ•˜๊ณ  ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ ๋ธ”๋ก์„ ํด๋ฆฝ๋ณด๋“œ์— ๋น ๋ฅด๊ฒŒ ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜ ์™ธ๋ถ€ ํ•ธ๋“ค๋Ÿฌ์—์„œ ์„ ํƒํ•œ ๋ธ”๋ก์„ ํŽธ์ง‘ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์‘๋‹ต ์ž‘์„ฑ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ๋ณ„๋„์˜ ์ปดํŒฉํŠธํ•œ "๋‹ต์žฅ" ๋ฒ„ํŠผ ๋Œ€์‹ , ์ฆ‰์‹œ ์ž…๋ ฅ์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๊ณ  ์ˆ˜์‹ ์ž์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•˜๋ฉฐ ๋‹ค๋ฅธ ์ฑ„ํŒ… ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋” ์นœ์ˆ™ํ•œ ๋ณ„๋„์˜ ๋ฒ”์šฉ ์ž…๋ ฅ ์˜์—ญ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ž…๋ ฅ ์ž๋™ ์™„์„ฑ ์ค‘์— ํ‘œ์‹œ๋˜๋Š” ๋„๊ตฌ ์„ค๋ช…์€ ์‚ฌ์šฉ์ž์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ์ ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—ด๋ฉด ์ตœ๊ทผ ํ† ๋ก  ๋ชฉ๋ก(์ตœ๊ทผ ์ฃผ์ œ)์ด ํ‘œ์‹œ๋˜๋ฉฐ ํ•„ํ„ฐ๋ฅผ ํ™œ์„ฑํ™”ํ•˜์—ฌ ํ˜„์žฌ ์‚ฌ์šฉ์ž์˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํฌํ•จ๋œ ํ† ๋ก ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ œ ๋ณ„ํ‘œ ํ‘œ์‹œ๋œ ์ฆ๊ฒจ์ฐพ๊ธฐ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์™ผ์ชฝ ์ฐฝ์— ํ‘œ์‹œ๋˜๋ฏ€๋กœ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ์•„๊ฐ€์•ผ ํ•  ๊ฒŒ์‹œ๋ฌผ๊ณผ ํ† ๋ก ์„ ์ƒ๊ธฐ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์†Œ๋ฆฌ ์•Œ๋ฆผ์˜ ์ˆ˜๊ฐ€ ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Zulip ์„œ๋ฒ„์˜ ๋ฒ„์ „ ๋ฒˆํ˜ธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์ •๋ณด ์œ„์ ฏ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์›น ์ธํ„ฐํŽ˜์ด์Šค ๋ฐ ๋ฐ์Šคํฌํ†ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ 18๊ฐœ์›” ์ด์ƒ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์€ ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๋ฉด ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • ์„œ๋ฒ„์˜ ํ™•์žฅ์„ฑ๊ณผ ์„ฑ๋Šฅ์„ ๋†’์ด๊ธฐ ์œ„ํ•œ ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตญ์ œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ด์ „์— ์‚ฌ์šฉ๋œ i18next ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋Œ€์‹  FormatJS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ์„œ๋น„์Šค์— ๋Œ€ํ•œ SSRF ๊ณต๊ฒฉ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” Smokescreen ๊ฐœ๋ฐฉํ˜• ํ”„๋ก์‹œ์™€์˜ ํ†ตํ•ฉ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค(์™ธ๋ถ€ ๋งํฌ๋กœ์˜ ๋ชจ๋“  ์ „ํ™˜์€ Smokescreen์„ ํ†ตํ•ด ๋ฆฌ๋””๋ ‰์…˜๋  ์ˆ˜ ์žˆ์Œ).
  • Freshping, JotForm ๋ฐ Uptime Robot ์„œ๋น„์Šค์™€์˜ ํ†ตํ•ฉ์„ ์œ„ํ•œ ๋ชจ๋“ˆ์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ Bitbucket, Clubhouse, GitHub, GitLab, NewRelic ๋ฐ Zabbix์™€์˜ ํ†ตํ•ฉ์ด ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Zulip์— ๋ฉ”์‹œ์ง€๋ฅผ ๊ฒŒ์‹œํ•˜๊ธฐ ์œ„ํ•œ ์ƒˆ๋กœ์šด GitHub ์ž‘์—…์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์‹ ๊ทœ ์„ค์น˜์—์„œ๋Š” PostgreSQL 13์ด ๊ธฐ๋ณธ DBMS๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, Django 3.2.x ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Debian 11์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ™”๋ฉด์˜ ๋ธ”๋ก ๋ ˆ์ด์•„์›ƒ ๋ฐ ํ‚ค๋ณด๋“œ ๋‹จ์ถ•ํ‚ค ์ˆ˜์ค€์„ ํฌํ•จํ•˜์—ฌ ๊ธฐ๋Šฅ์ด ๊ธฐ๋ณธ ์›น ํด๋ผ์ด์–ธํŠธ์— ๊ฐ€๊นŒ์šด ํ…์ŠคํŠธ ํ„ฐ๋ฏธ๋„์—์„œ Zulip์œผ๋กœ ์ž‘์—…ํ•˜๊ธฐ ์œ„ํ•ด ํด๋ผ์ด์–ธํŠธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    Zulip 4.0 ๋ฉ”์‹œ์ง• ํ”Œ๋žซํผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

์ถœ์ฒ˜ : opennet.ru

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