Yandex๋Š” ๊ณ ๋ถ€ํ•˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒ์„ฑ์„ ์œ„ํ•œ ์‚ฌ์šฉ์ž ํ”„๋ ˆ์ž„์›Œํฌ์šฉ ์ฝ”๋“œ๋ฅผ ๊ณต๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค.

Yandex๋Š” ๋น„๋™๊ธฐ ๋ชจ๋“œ์—์„œ ์ž‘๋™ํ•˜๋Š” C++ ๊ณ ๋ถ€ํ•˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” Userver ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ณต๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌ๋Š” Yandex ์ˆ˜์ค€ ๋กœ๋“œ์—์„œ ํ…Œ์ŠคํŠธ๋˜์—ˆ์œผ๋ฉฐ Yandex Go, Lavka, Delivery, Market ๋ฐ fintech ํ”„๋กœ์ ํŠธ์™€ ๊ฐ™์€ ์„œ๋น„์Šค์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Userver์˜ ์ฝ”๋“œ๋Š” C++๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ Apache 2.0 ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ์˜คํ”ˆ ์†Œ์Šค๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

Userver๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐ ๊ฐ€์žฅ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” Yandex Taxi์šฉ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ, ํŒ€์˜ ๋„์›€์œผ๋กœ ๋ชจ๋†€๋ฆฌ์‹ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ณ„๋„์˜ ๋…๋ฆฝ ๊ตฌ์„ฑ ์š”์†Œ(๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค)๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์ด๋ฅผ ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์•„ํ‚คํ…์ฒ˜๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ์ž์œจ์ ์ด๋ฏ€๋กœ ๋น„์Šทํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํƒ์‹œ ์ฃผ๋ฌธ์„ ์œ„ํ•œ ์šด์ „์ž๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ์œ ์‚ฌํ•œ ์ž‘์—…(์˜ˆ: Yandex Delivery ์ฃผ๋ฌธ์„ ์ดํ–‰ํ•  ํƒ๋ฐฐ์‚ฌ ์ฐพ๊ธฐ)์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šด์ „์ž๋‚˜ ํƒ๋ฐฐ๊ธฐ์‚ฌ์˜ ๋„์ฐฉ ์‹œ๊ฐ„ ๊ณ„์‚ฐ ๋ฐ ๊ธฐํƒ€ ์—ฌ๋Ÿฌ ์ž‘์—…์—์„œ๋„ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์ฒ˜์Œ์—๋Š” ์‹ ๋ขฐ์„ฑ๊ณผ ํŽธ์˜์„ฑ์— ์ค‘์ ์„ ๋‘๊ณ  ๋งŒ๋“ค์–ด์กŒ์œผ๋ฉฐ ๊ทธ ๋‚ด๋ถ€์—๋Š” ๊ฐœ๋ฐœ, ์ง„๋‹จ, ๋ชจ๋‹ˆํ„ฐ๋ง, ๋””๋ฒ„๊น…, ์‹คํ—˜์— ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์šฉ์ž๋Š” ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์•ˆํ•˜๊ณ , ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์ž‘์—…ํ•˜๊ณ , ์ฆ‰์‹œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Ubuntu, Debian, Fedora, Arch, Gentoo, macOS ์‹œ์Šคํ…œ, x86, x86_64, AArch64, Arm ์•„ํ‚คํ…์ฒ˜, GCC 8+ ๋ฐ Clang 9+ ์ปดํŒŒ์ผ๋Ÿฌ, C++17, C++20, C++23 ํ‘œ์ค€์— ๋Œ€ํ•œ ์ง€์›์„ ์„ ์–ธํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ์—๋Š” DBMS(MongoDB, PostgreSQL, Redis, ClickHouse, MySQL)์™€์˜ ๋น„๋™๊ธฐ ์ž‘์—…์„ ์œ„ํ•œ ๋“œ๋ผ์ด๋ฒ„, ๋‹ค์–‘ํ•œ ํ”„๋กœํ† ์ฝœ(HTTP, HTTPS, GRPC, TCP, UDP, TLS)์— ๋Œ€ํ•œ ๋น„๋™๊ธฐ ์ž‘์—… ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„, ๋™๊ธฐํ™” ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ํ•˜์œ„ ์ˆ˜์ค€ ๊ธฐ๋ณธ ์š”์†Œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์บ์‹œ, ์ž‘์—…, ๋ถ„์‚ฐ ์ž ๊ธˆ, ์ถ”์ , ๋ฉ”ํŠธ๋ฆญ, ํ†ต๊ณ„ ๋ฐ JSON/YAML/BSON ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ ์ž‘์—…์„ ์œ„ํ•œ ์ƒ์œ„ ์ˆ˜์ค€ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ๋ฌผ๋ก  ์šด์˜ ์ฒด์ œ์˜ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๊ตฌ์„ฑ์„ ์ค‘์ง€ํ•˜์ง€ ์•Š๊ณ  ์ฆ‰์‹œ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ด์ „์— Yandex๋Š” ๋‹ค๋ฅธ ํ•ต์‹ฌ ๊ธฐ์ˆ ์„ ๊ฐœ๋ฐฉํ˜• ํ”„๋กœ์ ํŠธ ํ˜•ํƒœ๋กœ ์ด์ „ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ดˆ๋‹น ์ˆ˜๋ฐฑ๋งŒ ๊ฑด์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ YDB์™€ Yandex๊ฐ€ ๊ฒ€์ƒ‰ ๋ฐ ๊ธฐํƒ€์—์„œ ์‚ฌ์šฉํ•˜๋Š” CatBoost ๊ธฐ๊ณ„ ํ•™์Šต ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค.

์ถœ์ฒ˜ : opennet.ru

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