오늘 [RUST] 게시판을 새로 파놓고 무슨 글을 먼저 올릴까 고민하다가, 왜 요즘 개발판에서 Rust, Rust 하는지 제 개인적인 넋두리와 함께 가벼운 정보글 하나 남겨봅니다. 사실 저도 옛날 사람이라 그런지 하드웨어 제어하고 서버 짤 때 C나 C++이 제일 먼저 손에 익더군요. 그런데 다들 아시다시피 C++ 이 녀석은 조금만 방심하면 Null Pointer Exception이니 Segfault (Segmentation Fault)니 하면서 서버를 사정없이 터트려버리지 않습니까? 메모리 누수(Memory Leak) 잡으려고 밤새다 보면 "내가 이러려고 개발자 마우스를 잡았나" 현타가 오곤 합니다. 그러다 최근에 Rust(러스트)를 제대로 만져보기 시작했는데... 와, 이 녀석 물건입니다. C++이랑 비교했을 때 제가 느낀 Rust의 매력은 딱 3가지로 요약됩니다. 1. "소유권(Ownership)"이라는 무시무시한 통제관 Rust에는 가비지 컬렉터(GC)가 없습니다. 대신 '소유권'이라는 독특한 개념을 씁니다. 메모리 주인을 딱 하나만 지정하고, 그 주인이 쓸모 없어지면 칼같이 메모리를 수거해 갑니다. 처음엔 컴파일러가 "너 왜 메모리 마음대로 빌려 가냐!"면서 사사건건 시비를 거는데, 이거 익숙해지면 C++처럼 의문사하는 코드가 원천 차단됩니다. 2. 컴파일만 통과하면 보장되는 "메모리 안전성" Rust 컴파일러는 엄청 깐깐한 꼬대기 선임 같습니다. 코드에 쥐꼬리만큼이라도 메모리 오염 가능성이 있으면 컴파일 자체를 거부합니다. 징징대면서 컴파일러가 시키는 대로 고치고 나면? 신기하게도 런타임에서 절대 안 터지는 초합금 장갑 같은 프로그램이 완성됩니다. 3. 현대적인 툴체인 (Ca