• ZDNet USA
  • ZDNet China
  • ZDNet Japan
  • English
  • 지디넷 웨비나
뉴스
  • 최신뉴스
  • 방송/통신
  • 컴퓨팅
  • 홈&모바일
  • 인터넷
  • 반도체/디스플레이
  • 카테크
  • 헬스케어
  • 게임
  • 중기&스타트업
  • 유통
  • 금융
  • 과학
  • 디지털경제
  • 취업/HR/교육
  • 인터뷰
  • 인사•부음
  • 글로벌뉴스
창간특집
인공지능
배터리
컨퍼런스
칼럼•연재
포토•영상

ZDNet 검색 페이지

'러스트'통합검색 결과 입니다. (20건)

  • 태그
    • 제목
    • 제목 + 내용
    • 작성자
    • 태그
  • 기간
    • 3개월
    • 1년
    • 1년 이전

C++ 창시자 "바꿔야 할 건 언어가 아니라 개발자의 사고 방식"

"C++는 대체될 수 있는 언어가 아닙니다. 우리가 진정으로 바꾸려는 게 무엇인지 묻는다면, 그것은 언어가 아니라 개발자의 사고 체계일지도 모릅니다." C++ 창시자인 콜롬비아대학 비아네 스트롭스트룹 교수는 12일 데브클래스와의 인터뷰에서 인공지능(AI)과 신생 언어들이 주도하는 개발 환경의 변화 속에서도 C++의 존재 이유는 여전히 유효하다고 강조하며 언어의 문제가 아니라 사고 방식의 전환이 진정한 과제라고 지적했다. 그는 현재의 소프트웨어(SW) 생태계가 '편의성'과 '속도'에 지나치게 치우쳐 있으며 그 결과 언어와 개발 방법론의 핵심 원칙이 약화되고 있다고 진단했다. 스트롭스트룹은 특히 AI 기반 코드 생성 도구들이 "생각 없이 코딩하는 습관"을 확산시키고 있다고 지적했다. 그는 "AI는 이미 존재하는 코드를 학습하고 재조합하는 데 특화돼 있다"며 "그 결과 과거의 잘못된 패턴, 낡은 스타일이 그대로 반복될 가능성이 크다"고 밝혔다. 이에 대한 근거로 그는 GPT 기반의 코드 생성기가 생 포인터(raw pointer)나 전통적 배열 포인터 전달처럼 C++에서 오랫동안 지양돼 온 방식들을 여전히 제안하고 있다고 지적했다. 이러한 도구들이 오히려 현대적인 C++ 철학, 즉 안전하고 표현력 높은 코드를 작성하려는 흐름을 방해할 수 있다는 설명이다. 이에 그는 AI가 제공하는 '정답처럼 보이는 코드'에 의존하는 개발자들이 늘어날수록 프로그래밍의 본질인 문제 인식과 추상화 설계 능력은 퇴화할 수밖에 없다고 경고했다. 더불어 그는 "좋은 개발자는 문제를 정의하고 그에 맞는 모델을 구성할 수 있어야 한다"며 "코딩은 그 결과물에 불과하다며 문제 인식 자체를 AI에 위임하는 순간 개발자는 더 이상 기술자가 아니다"고 단언했다. 스트롭스트룹 교수는 AI 시대에 새로운 언어를 만들거나 기존 언어를 폐기하려는 시도에 대해서도 강한 입장을 보였다. 그는 "언어의 일부 기능이 위험하다고 해서 그 기능 자체를 제거하거나 언어를 대체하는 것이 정답은 아니다"고 말했다. C++는 분명 복잡하고 때로는 위험할 수 있는 기능들을 제공하지만 바로 그 기능들이야말로 고성능 시스템, 실시간 제어, 대규모 분산 처리와 같은 중요한 영역에서 반드시 필요한 도구들이라고 설명했다. 또 스트롭스트룹 교수는 AI와 같은 기술의 발전이 반드시 개발자의 전문성을 위협하는 방식으로 흘러가지 않기를 바란다고 강조했다. AI는 코드 작성의 생산성을 높이는 데 기여할 수 있지만, 이에 따른 판단 능력의 상실, 기술적 부채의 확산을 막기 위해서는 개발자 스스로가 언어와 설계 원리에 대한 깊은 이해를 갖춰야 한다는 게 그의 입장이다. 이와 함께 스트롭스트룹 교수는 C++의 메모리 안전성 문제와 이를 이유로 언어를 대체하려는 움직임에 대해 깊은 우려를 표명했다. 최근 C++의 수동 메모리 관리 특성으로 인해 발생하는 메모리 버그가 보안 취약점의 주요 원인으로 지목되며 이에 따라 러스트 같은 메모리 안전성을 강조하는 언어로의 전환이 논의되고 있다. 스트롭스트룹 교수는 이러한 비판에 대해 C++의 근본적인 설계 철학을 강조하며 대응했다. C++는 초기부터 타입 안전성과 리소스 안전성, 즉 메모리 안전성을 핵심 목표로 삼았다. 또 C++는 진화 가능한 언어로 설계돼 현대적인 기능과 도구를 통해 안전성을 지속적으로 향상시켜 왔다고 강조했다. 이런 흐름에 맞춰 그는 C++ 내에서 메모리 안전성 문제에 대응하기 위한 전략으로 프로파일 개념을 제안했다. 스트롭스트룹 교수는 "새로운 언어는 C++만큼의 성능과 제어력, 추상화 범위를 동시에 갖추는 데 실패해왔다"며 "C++가 가진 특성은 단지 오래된 전통이 아니라 고성능 SW개발에 필요한 본질적인 능력"이라고 말했다. 이어 "C++는 대체될 수 있는 언어가 아니다"며 "우리가 진정으로 대체하려는 게 무엇인지 묻는다면 그건 언어가 아니라 개발자의 사고 체계일지도 모른다"고 덧붙였다. 더불어 새로운 언어들이 반드시 마주치는 현실적인 문제로 '상호 운용성'을 지적했다. 그는 "어떤 신생 언어가 성공하려면 C++, 파이썬 같은 기존 언어들과 자연스럽게 연동돼야 한다"며 "그렇지 않으면 결국 우리가 손에 쥐게 되는 것은 서로 교류하기 위해 애쓰는 수많은 불완전한 언어일 수 있다"고 경고했다. 이 같은 주장과 함께 그는 '모던 C++'의 핵심은 새로운 기능을 사용하는 데 있는 것이 아니라 언어의 철학과 스타일을 어떻게 조화롭게 통합하느냐에 있다고 밝혔다. 스트롭스트룹 교수는 스마트 포인터, 자동 타입 추론(auto), 콘셉트(concepts), 모듈 시스템(modules) 등 C++11 이후로 언어가 제공하는 수많은 기능들이 단순히 선택적인 옵션이 아니라 안전하고 강력한 SW를 만들기 위한 핵심 구성요소라고 설명했다. 그는 "전통적인 '#인클루드(#include)' 대신 '임포트(import)'를 사용하고 이동 시맨틱과 스마트 포인터를 적극적으로 활용하라"며 "현대적인 C++ 사용법이야말로 개발자의 역량을 유지하고 향상시키는 열쇠"라고 강조했다.

2025.05.12 11:09남혁우

러스트, 美 정부·빅테크 권장에도 확산 더뎌

