Rust

공유하기:

이 섹션의 질문은 사용 언어 중 하나로 Rust를 선택한 개발자에게만 표시되었습니다.

어떤 용도로 Rust를 사용하시나요?

Florian Gilcher

Ferrous Systems 전무이사

이 수치가 마음에 듭니다. Rust가 성장하는 가운데, 상대적인 수치가 동일하다는 것은 더 많은 일자리와 여기에 고용될 수 있는 새로운 인력이 계속 유입됨을 의미합니다. 채용 담당자에게 해주고 싶은 말은 이겁니다. 채용 시 'X년의 Rust 사용 경력 필수' 항목을 삭제하면 이미 전문 코더이기도 한 재능 있는 애호가 후보군을 활용할 수 있습니다. 성장을 위한 건강한 파이프라인이 형성되어 있기 때문입니다.

Luca Palmieri

Mainmatter의 수석 엔지니어링 컨설턴트

Rust는 프로덕션 배포 수가 증가하면서 업무 현장에서 꾸준히 선전하고 있습니다. 동시에 Rust 구직자 수는 여전히 채용 중인 일자리의 수보다 훨씬 많습니다. 첫 Rust 일자리를 구하려는 개발자에게는 좋지 않지만 고용주에게는 확실히 희소식입니다. Rust 작업을 일상적으로 수행할 기회를 잡으려는 준비된 인재들이 많이 있으니까요.

Tim McNamara

Accelerant.dev 설립자이자 Rust in Action의 저자

이 질문에 대한 대답은 Rust 커뮤니티 내에 생동감 넘치는 균형과 많은 다양성이 존재함을 보여줍니다.

점차 많은 수의 Rust 개발자들이 Rust로 가치를 얻고 있는 모습이 고무적입니다. 2023년과 2022년을 비교하면 1년 안에 11%의 변화가 생겼습니다.

5명 중 1명만이 업무에 Rust를 사용한다는 사실이 실망스러워 보일 수도 있지만, 이는 상당한 수의 사람들이 이 언어를 배우는 중이라는 점을 고려할 때 일관성이 있습니다. 언어가 다수의 사람들에게 생소한 상황에서 50% 이상의 통계를 얻기란 매우 어렵습니다.

사람들이 개인적인 부수 프로젝트에 Rust를 사용하는 것은 정말 긍정적인 신호라고 생각합니다. 이는 Rust가 창의력을 발산하는 수단으로 선택하고 있음을 의미합니다.

얼마나 오랫동안 Rust를 사용하셨나요?

Tim McNamara

Accelerant.dev 설립자이자 Rust in Action의 저자

신입 프로그래머가 매우 많다는 것은 커뮤니티가 기하급수적으로 성장하고 있음을 나타냅니다.

커뮤니티의 리더가 기억해야 할 한 가지 사실은 Rust를 사용하는 사람들 중 75% 이상이 해당 언어에 대한 경험이 1년 미만이라는 것입니다.

에코시스템에 주요 프로젝트가 더 많이 생겨서 기여자 수가 늘어났으면 좋겠습니다. 지금은 한 명의 개발자가 다수의 중요한 크레이트를 관리하고 있습니다.

Luca Palmieri

Mainmatter의 수석 엔지니어링 컨설턴트

Rust는 사용자 유지율이 매우 높아, StackOverflow에서 7년 연속 가장 사랑받는 프로그래밍 언어로 선정되었습니다. 이는 Rust를 배우는 개발자들이 이 언어를 계속해서 사용하고 싶어 한다는 의미입니다.

동시에, Rust 에코시스템으로의 새로운 개발자 유입이 여전히 활발하다는 것을 알 수 있습니다. 응답자의 절반 이상이 이제 막 Rust를 시작한 상태입니다(6개월 미만).

높은 유지율과 신규 사용자의 활발한 유입은 에코시스템 전반적으로 좋은 소식이 아닐 수 없습니다!

Florian Gilcher

Ferrous Systems 전무이사

이는 특히 신규 사용자에게 좋은 소식입니다. 다른 언어의 경우 모든 팀에 10년 이상의 해당 언어 경험을 가진 동료가 있지만, Rust의 경우 지금 시작하면 이 분야의 전문가가 될 수 있는 가능성이 큽니다. Rust를 시작하기 가장 좋은 순간은 바로 지금입니다!

프로젝트에서 Rust와 함께 사용하는 프로그래밍 언어는 무엇인가요?

Luca Palmieri

Mainmatter의 수석 엔지니어링 컨설턴트

