Rust로 Production까지

Rust 언어로 밑바닥부터 만든 프로덕트 후기가 나와서 가져와봤습니다. 저는 이전에 Rust에 주목하라는 이야기를 드릴 정도로 Rust언어에 대해 관심이 많은데요. 이 후기도 꽤 인상 깊네요. 특히 러스트 언어의 오버헤드에 대해서 알 수 있는 글인 것 같습니다. ✅ Rust는 엄청난 학습 곡선을 갖고 있습니다. Rust는 기존의 modern 언어와 비슷한 패러다임을 가진 것으로 보이지만, 사용하면 할 수록 수명, 소유권과 같은 완전히 새로운 개념을 배워야합니다. 때문에 경험이 많은 팀임에도, 꽤 난항을 겪은 적이 많았고, 팀에서 러스트 학습 모임을 갖기 시작했습니다. ✅ Rust가 우리의 문제를 해결해주지 않을 수 있습니다. 프로덕트에서 러스트로 만드려는건 CRUD앱이였습니다. Python과 같은 기존 언어를 사용하면 빠르게 만들수 있는 걸 우린 러스트로 만들려고 노력했었고, 이는 적합하지 않았습니다. 우리가 내린 결론은 "Rust는 개발자의 생산성이 아닌 안전성에 중점을 두는 언어라는 것"입니다. ✅ Rust 개발자를 고용하는데 어려움을 겪을 수 있습니다. 엔지니어링 팀에 합류한 60명 중에 2~3명만이 이전 프로젝트에서 러스트 경험이 있었습니다. 이는 물론 러스트가 점점 주류가 되면 해결될 문제이지만, 우리 프로덕트는 그 과도기에 있었기에 문제가 있었습니다. Rust를 사용하면, Rust를 아는 사람과 그렇지 않은 사람들 사이에 분열이 무조건 생긴다는 것입니다. 서비스에 조금은 "난해한" 프로그래밍 언어를 선택한 것이 문제였지만, 실제로 기능이나 생산성, 디버깅등을 할때 다른 사람의 도움을 받지 못하는 문제가 있습니다. ✅ Rust는 아직 문서와 라이브러리가 부족합니다. Go와 비교할때 아직 Rust의 라이브러리와 문서는 믿을 수 없을 정도로 부족합니다. 이런 종류의 미숙함은 Rust에만 국한 된 것은 아니지만 팀이 지불해야하는 세금에 해당합니다. ✅ Rust는 기능을 러프하게 만드는걸 어렵게 합니다. 많은 개발자들이 새로운 기능을 만들때, 동작 위주로 테스트를 하고, 느슨한 코드를 만든 후 테스트를 돌리며 완성해 나갑니다. 허나, 러스트는 이런 코딩이 어렵습니다. 컴파일러는 유형 및 수명 검사를 통과하지 못하는 모든 것들에 대해 에러를 뿜기 때문이죠. ✅ 러스트는 뭐가 좋았나요? 그럼에도 불구하고, 러스트에 좋은 점은 많이 있습니다. match 구문이나 Option, Result, Error 특성은 오류를 처리하는 아주 우아한 방법입니다. 또한 러스트는 높은 수준의 퍼포먼스와 안정성을 요구하는 프로젝트에 매우 적합하게 사용될 수 있습니다.

Using Rust at a startup: A cautionary tale

Medium

Using Rust at a startup: A cautionary tale

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2022년 11월 23일 오전 9:03

 • 

저장 84조회 6,328

댓글 2

  • 러스트를 배워보고 싶습니다!

  • 아직까진 대부분의 개발자가 러스트가 좋다더라...메모리 세이프 하게 만들수 있다더라...수준인것 같습니다..저도 개인적으로 러스트를 공부하고 있지만 제가 재직하는 회사의 서비스나 모듈중 일부만이라도 러스트로 재작성하고 싶진 않네요. 난이도는 둘째치고, 동료들에게 당위성을 전달하는게 어려울것 같아요.