보안상의 이점에도 불구하고 프로그래밍 언어 러스트의 사용률은 기대만큼 증가하지 않고 있는 것으로 나타났다. 미국 정부를 비롯해 주요 빅테크에서 보안 강화를 이유로 러스트 사용을 권장하고 있지만, 부족한 사용처와 복잡성으로 인한 어려움이 진입장벽으로 작용하는 것으로 보인다. 21일 더레지스터 등 외신에 따르면 러스트 설문조사팀은 '2024년 러스트 상태 설문조사(State of rust Survey)' 결과를 공개했다. 조사 결과에 따르면 설문조사를 참여한 개발자가 2023년 1만1천950명에서 9천450명으로 줄었으며 설문을 완료한 응답자는 개발자는 9천710명에서 7천310명으로 더 감소했다. 러스트 설문 조사팀은 약 한 달에 걸쳐 진행한 2023년에 비해 2024년은 2주로 제출 기간이 짧아지면서 응답자가 줄었다고 밝혔다. 다만 이런 상황을 고려하더라도 미국 정부와 주요 빅테크에서 러스트의 사용을 독려함에도 실제 사용률은 크게 증가하지 않는다는 것을 시사하는 것으로 보인다. 러스트의 사용률 정체는 다른 조사에서도 확인됐다. 스택오버플로의 개발자 설문조사에서도 2024년 러스트 사용률이 12.6%로, 전년도의 13.05%보다 소폭 감소한 것으로 나타났다. 러스트의 사용률이 전반적으로 증가하지 못하는 가장 큰 이유는 여전히 높은 학습 난이도가 지적됐다. 응답자 중 30.6%가 배우기가 너무 어렵거나 학습하는 데 시간이 너무 많이 걸린다고 답했다. 이는 2023년 30.9%와 거의 동일한 수치다. 개발에 필요한 기능나 라이브러리가 부족해 실제 업무 환경에서 사용하기 어렵다는 지적도 있었다. 특히 시스템 프로그래밍, 임베디드 시스템, 비동기 프로그래밍 등에서 이러한 문제점이 부각됐다. 아직 충분한 활용처가 없는 것도 러스트의 확산을 저해하는 것으로 나타났다. 기존 러스트 개발자들이 더 이상 언어를 사용하지 않는 이유로 꼽은 것도 활용할 기회가 없다는 답변이 36%로 1위를 기록했다. 45.7%를 기록한 전년 대비 10% 가까이 개선된 수치지만 여전히 실제 업무 환경에서 러스트의 활용 비율은 낮은 것으로 확인됐다. C와 C++ 등 기존 언어와의 호환성 또는 다른 언어를 선호하는 개발자와의 의견 충돌 등도 문제점으로 지적됐다. 대표적으로 리눅스 커널의 경우 안정성 향상을 위해 러스트 도입을 시도했지만 일부 개발자들의 반대로 인해 도입이 늦어지고 있는 상황이다. 최근 커널 유지 관리자 크리스토프 헬위그가 러스트를 기존에 작성한 C언어 코드와 함께 사용하는 것이 마치 '암적인 요소(cancer-like thing)'와 같다고 비판해 논란이 일기도 했다. 러스트의 보안성과 성능에 대한 인식은 높아지고 있으나, 복잡성과 학습 곡선으로 인해 사용률이 기대만큼 증가하지 않는 상황이다. 더 넓은 확산을 위해서는 학습 진입장벽을 낮추고 저변 확대를 위한 개선이 필요한 상황으로 확인됐다. 다만 러스트의 언어에 대해선 긍정적인 반응이 다수를 이뤘다. 러스트의 장점에 대한 중복 설문 결과 목표 달성에 도움을 준다는 답변이 77.9%를 기록했으며 비용 대비 가치가 있다는 답변이 71.2%를 기록했다. 또 작성한 코드의 버그가 적다는 답변이 61.4로 나타났다. 러스트 팀은 "설문 조사에 참여하고 도움을 준 모든 이들에게 감사하다"며 "매년 진행하는 상태 조사 결과를 통해 러스트 프로젝트와 생태계 전반에서 개선이 필요한 분야를 밝히고 이를 기반으로 개선할 수 있도록 노력할 것"이라고 말했다.

2025.02.21 09:53남혁우

"러스트는 암적인 요소"… 리눅스 커널 개발자간 논란 심화

리눅스 커널 개발자 사이에서 C와 러스트를 함께 사용하는 것에 대한 논쟁이 계속되고 있다. 리눅스 커널의 러스트 도입은 보안과 안정성을 높이려는 취지에서 시작됐다. 그러나 다중 언어 지원으로 인한 유지보수 문제와 코드 일관성 저하에 대한 지적과 함께 개발자들 사이에서 의견이 엇갈리고 있다. 7일 더레지스터 등 외신은 리눅스커널 개발자 간에 C와 러스트의 혼재를 두고 논란이 불거졌다고 보도했다. 최근 러스트로 작성된 장치 드라이버가 C기반 커널의 핵심 DMA API를 호출할 수 있는 추상화 제안에 대해 커널 유지 관리자 크리스토프 헬위그가 반대하며 논란이 불거졌다. 그가 강하게 반대한 이유는 러스트로 작성된 디바이스 드라이버가 C로 작성된 DMA API를 호출할 수 있도록 설계된 새로운 추상화 계층에서 비롯됐다. 그는 이러한 방식이 기존 커널 코드베이스와 독립적으로 운영되면서, 코드의 일관성이 깨지고 커널 유지보수 비용이 증가할 것이라는 주장이다. 헬위그는 러스트를 기존에 작성한 C언어 코드와 함께 사용하는 것이 마치 '암적인 요소(cancer-like thing)'와 같다고 비유했다. 새로운 언어가 점진적으로 퍼지면서 점점 더 많은 영역을 차지하게 되고, 결국 리눅스 커널의 상당부분을 러스트로 전환해야 하는 상황이 올 수도 있다는 지적이다. 그는 "우리는 지금 하나의 커널을 유지하고 있으며, 이 코드베이스를 유지보수하는 커뮤니티가 있다"며 "그러나 두 개의 언어가 공존하면, 두 개의 다른 코드베이스를 유지해야 하는 것과 다름없다"고 덧붙였다. 또한 "DMA API에 러스트 인터페이스를 추가하는 것은 기존의 명확하고 단순한 C 코드에 불필요한 복잡성을 더하는 것과 같다"며 "이는 리눅스 커널의 구조를 더 이상 단순하게 유지할 수 없게 만들며, 시간이 지나면서 단순히 새로운 언어를 지원하는 것이 아니라, 기존의 체계를 바꾸어야 하는 수준으로 발전하는 것이 문제라고 지적했다. 러스트의 도입을 지지하는 개발자들은 러스트 코드가 기존 C API를 직접 변경하는 것이 아니라, C API를 추상화하는 계층을 통해 접근한다고 반박했다. 리눅스용 러스트 프로젝트를 주도하는 미구엘 오제다는 "러스트의 DMA API는 기존 C 코드에 변경을 가하지 않으며, 러스트 드라이버 개발자들이 관리하는 별도의 러스트 코드베이스에서 유지된다"고 설명했다. 그는 이러한 방식을 통해 기존 C 코드와 러스트 코드가 명확하게 분리되며, 기존 커널 구조를 유지하면서 러스트의 메모리 안전성을 활용할 수 있다고 강조했다. 그러나 헬위그와 같은 일부 커널 유지 관리자들은 러스트가 점차 커널 코드베이스를 잠식할 가능성을 우려하며, 핵심 서브시스템에서의 러스트 사용을 최소화해야 한다고 주장하고 있다. 러스트 도입을 둘러싼 논쟁이 심화되는 가운데 리눅스 커널 창시자인 리누스 토발즈는 중립적인 입장을 보였다. 그는 "러스트 도입을 실패라고 보기에는 아직 이르다"며 "우리는 이 작업을 몇 년째 진행 중이며, 이를 통해 많은 것을 배우고 있다"고 말했다. 러스트의 도입이 아직 실험적인 단계에 있으며, 개발자들이 점진적으로 문제를 해결해 나갈 수 있다는 입장이다.

2025.02.07 10:11남혁우

러스트 1.84.0, 트레이트 솔버 개선 등 안정성 강화

