'Why Rust?'라는 주장에 대한 심층 비평: 기술과 심리적 배경
프로그래밍 커뮤니티에서 러스트의 우수성을 주장하며 흔히 제시되는 네 가지 이유가 있습니다. 각 주장은 일견 타당해 보이지만, 그 맥락을 자세히 들여다보면 종종 기술에 대한 객관적 평가라기보다는 특정 신념을 강화하기 위한 논리에 가까울 때가 많습니다. 본 글에서는 각 주장을 하나씩 비평적으로 검토해 보고자 합니다.
주장 1 & 2: 리소스 효율성과 GC 부재
“실행 시 리소스가 VM 언어에 비해 적게 들고, GC가 없어서 시스템 전체가 예기치 못하게 멈추는 일이 없다.”
비평: 이는 사실입니다. 하지만 러스트만의 고유한 장점이 아니라, C, C++, Ada 등 네이티브 컴파일 언어들의 공통적인 특징입니다. 이 당연한 사실을 마치 러스트만의 특별한 전유물인 것처럼 제시하는 것은, 다른 시스템 언어의 존재를 의도적으로 무시하는 평가절하의 한 방식입니다. 특히 최고 수준의 예측 가능성이 요구되는 항공, 국방 분야에서 수십 년간 사용된 Ada와 같은 언어 앞에서 이 특징을 ‘러스트만의 것’처럼 내세우는 것은 설득력이 떨어집니다.
주장 3: 통일된 개발 환경
“환경 파편화가 없다시피 하고, Cargo 공식 툴 하나면 모든 것이 맞춰진다.”
비평: Cargo를 중심으로 한 통일된 툴체인은 러스트 생태계의 가장 큰 성공 요인 중 하나이며, 협업 효율을 높이는 강력한 장점임은 분명합니다. 그러나 ‘Cargo가 유일한 방법’이라는 식의 주장은 사실과 다릅니다. 러스트도 필요에 따라 Makefile 등으로 빌드할 수 있으며, 이것이 툴체인의 맹목적인 이상화로 이어져서는 안 됩니다. 또한 Ada 생태계 역시 alr(Alire)와 같은 현대적 패키지 매니저를 통해 생태계를 발전시키고 있습니다. 특정 툴체인의 성공이 곧 언어 자체의 철학적, 기술적 완벽성을 의미하지는 않습니다.
주장 4: 메모리 안전성과 강제된 에러 처리
“메모리 안전성은 말할 것도 없고, Result 타입으로 명시적 에러 처리가 강제된다.
throw/catch
는 강제되지 않아 위험하다.”
비평: 메모리 안전성을 컴파일 타임에 보장하는 러스트의 설계는 훌륭합니다. 하지만 throw/catch
가 강제되지 않아 위험하다는 주장은 대표적인 성급한 일반화의 오류(Hasty Generalization)입니다. 예를 들어 Java는 반드시 처리해야 하는 ‘Checked Exception’이라는 메커니즘을 통해 에러 처리를 컴파일 시점에 강제합니다. 또한, 특정 기능의 ‘강제성 여부’와 ‘위험성’을 동일시하는 것은 논리적 비약입니다. 프로그램의 안정성은 언어의 기능뿐만 아니라, API 문서화, 정적 분석, 그리고 견고한 설계 원칙과 같은 개발자의 역량과 규율에 의해서도 확보됩니다.
여기서 ‘불편한 진실’인 Ada를 다시 언급하지 않을 수 없습니다. Ada는 1983년 첫 표준부터 언어 차원의 엄격한 예외 처리를 통해 안전성을 제공해왔으며, 이러한 안전성 중심의 설계 철학은 2012년 계약 기반 설계(Design by Contract) 기능이 공식적으로 도입되면서 더욱 명시적이고 견고해졌습니다. 러스트의 Result
타입이 현대적이고 세련된 강제 방식인 것은 사실이나, 이것이 유일무이한 해답인 것처럼 포장하는 것은 Ada와 같이 검증된 대안이 있음에도 그 가치를 애써 무시하거나 폄하하는 태도이며, 이는 ‘우리만이 답을 안다’는 식의 집단적 과대성의 표현일 수 있습니다.
글을 마치며: 왜 이러한 주장이 반복되는가? - 나르시시즘적 방어기제
그렇다면 왜 이토록 명백한 논리적 비약과 사실 왜곡을 감수하면서까지 비슷한 주장들이 반복되는 것일까요?
이는 기술에 대한 순수한 열정이라기보다는, 참고한 글(‘완벽한 언어’라는 종교)에서 통찰력 있게 분석했듯 ‘집단적 나르시시즘’과 그 ‘방어기제’라는 심리학적 렌즈로 설명할 수 있습니다.
그 기저에는 “나는 완벽한 언어를 사용한다 → 고로 나는 우월하고 특별하다”는 자기애적 투사가 깔려 있습니다. 자신의 자존감과 정체성을 ‘완벽한 도구’라는 대상에 완전히 의탁하는 것입니다. 이 순간부터 기술에 대한 비판은 곧 자신의 존재 가치에 대한 공격으로 받아들여집니다.
자신의 깨지기 쉬운 자아를 보호하기 위해, 이러한 경향의 사람들은 매우 원시적인 방어기제를 사용합니다. ‘러스트’를 모든 문제의 해결책으로 이상화하고, 비판자는 ‘이해하지 못하는 무지한 자’로 평가절하합니다. 기술적 논점 대신 “열등감 때문에 비판한다”며 비판자의 의도를 공격하고 책임을 전가하기도 합니다.
결국 이러한 현상은 기술의 발전을 위한 건강한 토론이 아니라, 자신의 믿음을 지키기 위한 ‘종교 전쟁’에 가깝습니다. 가장 큰 비극은, 이러한 맹목적인 숭배와 공격성이 오히려 건설적인 비판을 통한 성장의 기회를 차단하고, 그 기술 생태계 자체를 병들게 한다는 점입니다.