Ruby์šฉ ์ •์  ์œ ํ˜• ๊ฒ€์‚ฌ ์‹œ์Šคํ…œ์ธ Sorbet์€ ์˜คํ”ˆ ์†Œ์Šค์ž…๋‹ˆ๋‹ค.

์˜จ๋ผ์ธ ๊ฒฐ์ œ ํ”Œ๋žซํผ ๊ฐœ๋ฐœ์„ ์ „๋ฌธ์œผ๋กœ ํ•˜๋Š” ์ŠคํŠธ๋ผ์ดํ”„์ปดํผ๋‹ˆ(Stripe Company)๋Š” ์—ด๋ฆผ ํ”„๋กœ์ ํŠธ ์†Œ์Šค ์ฝ”๋“œ ์…”๋ฒ—, Ruby ์–ธ์–ด์— ๋Œ€ํ•œ ์ •์  ์œ ํ˜• ๊ฒ€์‚ฌ ์‹œ์Šคํ…œ์ด ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” C++๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, ๋ฐฐํฌ์ž Apache 2.0์— ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ์˜ ์œ ํ˜•์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ๋™์ ์œผ๋กœ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ฐ„๋‹จํ•œ ํ˜•ํƒœ๋กœ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์„, ์ด๋Š” sig ๋ฉ”์„œ๋“œ(์˜ˆ: "sig {params(x: Integer).returns(String)}")๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ์— ์ง€์ •ํ•˜๊ฑฐ๋‚˜ rbi ํ™•์žฅ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ„๋„์˜ ํŒŒ์ผ์— ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•˜๋‹ค. ์˜ˆ๋น„์ ์œผ๋กœ ์ •์  ์ฝ”๋“œ ๋ถ„์„ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค(์ผœ๋‹ค ์ฝ”๋“œ์— "'sorbet-runtime' ํ•„์š”"๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€๋Šฅ์„ฑ ์ œ๊ณต ์ ์ง„์  ๋ฒˆ์—ญ Sorbet์„ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ - ์ฝ”๋“œ๋Š” ์ฃผ์„์ด ๋‹ฌ๋ฆฐ ์ž…๋ ฅ๋œ ๋ธ”๋ก๊ณผ ํ™•์ธ ๋Œ€์ƒ์ด ์•„๋‹Œ ์ž…๋ ฅ๋˜์ง€ ์•Š์€ ์˜์—ญ์„ ๋ชจ๋‘ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋งค์šฐ ๋†’์€ ์„ฑ๋Šฅ๊ณผ ์ˆ˜๋ฐฑ๋งŒ ์ค„์˜ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ ์ฝ”๋“œ ๊ธฐ๋ฐ˜์— ๋งž๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ๋„ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์—๋Š” ์ •์  ์œ ํ˜• ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•œ ์ปค๋„์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์œ ํ˜•์— ๋Œ€ํ•œ ์ฃผ์„์„ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋„๋ฉ”์ธ๋ณ„ ์–ธ์–ด๊ฐ€ ํฌํ•จ๋œ ๋Ÿฐํƒ€์ž„์ธ Sorbet์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ์กด ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹จ๊ณ„๋ณ„๋กœ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ํˆดํ‚ท์ธ Sorbet์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํˆดํ‚ท ์ €์žฅ์†Œ ๋‹ค์–‘ํ•œ Ruby gems ํŒจํ‚ค์ง€์— ๋Œ€ํ•ด ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์ง„ ์œ ํ˜• ์ •์˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฒ˜์Œ์— Sorbet์€ ๋Œ€๋ถ€๋ถ„์˜ ์ง€๋ถˆ ๋ฐ ๋ถ„์„ ์‹œ์Šคํ…œ์ด Ruby ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ Stripe ํšŒ์‚ฌ์˜ ๋‚ด๋ถ€ ํ”„๋กœ์ ํŠธ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ, 30๋…„ ๋ฐ˜์˜ ๊ฐœ๋ฐœ ๋ฐ ๊ตฌํ˜„ ํ›„์— ์˜คํ”ˆ ์†Œ์Šค ๋ฒ”์ฃผ๋กœ ์˜ฎ๊ฒจ์กŒ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ ์˜คํ”ˆ ์ „ XNUMX๊ฐœ ์ด์ƒ์˜ ๊ธฐ์—…์ด ์ฐธ์—ฌํ•œ ๋ฒ ํƒ€ ํ…Œ์ŠคํŠธ๊ฐ€ ์ง„ํ–‰๋๋‹ค. ํ˜„์žฌ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ Sorbet์€ Ruby์—์„œ ๋Œ€๋ถ€๋ถ„์˜ ํ‘œ์ค€ ํ”„๋กœ์ ํŠธ ์‹คํ–‰์„ ์ง€์›ํ•˜์ง€๋งŒ ์ผ๋ถ€ ๋น„ํ˜ธํ™˜์„ฑ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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