러스트 1.84.0버전이 공개됐다. 복잡한 문제를 보다 안전하고 효율적으로 해결할 수 있도록 트레이트 솔버를 근본적으로 개선하고 일부 기능을 안정화했다. 15일 데브클래스 등 외신에 따르면 러스트 릴리즈팀은 러스트 1.84.0을 공식 홈페이지와 깃허브를 통해 공개했다. 트레이트는 특정 역할에 따라 공유할 수 있는 기능을 정의하는 규칙이라고 생각할 수 있다. 예를 들어 '비행'이라는 트레이트는 새, 곤충, 비행기와 같이 서로 다른 타입들이 같은 역할을 공유할 수 있도록 만들 수 있다. 트레이트 솔버는 일종의 문제 해결사다. 서로 다른 타입 간에 '누가 어떤 능력을 가지고 있는지'를 알아내고 관계를 정리하는 역할을 한다. 어떤 동물이 비행 능력을 가지고 있다면, 트레이트 솔버는 '이 동물이 정말로 날 수 있는지, '다른 동물과 충돌하지 않는지' 등을 확인한다. 이 기능은 특정 타입이 정의된 능력을 가지고 있는지를 확인하며, 서로 다른 타입 간의 충돌이나 모호성을 해결한다. 또한 트레이트가 서로 얽혀 있거나 의존성이 있을 때 이를 정리해 컴파일러가 이해할 수 있도록 돕는다. 이를 통해 각 타입의 역할을 명확히 정리하고, 충돌이 없도록 관리한다. 러스트 1.84.0에서 도입된 새로운 트레이트 솔버는 이제 더 복잡한 관계를 이해하고 문제를 정확히 해결할 수 있도록 개선됐다. 여러 관계 속에서도 정확히 누가 무엇을 할 수 있는지를 파악하고 대규모 프로젝트에서도 신속하게 관계를 분석하고 결과를 도출한다. 또한 이전보다 오류를 줄이고, 잘못된 경고를 덜 발생시키는 방식으로 작동한다. 이를 통해 개발자들은 이제 더 복잡한 프로젝트에서 안정적으로 코드를 작성할 수 있다. 또한 프로젝트의 호환성을 더 쉽게 관리할 수 있도록 카고(Cargo)에서 프로젝트 최소 지원 러스트 버전(MSRV)을 자동으로 인식하는 기능이 추가됐다. MSRV는 프로젝트가 정상적으로 빌드되고 실행되기 위해 요구되는 러스트 버전이다. 기존에는 수동으로 버전을 추적하고 관리해야 했지만 이번 업데이트를 통해 자동으로 관리할 수 있게 됐다. 이를 통해 개발 과정의 번거로움을 줄이고, 휴먼에러 등으로 인한 오류 발생을 최소화한다. 이 밖에도 포인터 관리를 위한 API를 추가해 메모리 관련 오류를 방지할 수 있도록 지원하는 등 안정성 확보를 위한 기능을 선보이고, 기존 오류를 해결했다. 러스트 릴리즈 팀은 "많은 사람들이 러스트 1.84.0을 만들기 위해 함께 모여 도움을 줘서 감사하다"며 "이번 버전을 사용하는 과정에서 버그를 발견하거나 요구 사항이 있으면 알려달라"고 말했다.

2025.01.16 10:15남혁우

MS "C언어 코드, 성능 손실 없이 러스트로 자동 전환"

마이크로소프트가 C언어로 작성된 코드를 안전하고 효율적으로 러스트(Rust)로 자동 변환할 수 있는 방법을 제시했다. 6일 마이크로소프트는 'C언어를 안전하게 러스트로 컴파일하기, 형식화(Compiling C to Safe Rust, Formalized)'라는 논문을 아카이브를 통해 발표했다. 프랑스 국립디지털과학기술연구소(INRIA)와 공동으로 발표한 이번 논문은 C언어로 작성된 코드베이스를 안전하게 러스트로 자동 전환해 메모리 안전성을 높이기 위한 방법을 제시한다. 단순히 러스트로 코드를 전환하는 것이 아니라 '안전하지 않은(unsafe)' 코드를 없애 메모리 안전성을 더욱 강화할 수 있는 방법을 제안하는 것이 특징이다. 안전하지 않은 코드는 하드웨어 및 운영체제(OS)와 직접 상호작용하는 저수준 작업이나 성능 최적화를 위한 코드다. 이를 위해 컴파일러의 안전성 검사를 우회하거나 메모리 안전성을 수동으로 관리할 수 있는 옵션을 제공한다. 하지만 이를 잘못 사용할 경우 메모리 손상이나 보안취약점 등 잠재적인 문제를 야기할 수 있다. 연구팀은 안전하지 않은 코드를 사용하지 않기 위해 C언어의 메모리 관리 방식과 포인터 산술을 러스트의 안전한 슬라이스 및 대체 가능한 구조로 변환하는 방법을 제시했다. 연구진은 HACL스타 암호화 라이브러리 등 검증된 기존 코드베이스에 이 방법을 적용해 성능 손실 없이 러스트로 전환이 가능하다고 밝혔다. 러스트로 변환된 코드는 메모리 안전성을 보장하는 보로우 체커(Borrow Checker) 등의 기능을 활용해 C언어에서 발생할 수 있는 메모리 문제를 안전하게 처리할 수 있었다. 또 성능은 거의 그대로 유지돼 속도가 중요한 업무에도 그대로 적용 가능하다. 마이크로소프트 연구진은 "이 방법은 메모리 안전성을 보장하면서도 성능을 거의 손상시키지 않는 결과를 얻었다"며 "C언어 코드를 러스트로 전환하기 위한 실제적이고 신뢰할 수 있는 방법을 제시하며 산업 전반의 보안 문제 해결하는 데 도움을 줄 것으로 기대한다"고 논문을 통해 밝혔다.

2025.01.06 10:17남혁우

AWS, '러스트' 안전성 검증에 현상금 걸었다

아마존웹서비스(AWS)가 보다 안전한 러스트 생태계를 위해 금전적 보상안을 포함한 안전성 검증 작업을 실시한다. 21일 데브클래스 등 외신에 따르면 AWS와 러스트재단이 공동으로 '러스트표준 라이브러리 검증 이니셔티브'를 추진한다. 러스트는 메모리 안전성과 높은 성능이 장점으로 대규모 시스템 개발에서 각광받고 있다. 이에 AWS 같은 대기업들이 주도적으로 점점 더 많은 프로젝트에서 러스트를 활용하고 있다. 하지만 러스트 표준 라이브러리에는 '안전하지 않은(unsafe) 코드'가 일부 포함돼 있어 이에 대한 안전성 검증이 필요한 상황이다. 안전하지 않은 코드는 하드웨어 및 운영 체제와 직접 상호작용하는 저수준 작업이나 성능 최적화를 위해 컴파일러의 안전성 검사를 우회하거나 메모리 안전성을 수동으로 관리할 수 있는 옵션을 제공한다. 이로 인해 이를 잘못 사용할 경우 메모리 손상이나 보안취약점 등 잠재적인 문제를 야기할 수 있다. 이번 이니셔티브는 표준 라이브러리 안전성을 공식적으로 검증해 보다 신뢰할 수 있는 러스트 생태계를 만드는 것을 목표로 한다. 해당 작업은 주요 개발 커뮤니티를 중심으로 개발자들이 관련 검증을 마치면 그에 따른 보상을 지불하는 방식으로 이뤄진다. 라이브러리의 규모가 방대해 기업 단독으로 수행하기 어렵기 때문이다. AWS에 따르면 현재 표준 라이브러리에는 약 3만5천 개의 함수가 포함되어 있으며 이중 7천500개가 안전하지 않은 코드를 포함하고 있다. AWS와 러스트재단은 검증 도구, 리소스와 함께 검증을 해결한 참가자들에게 금전적 보상을 제공한다. 보상 체계에 대한 구체적인 세부 사항은 아직 공식적으로 발표되진 않았다. 참가자가 제출한 검증 결과는 러스트팀과 AWS 전문가들의 검토 후 러스트표준 라이브러리에 통합된다. AWS의 라훌 쿠마르 수석 응용 과학자 관리자는 "러스트는 안전성과 성능을 모두 제공하는 언어로, AWS는 러스트를 더욱 신뢰할 수 있도록 지원하고 있다"며 "이번 이니셔티브를 통해 러스트표준 라이브러리의 안전성을 검증하고, 개발자들이 더욱 신뢰할 수 있는 환경을 제공할 것"이라고 말했다. 러스트재단 관계자도 "이번 프로젝트는 러스트의 철학인 안전성과 커뮤니티 협력을 기반으로 하고 있다"면서 "커뮤니티의 적극적인 참여를 통해 표준 라이브러리를 더욱 안전하게 만들고, 러스트 생태계를 강화할 수 있을 것으로 기대한다"고 밝혔다.

2024.11.24 14:00남혁우

러스트 도입 효과...구글, 안드로이드 메모리 취약점 52% 감소

