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