작년 말에 릴리스된 Ruby 3.2에서 프로덕션에서도 쓸 수 있는 상태가 된 YJIT이 릴리스 되기 까지의 과정을 정리한 글입니다. Maxime Chevalier-Boisvert는 2020년에
작년 말에 릴리스된 Ruby 3.2에서 프로덕션에서도 쓸 수 있는 상태가 된 YJIT이 릴리스 되기 까지의 과정을 정리한 글입니다. Maxime Chevalier-Boisvert는 2020년에 Shopify에 Ruby & Rails Infrastructure팀에 합류하게 되었고 일을 하면서 매니저에게 Ruby용 JIT(Just-In-Time) 컴파일러를 만들수 있다고 제안을 하게 됩니다. 다행이 매니저에 이에 동의하고 다른 두 동료가 참여하면서 CRuby의 YJIT 프로젝트가 시작되었습니다. 작업이 쉽지는 않았지만 railsbench 기준으로 20%의 성능을 향상시키게 되었는데 이후 CRuby 코어팀에서 같이 작업하자고 초대를 받으면서 2021년 Ruby 3.1에 일부로 포함되게 됩니다. 2022년에는 YJIT팀이 더욱 커진 덕에 Ruby 3.2에서는 성능도 더 좋아지고 안정적인 YJIT을 지원할 수 있게 됩니다. 2021년 YJIT을 C99에서 Rust로 포팅하기로 결정하면서 유지보수도 쉬워졌고 메모리 개선 작업으로 프로덕션에서도 쓸 수 있게 되었다고 합니다. Ruby를 쓰진 않지만 3.2에서 YJIT이 주목 받는 것은 알게 되었는데 이글을 통해서 이 프로젝트가 Shopify에서 시작된 프로젝트라는 것을 알게 되어 재밌었습니다.