구글이 러스트 도입 성과를 톡톡히 보고 있는 것으로 나타났다. 29일 해커뉴스 등 외신에 따르면 구글은 러스트 전환 이후 안드로이드에서 발견된 메모리 안전 취약점 비율이 6년간 76%에서 24%로 감소했다고 공식 블로그를 통해 밝혔다. 안드로이드팀은 2019년 급증하는 메모리 취약점을 해결하기 위해 러스트 등 메모리 안전 언어 도입을 본격화했다. 비용과 복잡성이 일시적으로 증가할 것이란 예측이 나왔지만 지속해서 늘어나는 코드와 서비스 비용을 고려해 도입에 박차를 가했다. 그 결과 메모리 안전 취약성 비율은 2019년 76%에서 2024년에는 24%로 감소하며 산업 표준인 70% 대비 절반 이하를 달성했다. 이 기간 발견된 메모리 안전 취약점의 수도 223개에서 2024년 27개 미만으로 87% 이상 줄어드는 성과를 기록했다. 구글은 메모리 안전 언어로의 전환과 안전한 코딩 전략으로 전반적인 코드베이스의 보안 위험을 줄일 뿐만 아니라 확장 가능하고 비용 효율적인 환경을 확보할 수 있었다고 설명했다. 또한 이 과정에서 기존 코드를 유지한 채 새로운 기능에만 러스트와 코틀린 등을 도입하는 것 만으로도 메모리 취약점을 상당 수 낮출 수 있다는 점을 확인했다고 밝혔다. 이는 코드가 오래될수록 개선되며 안정화될 뿐 아니라 취약점 발견이 쉬운 신규 서비스로 공격자들이 집중되는 경향이 있기 때문이다. 구글 안드로이드 보안팀의 제브 벤더 스토엡 SW엔지니어는 "관찰결과 보안 취약성은 코드의 수명에 따라 반감기를 갖는다는 것을 확인했다"며 "이런 특성을 살려 모든 코드를 러스트로 대체하는 것이 아니라 C++, 코틀린을 상호 운영할 수 있는 실용적인 접근 방안을 제시하려 한다"고 밝혔다.

2024.09.29 11:18남혁우

리누스 토발즈 "러스트와 C의 논쟁은 종교적"

리눅스 커널을 만들고 프로젝트를 이끌고 있는 리누스 토발즈가 러스트와 C언어 사이의 논쟁에 대해 의견을 밝혔다. 22일 더레지스터 등 외신에 따르면 리누스 토발즈는 오스트리아 빈에서 열린 오픈소스서밋유럽 2024에서 인터뷰를 진행했다. 리누스 토발즈는 "어떤 이유에서인지 러스트와 C언어의 논쟁은 거의 종교적 색채를 띠고 있다"며 "과거 VI와 이맥스 사용자 간의 논쟁을 다시 보는 것 같다"고 평했다. VI와 이맥스는 소프트웨어(SW) 개발과 시스템 관리에 주로 쓰이는 문서편집기다. VI는 유닉스 계열 시스템 기본 편집기로 빠르고 가벼운 성능이 특징이며, 이맥스는 확장성과 커스터마이징이 우수해 다양한 용도로 사용할 수 있다. 두 편집기는 수십년에 걸쳐 폭넓게 사용되고 있지만 철학과 사용 방식이 달라 1970년대부터 사용자 사이에 지속적인 논쟁이 이어지고 있다. VI와 이맥스처럼 러스트와 C언어 역시 각자의 장점을 가지고 있지만 개발 철학이나 사용방식에 따라 의견이 엇갈리고 있다는 지적이다. 리누스 토발즈는 "분명히 러스트의 개념을 싫어하는 사람들이 있고, 자신의 영역을 침범하는 것을 싫어하는 사람도 있다"며 "일부는 몇 년간 도입 속도가 나지 않는 것을 보고 러스트 통합이 실패라고 말하기도 한다"고 말했다. 앛서 리누스 토발즈는 지난 2022년 오픈소스 서밋에서 보안 강화를 위해 리눅스 커널에 러스트를 도입할 것임을 밝혔다. 하지만 내부 개발팀 간의 지속된 의견 충돌로 인해 예상보다 작업 진행속도가 느려지고 있으며 최근엔 해당 프로젝트를 이끌던 담당자 한 명이 사임해 논란이 일기도 했다. 또 리누스 토발즈는 이번 오픈소스서밋유럽 2024에서 리눅스와 깃을 예로 들며 주목받고 화제가 되는 이슈를 따라가기보다, 개발자 스스로 기준과 목표를 세우고 실제로 의미 있는 성과를 낼 수 있는 프로젝트를 진행할 것을 권고했다. 더불어 리누스 토발즈는 러스트 도입 이유의 핵심은 C를 보완하기 위함이라고 밝혔다. 리누스 토발즈는 "C는 매우 간단한 언어로 개인적으로 C를 좋아하는 이유이자 많은 프로그래머가 C를 좋아하는 이유"라며 "하지만 간단한 만큼 실수하기 쉽다는 것도 분명한 사실로, 러스트는 그렇지 않다"고 말했다. 이어 "C언어에 익숙한 사람들이 많고, 러스트와의 차이점을 좋아하지 않을 수 있지만 괜찮다"며 "모든 개발자가 각자 특정 기술이나 도구를 선호하는 것처럼 러스트의 도입으로 커뮤니티를 활성화시킨다는 점이 가장 중요하다고 생각한다"며 의견 교류를 통한 발전의 중요성을 강조했다.

2024.09.22 09:02남혁우

안전성 논란 C++, 메모리 버그 해결 방안 제시

메모리 버그로 인한 안정성 문제로 대체가 요구되는 C++측에서 반격에 나섰다. 9일 더레지스터 등 외신에 따르면 개발 커뮤니티 C++얼라이언스는 C++의 메모리 안전성을 보장하는 '안전한 C++ 확장(Safe C++ Extensions)'기능을 제안했다. 안전한 C++은 메모리, 타입, 스레드 관련 버그를 쉽게 발견하고 해결할 수 있도록 안전성을 강화하는 것을 목표로 한다. 이를 위해 메모리 버그 위험이 없는 안전한 코드를 라이브러리로 지원하며, 러스트의 안전성 모델을 참조해 보안 취약성을 사전에 판별하고 런타임 검사, 안전한 메모리 관리 등의 기능을 추가로 제공한다. 이 제안은 C++ 언어의 안전성을 강화하기 위한 다양한 기능을 실험하고 통합하며 지속 개발 및 조정될 예정이다. C++는 1985년 컴퓨터 과학자인 비야네 스트롭스트룹이 개발한 범용 프로그래밍 언어다. 시스템 및 애플리케이션 프로그래밍 개발에 최적화되어 전 세계에서 가장 많이 쓰이는 언어 중 하나로 꼽힌다. 하드웨어 구성 요소에 대한 강력한 제어를 지원해 금융 시장의 거래 시스템과 리스크 관리 시스템 등 엔터프라이즈용 시스템과 빠른 속도와 성능을 요구하는 인공지능(AI), 데이터베이스 관리 시스템 게임 등 다양한 분야에 활용되고 있다. 하지만, 메모리 관리와 관련한 보안 취약점이 문제점으로 지목되며 러스트 등 보다 안전한 시스템 언어로 대체하려는 움직임이 늘어나는 추세다. 연초 미국 백악관 국가사이버국(ONCD)은 메모리 안전 취약점이 없는 프로그래밍 언어를 사용해 사이버 공격 위험을 줄일 것을 촉구하는 보안 보고서를 발표했다. 미국 국가안보국(NSA)도 프로그래밍 언어를 C 및 C++에서 러스트, 고(GO), C# 등으로 전환을 권장하는 지침을 제시한 바 있다. 비니 팔코 C++ 얼라이언스 사장 겸 전무이사는 "소프트웨어 보안과 안정성의 중요성이 커짐에 따라 개발자는 더 안전한 코딩 관행을 채택하라는 압력에 직면해 있다"며 "안전한 C++는 일반적인 메모리 관련 오류를 방지하는 새로운 기능을 도입해 이 중요한 필요성을 해결하는 것을 목표로 한다"고 말했다. 이어 "안전한 C++ 확장은 언어의 성능과 유연성을 유지하면서도 C++를 보다 안전하고 효율적으로 만드는 데 큰 진전을 이룬다"며 "라이브러리 추가는 개발자에게 필수 데이터 구조와 알고리즘의 강력하고 메모리 안전한 구현을 제공할 것"이라고 소개했다.

2024.09.19 10:47남혁우

"비생산적 논쟁에 지쳤다"...리눅스커널 러스트 전환 담당자 사임