응답자의 절반 이상이 다른 기술과 함께 Rust를 활용하는 다중 언어 프로젝트에 참여하고 있습니다. 프로그래밍 언어에 따라 Rust API가 지원하는 JavaScript/TypeScript 프런트엔드, 기본 확장(Rust+Python), 혼합 언어 프로젝트(C/C++), 그리고 마이크로서비스(Go, Python, C#, Java 등) 간의 원격 상호 작용 등 주요 패턴에 대해 가정할 수 있습니다.

Tim McNamara

Accelerant.dev 설립자이자 Rust in Action의 저자

Rust가 다른 언어와 잘 어우러지는 것을 보니 참 좋습니다. 여기서 웹 백엔드(JS/TS, SQL) 및 CLI(셸 스크립팅 언어)에 Rust를 사용할 때의 영향을 볼 수 있습니다.

Rust가 확장에 사용되거나 적어도 JVM 언어와 함께 사용되고, 그 보다는 못하지만 CLR(C#)로 구축된 언어와 함께 사용되는 모습은 매우 흥미로운 신호입니다. 상업적 채택이 증가함에 따라 Rust가 여러 언어를 컴파일/빌드하는 빌드 시스템에서 잘 작동할 수 있도록 보장해야 하는 압력이 커질 것으로 예상합니다.

어떤 프로그래밍 언어에서 Rust로 마이그레이션하셨나요?

Florian Gilcher

Ferrous Systems 전무이사

위 통계의 요약 내용은 지난 수년에 걸쳐 변한 것이 없습니다. Rust는 단지 시스템 프로그래밍 개발자를 위한 것만이 아니라, 훨씬 더 넓은 범위에 적용되는 언어였고 앞으로도 그럴 것입니다!

Tim McNamara

Accelerant.dev 설립자이자 Rust in Action의 저자

와! "대체한 프로그래밍 언어가 없음"이라고 답한 비율이 제 예상을 훨씬 웃도는 10배 넘는 수치인 것 같습니다.

이러한 결과는 Rust가 점점 더 접근하기 쉬워지고 있다는 사실을 알리는 좋은 신호입니다. 동시에 커뮤니티로서 우리가 Rust를 더 잘 알려야 한다는 개인적인 신념이 더 확고해졌습니다.

Rust 코드는 다른 부분과 어떻게 상호 작용하나요?

Tim McNamara

Accelerant.dev 설립자이자 Rust in Action의 저자

WebAssembly/WASI가 여기에 표시될 것으로 예상했지만 22%는 제가 예상했던 것보다 훨씬 높습니다!

WebAssembly가 지원하는 상호 운용성 패턴에 대해 더 자세히 알아보는 것도 흥미로울 것입니다. 이것은 임의의 언어로 작성된 사용자 제공 플러그인으로 Rust 코드베이스를 확장하는 것에 관한 것일까요? 아니면 다른 애플리케이션에서 실행되는 구성 요소를 작성하기 위해 Rust를 찾고 있는 것일까요? 또 아니면 다른 프로그래밍 언어로 작성된 WebAssembly 모듈로 애플리케이션을 구축하는 Spin/Fermyon 실험의 성공을 목격하고 있는 것일까요?

Luca Palmieri

Mainmatter의 수석 엔지니어링 컨설턴트

웹 백엔드를 위한 Rust!

FFI를 사용하는 프로젝트의 비율이 감소한 것은 흥미롭습니다.

WebAssembly가 계속해서 승승장구하기를 기대합니다. Wasm 모듈은 Rust 오픈 소스 에코시스템이 현재 상당한 취약성을 보이고 있는 공급망 공격에 강력한 방어를 제공합니다.

Florian Gilcher

Ferrous Systems 전무이사

실제로 사용되는 통합 옵션의 다양성은 엄청납니다. 또한, 대부분의 프로젝트에는 일종의 통합 구성 요소가 있다는 점을 감안할 때 Rust가 다른 시스템과 광범위하게 통합되는 모습을 지켜보고 싶습니다.

Rust용 IDE에서 어떤 플러그인/유틸리티를 사용하시나요?

Tim McNamara

Accelerant.dev 설립자이자 Rust in Action의 저자

여기서 정말 놀라운 점은 사용 가능한 상업적 선택지가 거의 없다는 것입니다. JetBrains가 수년에 걸쳐 Rust를 적극적으로 지원해온 것에 박수를 보냅니다.

Florian Gilcher

Ferrous Systems 전무이사

두 가지 주요 에디터 옵션이 번창하고 있다는 사실을 확인하니 기쁩니다. Rust-analyzer는 단종된 RLS/Racer의 나머지 부분을 잠식한 것으로 보이고, 여전히 IntelliJ Rust는 통합 환경을 원하는 이들이 선택하는 기본 도구입니다.

Luca Palmieri

Mainmatter의 수석 엔지니어링 컨설턴트

rust-analyzer는 1년 전에 Rust 조직에 도입되었으며 '공식' 언어 서버로서 RLS를 공식 대체하면서 2년여 전에 시작된 여정을 완성했습니다. 설문조사를 통해 RLS의 사용자 기반이 마침내 rust-analyzer로 이동하고 있음이 확인되었지만, 전체 에코시스템을 마이그레이션하는 일은 대안이 아무리 우수하고 배포 압력과 조정 노력이 있더라도 복잡하고 느린 과정이라는 냉정한 사실을 다시 한번 상기하게 됩니다.

Rust 개발에 어떤 IDE/에디터를 사용하시나요?

IDE에서 가장 부족하다고 생각되는 Rust 기능은 무엇인가요?

Tim McNamara

Accelerant.dev 설립자이자 Rust in Action의 저자

이 기능 목록을 살펴보니 IDE에서 훨씬 더 많은 것을 원하게 되네요! 저 역시 수명 시각화에 대한 바람을 품어 왔지만, 복잡한 경우에 이것이 도움이 될지는 의문입니다. 결국 해석하는 법을 배워야 하는 또 다른 미니 언어가 될 수도 있습니다.

프로시저 매크로가 이토록 높은 평가를 받고 있다는 것에 깊은 인상을 받았습니다. 이렇게 많은 사람들이 자신만의 프로시저 매크로를 작성하고 있는지는 몰랐습니다!

JetBrains가 제공할 수 있는 한 가지는 GitHub Codespaces와 유사한 경험일 것입니다. 저는 클라우드 데스크톱 사용을 정말 좋아하지만 가격을 항상 꼼꼼히 따져봅니다.

Luca Palmieri

Mainmatter의 수석 엔지니어링 컨설턴트

긍정적인 점부터 시작해 보겠습니다. 응답자의 3분의 1이 IDE에서 Rust를 지원하는 상태에 만족합니다. 엄청나네요!

하지만 긍정적인 부분만 있는 것은 아닙니다. 수명과 같이 Rust의 고유한 측면에서 사용자를 지원하기 위해 해야 할 일이 많이 남아 있습니다. 프로시저 매크로는 계속해서 해결해야 할 과제입니다. 유용성이 높아 복잡한 코드 베이스 어디에나 있지만 광범위하게 사용하면 IDE 경험을 크게 저하시킵니다.

이러한 핵심 언어 구문이 잘 처리되면 IDE가 더 전문적인 사용 사례(예: 특정 웹 프레임워크에 대한 기본 지원)로 확장되는 모습을 볼 수 있을 것으로 기대됩니다.

Rust 컴파일에 어떤 빌드 시스템을 사용하시나요?

Tim McNamara

Accelerant.dev 설립자이자 Rust in Action의 저자

응답자의 6%가 Make를 빌드에 사용한다고요!? 와, 오래된 도구에 애착을 가지신 분들이 계시군요. 개발자에 대해 한 가지 깨달은 사실은 이들은 제어를 무척 선호한다는 것입니다.

Luca Palmieri

Mainmatter의 수석 엔지니어링 컨설턴트

놀랄 일도 아닙니다. Rust 프로젝트에서는 Cargo가 최고의 위치를 차지합니다.

보통 Rust 코드를 어떻게 디버그하시나요?

Luca Palmieri

Mainmatter의 수석 엔지니어링 컨설턴트

작년과 비교해 상황이 크게 달라지지 않았습니다. 구체적으로, println! 디버깅은 진입 장벽이 가장 낮으며 응답자 사이에서 여전히 선두 기술로 남아 있습니다. 도구 숙련도의 격차도 분명히 있겠지만 그게 다가 아니라 교육 격차도 있다고 생각합니다. 사람들에게 기존 디버깅 도구의 활용법을 알려줄 만한 자료가 거의 없는 실정입니다.

Tim McNamara

Accelerant.dev 설립자이자 Rust in Action의 저자

println을 사용하는 것은 부끄러운 일이 아닙니다 (듣기 좋은 말로는 추적 디버깅이라고 할 수 있습니다)! IDE 개발자가 실제 디버깅을 매우 쉽게 사용할 수 있도록 많은 노력을 기울였다는 사실은 희소식입니다. 프로그램 실행을 단계별로 진행하기 위해 디버거 사용법을 배우면 확실히 생산성이 올라갑니다.

Florian Gilcher

Ferrous Systems 전무이사

이 상황은 실망스럽습니다. 더 나은 디버깅 경험이 가능하다고 생각하며, IDE가 이를 위한 좋은 방법인 것 같습니다. 저는 이 관행이 수년에 걸쳐 다소 정체되어 있다고 생각합니다. "단순히 콘솔에 출력하기"가 여전히 가장 선호되는 옵션이라는 점에서 이 사실이 잘 드러납니다.

Rust에 대해 사용하는 프로파일링 도구는 무엇인가요?

Luca Palmieri

Mainmatter의 수석 엔지니어링 컨설턴트

Rust 프로젝트에서 프로파일러를 사용하는 개발자의 수가 급격히 증가했습니다!

이 늘어난 수치의 대부분은 IDE에서 번들로 제공되는 프로파일러 사용의 증가에서 비롯되었습니다. 강력한 도구를 사용하기 쉽게 만들면 개발자들은 이를 활용합니다.

하지만 아직 해야 할 일이 많이 남아 있습니다. 프로덕션 환경에서도 동일한 수준으로 쉽게 애플리케이션을 프로파일링할 수 있어야 하지만 이 부분에서는 아직 훌륭한 개발자 경험을 제공하지 못하고 있습니다.

Florian Gilcher

Ferrous Systems 전무이사

번들로 포함된 프로파일러의 상대적 인기를 보면 제 예상대로, 프로파일링이 잘 수행되지 않는 이유는 그 도구에 쉽게 접근할 수 없어서임이 확인됩니다.

Rust로 어떤 유형의 프로젝트를 개발하시나요?

Luca Palmieri

Mainmatter의 수석 엔지니어링 컨설턴트

제가 설문조사를 좋아하는 이유가 바로 여기에 있습니다. 원시 데이터의 힘으로 지배적인 통념을 깨버리기 때문입니다.

Rust는 대부분의 사람들이 생각하는 '시스템 프로그래밍'과 결이 비슷하지만 자세히 들여다 보면 실제로 다른 면이 있습니다. Rust가 웹 개발에 사용하기에는 "과하다"거나 "너무 어렵다"라는 말과는 달리 응답자의 38%는 웹 개발에 Rust를 사용하고 있습니다. 저는 이 영역이 Rust가 크게 성장할 차기 시장이라고 확신하며 실제 데이터에서 이 예감이 적중했음을 확인할 날을 기대합니다.

Florian Gilcher

Ferrous Systems 전무이사

Rust의 모든 방면의 성장과 더불어 임베디드/IoT에서 Rust가 동일한 수준으로 사용되는 모습을 보니 기쁩니다. 개인적으로 놀라웠던 올해의 긍정적인 결과는 데스크톱 애플리케이션에서의 사용 사례가 늘었다는 것입니다. 개인의 직감과 일치하지 않는 수치는 언제나 있기 마련이죠. 이 수치는 다른 부분의 수치와 상대적으로 비교했을 때 크게 변함이 없다는 사실은 비교적 잘 확립되고 안정적이며 발전 중인 에코시스템이 있음을 가리킵니다.

Tim McNamara

Accelerant.dev 설립자이자 Rust in Action의 저자

다양한 형태의 프로젝트를 보는 것은 정말 유쾌한 일입니다. 제가 이 언어를 좋아하는 이유 중 하나는 언어의 안전성이 보장되어 사람들이 이전에는 접근할 수 없었던 영역에서 부담 없이 실험할 수 있다는 것입니다.

Rust 프로젝트에서 어떤 플랫폼을 대상으로 하시나요?

Tim McNamara

Accelerant.dev 설립자이자 Rust in Action의 저자

여기서 다양성이 확인되니 멋집니다. 서버 측 Linux가 훨씬 더 높을 것이라고 예상은 했지만, 90%를 훌쩍 넘었군요. 이는 많은 수의 사람들이 Rust를 사용하여 CLI를 구축하고 대다수의 개발자가 취미와 부수적 프로젝트에 이를 사용하고 있음을 말해준다고 생각합니다.

임베디드 개발자의 비율이 매우 높은 것 같습니다. 저는 임베디드가 상당히 작은 틈새 시장이라고 생각하지만 운영 체제에 의존하지 않는 프로젝트에 Rust를 사용하는 헌신적이고 광범위한 그룹이 있는 것은 분명합니다.

Florian Gilcher

Ferrous Systems 전무이사

이 또한 놀랄 일이 아닙니다. 다소 보수적인 기업에서 Rust를 지속적으로 채택하면서 타깃으로서 Windows의 적절성이 높아지고 있습니다.

읽어주셔서 감사합니다!

이 보고서가 여러분에게 도움이 되었기를 바랍니다. 이 보고서를 친구와 동료에게 공유하세요.

질문이나 제안이 있으면 surveys@jetbrains.com으로 연락해 주세요.