์•ˆ๋“œ๋กœ์ด๋“œ์šฉ ์˜คํ”ˆ ์†Œ์Šค ํ…”๋ ˆ๊ทธ๋žจ ํด๋ผ์ด์–ธํŠธ์ธ ๋ชจ๋…ธ๊ทธ๋žจ(Monogram)์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์—ด์ •์ ์ธ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋ชจ์—ฌ ์•ˆ๋“œ๋กœ์ด๋“œ ๋ชจ๋ฐ”์ผ ํ”Œ๋žซํผ์šฉ ์˜คํ”ˆ์†Œ์Šค ํ…”๋ ˆ๊ทธ๋žจ ๋ฉ”์‹ ์ € ํด๋ผ์ด์–ธํŠธ์ธ ๋ชจ๋…ธ๊ทธ๋žจ(Monogram) ํ”„๋กœ์ ํŠธ๋ฅผ ๊ณต๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ์ฝ”ํ‹€๋ฆฐ(Kotlin) ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, ์ ฏํŒฉ ์ปดํฌ์ฆˆ(Jetpack Compose) ์„ ์–ธ์  UI ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” GPLv3 ๋ผ์ด์„ ์Šค ํ•˜์— ์˜คํ”ˆ์†Œ์Šค๋กœ ๊ณต๊ฐœ๋˜์–ด ์žˆ์œผ๋ฉฐ, ํ”„๋กœ์ ํŠธ ์ „์šฉ ํ…”๋ ˆ๊ทธ๋žจ ์ฑ„๋„๋„ ์šด์˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋…๋ฆฝ ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ์˜ ๋˜ ๋‹ค๋ฅธ ์ด‰๋งค์ œ๋Š” ๊ณต์‹ ์•ˆ๋“œ๋กœ์ด๋“œ ๋ฒ„์ „์˜ ์ตœ๊ทผ ๊ฐœํŽธ์— ๋Œ€ํ•œ ๊ด‘๋ฒ”์œ„ํ•œ ๋น„ํŒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋“ค์ด ์•ˆ๋“œ๋กœ์ด๋“œ ๋””์ž์ธ ๊ฐ€์ด๋“œ๋ผ์ธ์„ ๋ฌด์‹œํ•˜๊ณ  iOS์—์„œ ํ”ํžˆ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ์  ์š”์†Œ(์˜ˆ: ๋ฐฐ๊ฒฝ ํ๋ฆผ ํšจ๊ณผ ๋ฐ "๋ฆฌํ€ด๋“œ ๊ธ€๋ž˜์Šค" ์Šคํƒ€์ผ์˜ ๋ฐ˜ํˆฌ๋ช… ํšจ๊ณผ)๋ฅผ ๊ณต๊ฒฉ์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

ํ…”๋ ˆ๊ทธ๋žจ์—์„œ ๊ณต์‹์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” TDLib(Telegram Database Library)๋Š” C++๋กœ ๊ตฌํ˜„๋œ ํ•ต์‹ฌ ์ฝ”๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ, ์ƒˆ๋กœ์šด ํด๋ผ์ด์–ธํŠธ์—์„œ ๋„คํŠธ์›Œํฌ ํ†ต์‹ , MTProto ํ”„๋กœํ† ์ฝœ ์ง€์› ๋ฐ ์ข…๋‹จ ๊ฐ„ ์•”ํ˜ธํ™”๋ฅผ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ๊ฐœ๋ฐœ ์ž์ฒด๋Š” ์ตœ์‹  ๋‚ด์žฅ ํ”Œ๋žซํผ ๋„๊ตฌ ํ™œ์šฉ, ๊ณ ์„ฑ๋Šฅ ๊ตฌํ˜„ ๋ฐ ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰ ์ตœ์†Œํ™”์— ์ค‘์ ์„ ๋‘๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํ”„๋กœ์ ํŠธ์˜ ์ฃผ์š” ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

์ถœ์ฒ˜ : opennet.ru

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