리눅스 러스트 도입 프로젝트 담당자가 사임했다. 그는 C언어를 러스트로 대체하는 것에 대한 비생산적인 기술 논의에 지쳤다고 사임 의사를 밝혔다. 9일 더레지스터 등 외신에 따르면 리눅스용 러스트 프로젝트를 감독해 온 마이크로소프트의 웨디슨 알메디아 필류 소프트웨어(SW) 엔지니어가 사임을 밝혔다. 그는 리눅스 커널 개발 메일링을 통해 보낸 메시지를 통해 "프로젝트 시작 후 거의 4년이 지난 지금, 비기술적인 논쟁에 대응하기 위해 필요한 에너지와 열정이 부족하다는 것을 알게 됐다”며 “그래서 아직 에너지가 남은 사람들에게 맡기는 것이 가장 좋다고 판단했다”며 사임 이유를 밝혔다. 웨디슨 알메디아 필류는 리눅스 커널에 러스트 코드를 도입하는 '러스트 포 리눅스'를 2020년부터 주요 유지 관리자로 참여하며 프로젝트를 이끌어왔다. 이 프로젝트는 메모리 손상 버그에 취약한 C언어로 작성된 리눅스 커널의 안정성과 보안 향상을 러스트로 코드를 전환하는 것을 목표로 삼고 있다. 이러한 코드 전환은 구글, 아마존, 마이크로소프트 등 주요 빅테크를 비롯해 미 행정부에서도 추진 중인 사안이다. 하지만 테드 조 등 일부 개발자와의 마찰로 인해 해당 프로젝트의 진전이 순조롭지 않았다. 그들은 러스트가 메모리 안전성을 제공하지만, 기존 C기반 코드와의 호환성과 문제를 일으킬 수 있으며, 기존의 개발 방식과 다른 새로운 언어를 학습하고 적용하는 것에 부담을 느끼며 비생산적인 논쟁으로 도입을 반대했다고 주장했다. 또한 웨디슨 알메디아 필류는 수년 간 비기술적 분쟁에 에너지와 시간을 소모하는 것에 지쳐 프로젝트를 떠나기로 결정했다고 밝혔다. 웨디슨 알메디아 필류는 "이 프로젝트를 시작할 때 기술적인 측면에서 반발이 있을 것으로 예상했고, 결국에는 합의에 도달할 것이라는 가정 하에 그것을 극복할 의향이 있었지만 한계에 달한 것 같다”고 말했다. 이어 "이 일을 시작한 지 거의 4년이 되었는데, 커널의 미래가 메모리 안전 언어에 있다고 진심으로 믿고 있다”며 “비전가가 아니지만 리눅스가 러스트를 내재화하지 않는다면, 유닉스처럼 리눅스도 다른 커널에 밀려날지 두렵다”며 동료 개발자들이 지속해서 프로젝트를 추진해줄 것을 부탁했다.

2024.09.09 10:04남혁우

러스트, 6개월 단위 로드맵 제시...언어 신뢰성 상승 목표

프로그래밍 언어 러스트의 효율적인 업데이트와 운영을 위한 하반기 계획이 공개됐다. 18일 인포월드 등 외신에 따르면 러스트 리더십팀은 2024년 하반기(2024H2) 프로젝트 목표를 공식 홈페이지를 통해 발표했다. 이 회사의 프로젝트 목표 발표는 이번이 처음이다. 러스트의 장기적인 개발을 위한 지속 가능성을 확보하고, 커뮤니티와 함께 협력적인 방식으로 프로젝트를 발전시키기 위한 로드맵 실험의 일환이다. 리더십 팀은 프로세스가 안정적으로 진행될 경우 약 6개월 단위로 프로젝트 목표를 발표하며 운영할 계획이라고 밝혔다. 하반기에는 ▲러스트 2024 에디션 ▲비동기 ▲리눅스용 러스트의 3가지 주력 목표와 23개의 추가 목표로 총 26개가 선정됐다. 2024 에디션은 2021에디션에 이은 4번째 대규모 버전 업그레이드다. 러스트를 전반적으로 사용하기 쉽도록 불편함을 해소하고 사용성을 개선하는 것을 목표로 하고 있다. 1.85 버전으로 예정된 해당 에디션은 관련 기능 개발을 연내 마무리 후 내년 1월 3일 베타 버전을 먼저 선보이고 2월 20일 정식 버전을 출시한다는 계획이다. 러스트 팀은 비동기 프로그래밍의 개발 경험을 동기 프로그래밍 수준으로 끌어올리기 위해 다년간의 프로그램을 운영 중이다. 이를 위해 하반기에는 비동기 클로저와 Send 경계 지원 등의 기능을 추가한다. 더불어 아직 실험 단계로 여러 불안정한 기능에 의존하고 있는 리눅스용 러스트를 안정화해 리눅스 커널 등 핵심적인 프로그램에 실질적으로 사용할 수 있는 기반을 마련한다는 방침이다. 이 밖에 23개의 하반기 추가 목표에는 병렬 프론트엔드 안정화, 카고 스크립트 안정화 등 안정화 작업을 비롯해 GPU 오프로딩이나 자동 미분 등 AI 등 대규모 계산을 위한 고성능 기능 개발이 예고돼 있다. 러스트 리더십팀이 프로젝트 목표를 발표한 이유는 명확한 방향 설정을 통해 개발자와 기여자의 개발 역량을 집중하기 위한 것으로 분석된다. 더불어 체계적인 관리와 추적을 통해 프로젝트의 진행 상황을 정확하게 파악하고 작업이 일관적으로 진행될 수 있는 기반을 마련하기 위함이다. 더불어 비영리로 운영되는 러스트재단이 기업으로부터 투자를 유치하거나 개발자들에게 자금을 지원받는 과정에서 신뢰성을 제공하기 위함이다. 그동안 러스트는 높은 인기와 달리 프로젝트팀과 재단, 커뮤니티 간 불화로 인해 개발이 지연되는 등 여러 문제점이 발생했다. 지속된 갈등으로 러스트의 지원에 악영향이 발생할지 모르는 만큼 기업의 지원이 줄어들고 개발자의 이탈도 발생할 수 있다는 우려가 있었다. 이에 러스트 리더십팀의 니코 마차키스 개발자는 "프로젝트 목표는 러스트 커뮤니티의 지속 가능성을 보장하는 데에도 도움을 줄 것"이라며 "특히 프로젝트의 유지관리 상황에 확신을 주지 못해 투자유치가 어려웠던 부분에서 많은 개선이 있을 것"이라고 설명했다.

2024.08.18 10:11남혁우

KAIST, 미국 국방부가 주목한 'C-러스트' 기술 선도

컴퓨터 시스템을 작동시키기 위해서는 프로그래밍 소프트웨어 언어가 필요하다. 실행속도도 빠르고 유지보수도 쉬운 언어가 바로 C언어다. 그러나 C언오는 메모리 할당 및 관리 등에 치명적인 문제점이 있다. 이 문제를 해결하기 위해 개발된 프로그래밍 언어가 러스트다. 미국 백악관이나 국방성에서도 메모리 문제를 막기 위해 러스트같은 안전한 언어 사용을 촉구하고 있다. KAIST는 전산학부 류석영 교수 연구팀(프로그래밍 언어 연구실)이 C언어의 유니언(union)을 러스트의 태그드 유니언(tagged union)으로 변환하는 기술을 세계 최초로 개발했다고 13일 밝혔다. 유니언은 여러 종류의 데이터를 같은 공간에 보관해 메모리 효율을 높이는 C언어의 핵심 기능이다. 그러나 보관된 데이터가 어떤 종류인지 구분하지 않아 메모리 문제를 일으킬 수 있다. 태그드 유니언은 같은 공간에 보관할 수 있는 여러 종류의 데이터 중 어떤 종류의 데이터를 보관하는지 태그를 붙여서 구분하기 때문에 메모리 문제를 일으키지 않는다. 연구팀은 C언어의 유니언에 특화된 새로운 프로그램 분석 기법을 고안해 러스트의 태그드 유니언으로 자동 번역하는 데 성공했다. 러스트는 2015년부터 개발된 프로그래밍 언어다. 운영 체제, 웹 브라우저 개발 등에 쓰인다. 2022년에는 리눅스(Linux) 개발에도 공식 사용되기 시작했다. C와 달리 프로그램 실행 전에 메모리 문제를 탐지하고 예방할 수 있는 것이 특징이다. 연구진은 지난해 5월과 올해 6월 각각 C의 뮤텍스(mutex)와 출력 파라미터(output parameter)를 러스트로 변환하는 기술을 세계 최초로 개발하고, 국제 학술대회인 국제소프트웨어엔지니어링학회(ICSE)와 프로그래밍언어설계구현학회(PLDI)에서 발표했다. 뮤텍스는 프로그램 동기화에 필요한 기능이다. 출력 파라미터는 계산 결과 전달에 사용되는 기능이다. 류석영 교수는 "C언어와 러스트의 큰 간극으로 인해 세계적으로도 C-러스트 코드 번역 기술을 성공적으로 개발한 연구팀은 극소수"라며 "그마저도 포인터(pointer)를 변환하는 데 머물고 있다"고 말했다. 류 교수는 “완전한 자동 번역을 위해 아직 풀어야 할 난제가 많다"며 "후속 연구에 매진할 것"이라고 덧붙였다. 이 연구결과는 KAIST 전산학부 홍재민 석박사통합과정 학생이 제1 저자로 참여했다. 국제 학술대회인 국제자동소프트웨어엔지니어링학회(ASE)에 채택됐다. 연구는 한국연구재단 선도연구센터 및 중견연구자지원사업, 정보통신기획평가원(IITP), 삼성전자의 지원을 받아 수행됐다.

2024.08.13 12:55박희범

러스트 1.80버전 출시…리소스최적화 위한 '지연' 기능 추가

프로그래밍 언어 러스트의 신규 버전 러스트 1.80이 출시됐다. 이번 업데이트에서는 성능 최적화와 안전성 향상을 위한 '지연(Lazy)' 유형이 추가됐다. 26일 인포월드 등 외신에 따르면 러스트 개발팀은 러스트 1.80을 공식 홈페이지를 통해 공개했다. 1.80버전에서 추가된 레이지셀(LazyCell)과 레이지록(LazyLock) 등 지연 유형은 프로그램이 시작할 때나 객체가 선언될 때 바로 계산하거나 초기화하지 않는다. 실제 값에 접근할 때까지 프로세스를 미루는 방식으로 리소스 사용을 최적화할 수 있는 것이 장점이다. 프로그램 실행 도중 사용하지 않는 계산을 처리하지 않는 만큼 메모리와 CPU 낭비를 줄일 수 있는 것이 특징이다. 대규모 데이터 구조, 네트워크 연결, 데이터베이스 세션 등 초기화 비용이 많이 드는 리소스에 효율적이고 프로그램 안정성을 높일 수 있다. 레이지셀은 초기화 코드를 간결하게 유지할 수 있으며, 초기화가 필요한 시점에만 이루어지도록 보장할 수 있는 구조체로 단일 스레드 환경에서 사용하기에 적합하다. 레이지록은 멀티스레드에서 안전하게 접근할 수 있도록 설계된 지연 유형의 구조체다. 동시에 여러 스레드에서 값에 접근해야 하는 상황에서 프로그램의 안정성을 증가시킬 수 있다. 러스트의 컴파일러는 코드 컴파일 시 설정 속성인 cfg의 이름과 값이 예상과 일치하는지 자동으로 검사하는 기능이 추가됐다. 이를 통해 컴파일 과정에 설정 실수를 빠르게 발견하고 코드의 품질과 안정성을 개선할 수 있다. 또한 패턴 매칭에서 상한 범위를 제외한 범위를 표현할 수 있는 기능도 지원한다. 예를 들어, 0..10 패턴에서는 10이 포함되지 방식으로 이를 통해 사용할 수 있는 표현력을 높일 수 있다. 다만 이 기능은 아직 불안정해 추가로 활성화해야 사용 가능하다. 이 밖에도 기존 API를 개선해 안정성을 높이고 컴파일러 기능을 추가하고 호환성을 높이는 등 대거 기능개선이 이뤄졌다. 러스트 개발팀은 "러스트는 모든 사람이 안정적이고 효율적인 소프트웨어를 구축할 수 있도록 지원하는 프로그램 언어"라며 "많은 사람들의 도움이 있었기에 이번 업데이트를 수행할 수 있었다"며 업데이트를 지원해 준 참가자들에게 감사를 표했다.

2024.07.26 08:49남혁우

마이크로소프트, 러스트 재단 100만 달러 기부

마이크로소프트가 프로그래밍 언어 러스트의 발전을 위해 100만 달러를 기부했다. 최근 더뉴스택 등 외신에 따르면 러스트 재단의 전무이사이자 최고 경영자인 레베카 럼불 박사는 마이크로소프트가 지난해 12월 기부를 진행했다고 밝혔다. 러스트 재단의 플래티넘 회원인 마이크로소프트는 러스트의 성능과 안전성, 지속 가능성을 향상시키기 위해 지난해 12월 사용에 제한을 두지 않는 기부를 약속했다. 투자 계약 발표가 늦어진 이유에 대해 레베카 CEO는 재단 내에서 민주적으로 의사를 조율하는 과정에서 지연이 발생했다고 밝혔다. 지원받은 자금을 러스트 재단에서 직접 관리해야 하는 만큼 어떻게 효과적으로 활용할 것인지 신중한 검토가 필요했다는 설명이다. 레베카 CEO에 따르면 러스트 재단 이사회는 지난 1월 35만 달러를 지원받아 2년간 새로운 인프라 엔지니어를 채용을 비롯해 개발자와 관리자의 협업을 위한 시스템을 개발하고 업무 프로세스를 개선하는 데 투자할 예정이다. 남은 65만 달러는 이후 우선순위에 따라 지원한다는 방침이다. 레베카 CEO는 “마이크로소프트는 이번 지원으로 러스트 프로젝트를 지지하는 리더십 위원회의 지위에 대한 지속적인 헌신을 보여줬다”며 “러스트 재단은 이번 투자를 통해 인프라 엔지니어를 확보하고, 유지 관리를 위한 직접적인 지원 등을 이어갈 것”이라고 밝혔다. 러스트는 모질라에서 C, C++ 등의 기계어에서 발생하는 보안 결함인 메모리 버그를 해소하려는 목적으로 만들어진 프로그래밍 언어다. 안정성을 보장하면서 높은 성능의 앱을 만들 수 있어 세계적으로 빠르게 인기를 얻고 있다. 마이크로소프트를 비롯해, 구글, 아마존 등 전세계 주요 IT기업들이 보안 강화를 위해 러스트를 도입하고 있다. 미국 백악관과 국가안보국(NSA)도 러스트와 같은 메모리 안전성이 높은 언어를 사용할 것을 촉구한 바 있다.

2024.05.10 10:01남혁우

구글, 러스트가 C++보다 생산성 2배 높아

구글은 러스트가 C++보다 안정성 뿐 아니라 생산성면에서도 뛰어나다고 강조했다. 31일 더레지스터 등 외신에 따르면 구글 라스 버그스트롬 엔지니어링 이사는 런던에서 열린 러스트 네이션 UK 컨퍼런스에서 고(Go)나 C++로 작성된 프로젝트를 러스트로 전환한 경험을 발표했다. 안드로이드 플랫폼 도구 및 라이브러리 작업을 담당하는 그는 2016년 드롭박스와 2018년 피그마를 러스트로 전환했다. C++에서 러스트로 전환하는 이유는 보안 취약점의 주요 원인으로 지목되는 메모리 보안 버그를 대부분 막을 수 있기 때문이다. 마이크로소프트의 마크 러시노비치 CTO도 지난 2022년 이러한 주장을 했으며 지난달 미국 행정부도 러스트 등 메모리 안전 언어를 사용할 것을 IT기업들에 권고했다. 라스 버그스트롬은 실제 업무에서 C++ 코드를 러스트로 전환한 결과 생산성에도 큰 영향성을 미쳤다고 밝혔다. 그는 “모든 작업에서 우리는 러스트로 구축하고 서비스를 운영하거나 업데이트할 때 필요한 비용이나 노력이 절반으로 감소한 것을 확인했다”며 “대규모 팀이 굉장히 규모가 크고 위험성이 높은 코드를 다루는 우리에게는 상당히 큰 변화를 가져왔다”고 설명했다. 또한 C++ 개발자가 리스트에 익숙해지는 시간은 2~4개월 이상 소요되는 것으로 나타났다. 전체 개발자 중 3분의 1은 2개월만에 익숙해져 러스트의 생산성이 높다고 평가했으며 4개월 후에는 절반 이상이 생산성 향상을 체감한다고 답했다. 정확성 면에서도 러스트의 장점이 부각됐다. 라스 버그스트롬은 설문조사 결과 85%의 개발자들이 자신의 러스트 코드가 시스템 내 다른 코드보다 정확할 가능성이 더 높다고 확신한다며 이정도의 신뢰성은 기존에 보지 못했다고 강조했다. 다만 일부에서는 최근 러스트 강세에 대해 우려를 표하고 있다. 특히 메모리 버그는 광범위한 보안 문제 중 하나로 특정 언어를 사용하는 것 만으로 모든 보안문제를 해결할 수 있는 것처럼 알리는 것은 오히려 위험을 키울 수 있다는 지적이다. 카네기멜론 대학의 소프트웨어 엔지니어링 연구소는 모든 프로그래밍 언어에는 장단점이 있으며 프로그래밍 언어의 선택은 목적에 적합한지 여부에 따라 결정되어야 한다고 강조했다.

2024.04.01 10:39남혁우

C++ 창시자, 美 행정부 사이버 보안 권고안 반대

프로그래밍 언어 C++의 창시자 비아네 스트로브스트룹이 미국 행정부의 사이버 보안 권고안에 반대했다. 최근 인포월드 등 외신에 따르면 스트로브스트룹은 C와 C++를 그만 사용하자는 행정부의 방안을 강하게 비판했다. 그는 "정부 보고서 작성자들이 지속적으로 기능을 발전시켜온 현대 C++의 강점과 안전을 강화하기 위해 많은 개발자들이 노력을 기울이고 있다는 것을 모르고 있다는 것이 놀랍다”며 “또한 프로그래밍 언어는 모두 도구의 하나이며, 지속된 개선과 발전이 필수적이라는 인식이 필요하다”고 지적했다. 비아네 스트롭스트룹은 현재 ISO C++ 표준 위원회에서 C++의 기술표준 개발 활동에 참여하고 있다. 기술표준은 IT기술 발전으로 새롭게 등장하는 기술이나 장비 등을 효율적이고 일관되게 작성할 수 있도록 제안된다. 지난해 최신 버전인 C++23을 공개했다. 현재 차기 표준인 C++26을 개발을 위한 의견 수렴 중으로 C++의 단점으로 지적되고 있는 보안을 강화하고 병렬 처리 기능 등이 추가될 예정이다. 스트롭스트룹은 "안전성 향상은 C++ 출시 첫날부터 서비스 전반에 걸친 목표였다”며 “초창기 C++와 지금 C++을 비교하면 완전히 다르다는 것을 이해할 수 있을 것이다”라고 강조했다. 이어서 그는 “수십억 줄의 C++ 중 극히 일부만이 현대적인 지침을 따르며, 안정성을 확보하기 위해 중요하다고 여기는 요소가 서로 다르다”며 언어와 별개로 현재 개발 환경과 관련된 두 가지 안정성 문제점을 지적했다. 비아네 스트롭스트룹은 C++ 표준 위원회와 함께 이러한 문제를 해결하기 위해 노력 중이라며 단지 다른 언어로 C++를 대체하는 것은 효과적인 해결책이 아니라고 지적했다. 이달 초 미국 백악관 국가사이버국(ONCD)은 메모리 안전 취약점이 없는 프로그래밍 언어를 사용해 사이버 공격 위험을 줄일 것을 촉구하는 보안 보고서를 발표했다. 백악관은 보고서를 통해 메모리 안전성 문제를 줄이기 위해 메모리 안전 프로그래밍 언어의 채택을 강조했다. 메모리 안전성에 문제가 있을 수 있는 언어로는 C와 C++를 지목했다. 이에 대한 대안으로 러스트, 자바, 파이썬, 고 등 메모리 안전 프로그래밍 언어를 사용할 것을 권고했다.

2024.03.22 08:15남혁우

美 바이든 행정부, IT기업에 C와 C++ 폐기 촉구

미국 바이든 행정부가 사이버 공격 위험을 줄이기 위해 IT기업들에게 메모리 액세스 취약성을 유발하는 프로그래밍 언어에서 벗어날 것을 요구했다. 최근 인포월드 등 외신에 따르면 미국 백악관 국가사이버국(ONCD)은 메모리 안전 취약점이 없는 프로그래밍 언어를 사용해 사이버 공격 위험을 줄일 것을 촉구하는 보안 보고서를 발표했다. 이 보고서를 통해 바이든 행정부는 국가 사이버 보안 전략을 기반으로 사이버위협에 대응하기 위한 방식을 재조정할 필요가 있다고 지적했다. 특히 IT기업 등을 중심으로 한 기술 커뮤니티가 이러한 전략 목표를 달성하는 데 중요한 역할을 수행할 것이라고 밝혔다. 백악관은 보고서를 통해 기술 기업들이 메모리 안전 프로그래밍 언어를 채택함으로써 모든 종류의 보안 취약점이 디지털 생태계에 진입하는 것을 방지할 수 있다고 밝혔다. 보고서는 메모리 안전성 문제를 줄이기 위해 메모리 안전 프로그래밍 언어의 채택을 강조했다. 우주 시스템과 같이 메모리 안전 프로그래밍 언어를 사용하기 어려운 경우에는 메모리 안전 하드웨어와 형식적 방법을 대안으로 제시했다. 또한, 사이버 보안 품질 메트릭을 개발하고 적용하는 것의 중요성을 강조하며, 이를 통해 소프트웨어의 보안을 더욱 향상시킬 수 있다고 주장합니다. 행정부는 메모리 안전성에 문제가 있을 수 있는 언어로 C와 C++를 지목했다. 이 언어들은 시스템 프로그래밍과 고성능 응용 프로그램 개발에 널리 사용되지만, 구조적으로 해결되지 않는 메모리 버그로 인한 보안 취약점이 문제점으로 지목되고 있다. 이러한 오류에는 버퍼 오버플로우, 메모리 누수, 야생 포인터 접근, 이중 해제 등이 포함된다. 메모리 안전 프로그래밍 언어로는 러스트, 자바, 파이썬, 고 등이 알려져 있다. 러스트는 개발단계부터 메모리 안전성, 스레드 안전성 및 성능에 초점을 맞춰 제작된 것이 특징으로 컴파일 시간에 메모리 안전성 검사를 수행하여 런타임 오류를 방지한다. 인공지능(AI) 분야에서 널리 쓰이는 파이썬은 고수준의 인터프리터 언어다. 자동 메모리 관리와 쉬운 문법이 특징으로 메모리 할당과 가비지 컬렉션을 자동으로 처리한다. 자바는 안전한 메모리 접근을 보장하기 위해 포인터 대신 참조를 사용하며, 가비지 컬렉션을 통해 자동 메모리 관리를 제공한다. 구글의 고 역시 메모리 안전성을 향상시키기 위한 다양한 기능을 지원한다. ONCD 해리 코커 국장은 “우리는 사이버 공간에서 위협을 줄이고 모든 종류의 보안 취약점이 디지털 생태계에 유입되는 것을 방지해야 할 책임이 있다”며 “하지만 이를 위해선 기술커뮤니티에서 소프트웨어와 IT시스템을 메모리 안전 프로그래밍으로 전환하는 어려운 문제를 함께 해결해야 할 필요가 있다”고 강조했다.

2024.03.06 09:15남혁우

프로그래밍 언어 '러스트'…"보안 위해 쓰지만 어렵네"

개발자들 사이에서 마이크로소프트, 구글 등 주요 IT 기업을 중심으로 성장을 이어가고 있는 프로그래밍 언어 러스트를 사용하기 어렵다는 평가가 나왔다. 안정성을 위해 도입했지만, 사용이 다소 부담스럽다는 지적이다. 23일(현지시간) 인포월드 등 외신에 따르면 러스트 개발팀은 2023년 러스트 현황 조사 보고서를 최근 발표했다. 이번 보고서는 지난해 12월 18일 올해 1월 15일까지 9천710명의 러스트 개발자의 설문 조사를 기반으로 작성됐다. 러스트는 모질라에서 C, C++ 등의 기계어에서 발생하는 보안 결함인 메모리 버그를 해소하려는 목적으로 만들어졌다. 안정성을 보장하면서 높은 성능의 앱을 만들 수 있어 빠르게 인기를 얻고 있다. 보고서에 따르면 직장에서 대부분의 코딩에 러스트를 사용한다고 답한 응답자는 지난해보다 5% 늘어난 34%를 기록했다. 또한 이들 중 39%는 조직 내에 러스트를 중점적으로 다루는 부서가 마련됐으며 해당 부서에서 활동한다고 응답했다. 기업에서 꾸리는 러스트 전문 조직은 주로 서버 백엔드, 웹 및 네트워킹 서비스, 클라우드 관련 조직으로 기존 언어를 전환하거나 인프라를 구축하는 작업 등을 담당하는 것으로 나타났다. 이는 최근 급증하는 사이버공격을 방지하기 위한 보안 강화 일환으로 분석된다. 최근 구글이 안드로이드 앱에서 C++와 러스트를 함께 사용하는 방안을 연구 중이며, 마이크로소프트도 클라우드 서비스를 전환하기 위한 전담팀을 구축한다고 밝힌 바 있다. 기업에서 보안 강화를 위한 러스트 도입하는 것처럼 개발자도 이와 비슷한 인식을 가진 것으로 확인됐다. 설문조사 결과 동등한 수준의 다른 언어 코드와 비교해 러스트의 버그가 적은 경향이 있냐는 질문에 84% 이상이 동의했다. 또한 러스트를 사용하는 이유를 중복 투표가 가능한 방식으로 설문조사한 결과 상대적으로 정확하고 버그가 없는 SW가 85.8%로 1위에 올랐다. 2위는 83.3%로 성능이 차지했다. 하지만 많은 사용자들이 러스트를 사용하는 과정에서 부담을 느끼는 것으로 나타났다. 러스트의 가장 걱정되는 미래로 지목한 것이 과도한 복잡함이었으며, 20%에 달하는 응답자가 새로운 기능 업데이트를 늦춰 주길 바란다고 답했다. 구조가 복잡하고 배우기 어려운 상황에서 기능이 추가될 경우, 개발이나 운영 과정에서 혼란이 가중될 우려가 있기 때문으로 보인다. 실제로 더 이상 러스트를 사용하지 않는 주요 원인으로 어려움을 꼽은 비율이 23.6%로 3위를 기록했다. 1위와 2위는 외부요인과 더 선호하는 다른 언어가 올랐다. 이러한 이유에서 러스트를 활용한 업무도 신규 서비스나 앱 개발보다 기존에 만들어진 기능을 대체하거나 인프라 구축 등으로 제한적이었다. 개발팀에 요청하는 기능도 컴파일러 버그 수정 (68%), 런타임 성능 향상 (57%), 컴파일 시간 개선(45%) 등 신규 기능 보다 성능 관련 요구사항이 우선시됐다. 러스트는 점차 쉽고 간단해지는 신규 프로그래밍 언어 추세와는 상당히 다른 행보를 보인다. 최근 언어들이 쉽고 간단해지는 이유는 AI 등의 발전으로 시민개발자 등 비전문개발자의 진출이 늘고 있기 때문이다. 가장 많은 인기를 얻고 있는 파이썬의 경우 누구나 쉽게 활용할 수 있는 직관적인 구조가 특징으로 AI분야에서 코딩 데이터과학자를 중심으로 인기를 얻으며 폭발적인 성장을 이뤘다. 반면, 러스트는 편의성보다 C++ 등 기존에 활용하던 언어를 그대로 대체하면서도 안정성과 성능을 유지하는데 초점을 맞춘 것이 특징이다. 러스트 개발팀은 “매년 진행하는 러스트 현황 조사 결과는 러스트 프로젝트와 생태계 전반에 걸쳐 어떤 개선이 필요한지 밝히는데 많은 도움을 주는 만큼, 이를 바탕으로 개선하도록 하겠다”며 “그래도 많은 기업에서 러스트로 목표를 달성했다고 밝히고, 더 이상 러스트의 미래를 걱정하지 않는다는 응답자가 지난해 30%에서 올해 18% 줄었다는 부분에 대해 기쁘게 생각한다”고 말했다.

2024.02.25 09:59남혁우

구글, 안드로이드 앱에서 C++와 러스트 함께 쓴다

구글이 C++ 기반 안드로이드 앱의 메모리 오류를 제거하기 위해 러스트를 함께 사용하는 방안을 연구한다. 최근 뉴스택 등 외신에 따르면 구글은 러스트 재단에 100만 달러의 연구비를 지원했다고 공식 블로그를 통해 밝혔다. 이번 투자는 러스트의 코드 보안성을 높이고 C++와의 상호운용성을 개선하는 상호운용성 개선(Interop Initiative) 프로젝트에 쓰일 예정이다. 구글에서 해당 프로젝트를 진행하는 이유는 안드로이드의 프로그램 안정성을 향상시키기 위함이다. C++는 빠른 속도와 폭 넓은 활용도가 장점으로 인프라 및 시스템, 게임 등 다양한 분야에서 쓰이고 있다. 지난해 프로그래밍 언어 인기 순위인 티오베에서 1위에 오르기도 했다. 하지만 구조적으로 해결되지 않는 메모리 버그로 인한 보안 취약점이 문제점으로 지목되고 있다. 구글에 따르면 안드로이드의 심각성 높은 보안 취약점의 70%가 메모리 버그로 인해 발생하고 있다. 하지만 C++가 앱에서 차지하는 비중이 크고 주요 기능이 구현돼 있는 만큼 한번에 전환이 어려웠다. 이에 구글은 수년 전부터 업데이트를 통해 러스트 등 메모리 취약점을 해결한 프로그래밍 언어를 점차 적용하며 취약점을 줄여왔다. 이번 프로젝트도 최종적으로는 기존에 작성된 C++ 코드를 러스트로 전환하기 위한 기반 작업의 일환이다. 구글의 데이브 클라이더마흐 안드로이드 보안 및 개인정보 보호 부문 엔지니어링 부문 부사장은 “러스트를 통해 과거의 취약성 밀도 통계를 바탕으로 수많은 취약성이 안드로이드 생태계에 영향을 미치는 것을 사전에 예방했다”며 이번 투자는 플랫폼의 다양한 구성 요소에 걸쳐 러스트의 도입을 확대하는 것을 목표로 한다”고 밝혔다. 라스 베리스트롬 안드로이드 플랫폼 도구 이사 겸 러스트 재단 이사회 의장은 “소프트웨어 산업 전반에 걸쳐 메모리 안전성을 향상시키는 것은 주요 기술 과제 중 하나”라며 “커뮤니티와 업계 전반에 걸쳐 모든 사람을 위한 오픈 소스 생태계를 보호하기 위해 함께 협력할 것을 요청한다”고 말했다.

2024.02.12 10:11남혁우

마이크로소프트, 러스트로 M365 코드 재작성

마이크로소프트가 클라우드 서비스 마이크로소프트365(M365) 프로그래밍 코드를 러스트로 전환한다. 보다 높은 성능과 안정성을 확보하기 위함이다. 2일 MS파워유저 등 외신에 따르면 마이크로소프트는 M365 서브스트레이트에 러스트를 도입하기 위한 전담팀을 설립할 예정이다. M365 서브스트레이트는 팀즈, 오피스, 스카이프 등 M365에서 제공하는 서비스의 데이터를 관리하고 보안 및 기타 업무 프로세스를 돕는 클라우드 플랫폼이다. 전담팀은 C#으로 작성된 기존 코드를 러스트로 재작성하는 업무를 수행한다. 이를 위해 마이크로소프트는 대규모 서버·서비스 앱 구축에 대한 많은 경험을 보유한 러스트 및 C# 전문가를 찾고 있다고 밝혔다. 러스트로 코드를 재작성하는 이유는 보다 안전한 서비스 환경과 빠른 성능을 확보하기 위함이다. M365는 전세계 수많은 기업과 조직에서 사용하는 만큼 급증하는 부하를 줄이고, 외부 공격을 차단할 필요성이 커지고 있기 때문이다. 러스트는 모질라에서 2010년 발표한 오픈소스 개발언어다. C, C++ 등 기존 언어에서 발생하는 보안 결함인 메모리 버그를 해소하려는 목적으로 만들어져 빠른 속도와 높은 보안성이 특징이다. 마이크로소프트 외에도 아마존웹서비스, 구글 등에서 시스템 안정성을 높이기 위해 서버 인프라 운영 관리 분야 등에 도입하고 있다.

2024.02.02 09:26남혁우

  Prev 1 Next  

지금 뜨는 기사

이시각 헤드라인

K-반도체 육성, 기존 틀 깨야 불확실성 돌파…새 정부 과제 '산적'

예금자보호한도 5천만→1억…착잡한 저축은행업계

과학자들, 납으로 금 만들었다…'연금술사의 꿈' 실현되나

SKT 유심교체 누적 187만...오늘 50만명에 유심재설정 안내

ZDNet Power Center

Connect with us

ZDNET Korea is operated by Money Today Group under license from Ziff Davis. Global family site >>    CNET.com | ZDNet.com
  • 회사소개
  • 광고문의
  • DB마케팅문의
  • 제휴문의
  • 개인정보취급방침
  • 이용약관
  • 청소년 보호정책
  • 회사명 : (주)메가뉴스
  • 제호 : 지디넷코리아
  • 등록번호 : 서울아00665
  • 등록연월일 : 2008년 9월 23일
  • 사업자 등록번호 : 220-8-44355
  • 주호 : 서울시 마포구 양화로111 지은빌딩 3층
  • 대표전화 : (02)330-0100
  • 발행인 : 김경묵
  • 편집인 : 김태진
  • 개인정보관리 책임자·청소년보호책입자 : 김익현