Offcanvas
Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
Offcanvas
1111Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.

러스트

“러스트 언어 보안성 높인다”…재단에 자체 보안팀 배치

러스트 재단이 러스트(Rust) 언어의 보안 수준을 평가하고 강화하기 위해 자체적으로 보안팀을 지원하겠다고 밝혔다.    이번에 새로 생기는 러스트 보안팀은 전문 인력으로 구성됐으며, 러스트 커뮤니티를 지원하고, 프로그래밍 언어의 안정성을 높이는 데 도움을 줄 예정이다. 러스트는 기본적으로 메모리 안정성을 보장하기 때문에 보안성이 높다고 여겨지곤 하는데, 러스트 재단 이사장 벡 럼불은 “러스트 역시 다른 언어와 마찬가지로 보안 취약성이 존재할 수 있다”라며 “적극적인 사전 조치로 러스트 언어를 지속 가능하게 만들고 외부 공격으로부터 보호하겠다”라고 밝혔다.  러스트 보안팀은 오픈SSF 알파-오메가 이니셔티브(OpenSSF Alpha-Omega Initiative)와 제이프로그(JFrog)에서 지원받고 있다. 오픈SSF 알파-오메가 이니셔티브는 리눅스 재단 주도 하에 오픈소스 소프트웨어의 공급망 보안 기술을 지원하는 프로그램이다. 제이프로그는 데브옵스 플랫폼 전문 업체다. 두 프로젝트는 러스트 재단에 전문 인력을 배치하고 필요한 자원을 지원하면서 러스트 보안성을 높이는 작업에 착수한다. 초기에는 보안 감사를 진행하고 예상 위협을 모델링하면서 현 상황에서 효율적으로 보안성을 높일 방안을 찾을 예정이다. 또한 카고(Cargo) 패키지 매니저와 크레이트(Crates) 레지스트리 같은 러스트 개발 환경에서 보안성을 확보할 수 있도록 지원할 계획이다.  오픈SSF는 올해 초 ‘오픈소스 보안 모빌리제이션 방안’을 발표하고 메모리 안정성을 지원하지 않는 C나 C++ 같은 언어를 러스트나 고(Go)로 대체해서, 근본적인 보안 취약성을 제거해야 한다고 조언한 바 있다. 오픈SSF 알파-오메가 이니셔티브는 구글과 마이크로소프트에게 금전적인 후원을 받고 있으며, 오픈소스 소프트웨어 프로젝트의 보안성을 높이는 활동을 주도하고 있다.  editor@itworld.co.kr

오픈소스 러스트 보안 2022.09.14

‘편리한’ 파이썬과 ‘빠른’ 러스트를 결합하는 법

라이브러리를 활용하면 파이썬(Python)의 ‘편리함’과 러스트(Rust)의 ‘속도’를 결합할 수 있다. 대표적으로 PyO3 프로젝트와 C파이썬(cpython)을 이용하면 된다.  파이썬과 러스트는 서로 특징이 완전히 다른 언어처럼 보일 수 있다. 런타임 위에서 실행되는 파이썬은 개발자에게 유연하고 편리한 프로그래밍 환경을 제공하지만 실행 성능 측면에서는 아쉬운 점이 있다. 러스트는 속도와 메모리 안정성을 제공하지만 메모리 작업을 처리하는 과정에서 많은 수고가 필요하다.  두 언어는 사실 경쟁하는 관계가 아니다. 대신 부족한 부분을 메꿔가면 동시에 사용할 수 있다. 러스트에 파이썬의 사용 편의성을, 파이썬에 러스트의 속도와 안정성을 더할 수 있는 셈이다.  단, 두 언어의 장점을 통해 최적의 결과를 얻고 싶다면, 두 언어에 어느 정도 익숙해야 한다. 또 각 언어가 가진 철학이 많이 다르기 때문에, 둘 중 어느 것을 기본 언어로 설정할지 결정해야 한다.    PyO3로 파이썬에서 러스트 호출하기 파이썬이 기본 언어라면 러스트를 통합하는 과정은 개념적으로 파이썬을 C 언어와 통합하는 것과 동일한 방식으로 이뤄진다. C 언어로 작성된 파이썬의 기본 구현은 C 언어 또는 C와 호환되는 ABI에서 작성된 확장자를 쓴다. 러스트로 작성된 확장자도 동일한 ABI를 활용하기 자동으로 작동되는 것은 아니지만 비슷하게 진행된다. 이때 파이썬 C API에 러스트 함수 바인딩을 제공하도록 설계된 크레이트(Crate, 러스트용 코드 패키지)를 사용해야 한다.  파이썬에서 러스트 바인딩 만들기 파이썬에서 러스트 바인딩을 생성할 때는 대표적으로 PyO3를 쓴다. 러스트에서 파이썬 모듈을 작성하거나 파이썬 런타임을 러스트 바이너리에 포함하는 데 사용할 수 있다.  PyO3는 ‘마트린(Maturin)’을 활용한다. 이는 파이썬 패키징 및 바인딩으로 러스트 크레이트를 작성하는 도구다. 파이썬 가상 환경에 설치하면 마트...

파이썬 러스트 사이썬 2022.07.08

가장 인기 있는 웹어셈블리 언어는 '러스트'

웹어셈블리 앱을 개발할 때 가장 자주 사용하는 프로그래밍 언어는 러스트(Rust)인 것으로 나타났다. 전반적인 웹어셈블리 사용도 점점 늘고 있는 것으로 조사됐다. 지난 6월 20일 소프트웨어 컨설팅 업체 스콧 로직(Scott Logic)이 공개한 '웹어셈블리 현황 2022(State of WebAssembly 2022)' 보고서의 내용이다. 이 조사는 애플리케이션 개발 299명을 대상으로 웹어셈블리 개발에 어떤 언어를 사용하는지 물었다. 그 결과 45%가 러스트를 자주 혹은 가끔 사용한다고 답해 1위를 기록했다. 러스트는 지난해 조사에 이어 올해도 1위였다. 보고서는 이런 인기의 이유로 대부분 웹어셈블리 런타임이 러스트로 작성되는 점을 꼽았다. 러스트에 이어 2위는 자바스크립트였다. 자바스크립트 엔진을 웹어셈블리로 컴파일할 수 있다는 점이 주요했던 것으로 보인다. 이번 조사에서 가장 순위가 크게 오른 언어는 블래이저(Blazor)와 파이썬(Python)이었고 반대로 어셈블리스크립트(AssemblyScript)는 순위가 가장 크게 하락했다. 또한 응답자의 67%가 웹어셈블리를 자주 사용한다고 답해 지난해 47%에서 크게 오른 것으로 나타났다. 이밖에 이번 조사의 주요 결과는 다음과 같다.   웹어셈블리를 사용하는 영역으로는 웹 개발이 70%로 1위를 기록했다. 이어 서버리스(35%), 컨테이너화(25%), 플러그인 환경(23%), IoT(10%) 순이었다. 가장 널리 사용하는 웹어셈블리 런타임은 와슴타임(Wasmtime), 와스머(Wasmer), 와슴3(Wasm3)이었다. 웹어셈블리가 더 발전하기 위해 가장 필요한 기능으로는 비 브라우저 API, 강화된 디버깅 지원, 제작 툴 개선 등이 꼽혔다. WASI(WebAssembly System Interface) 중에서 응답자가 가장 흥미롭다고 꼽은 것은 I/O, 소켓, 파일시스템, 네이티브 스레드, HTTP 순이었다. editor@itworld.co.kr

러스트 Rust WebAssembly 2022.06.24

“개발자 85%는 원격근무 중”

스택 오버플로우(Stack Overflow)의 ‘2022 개발자 설문조사(2022 Developer Survey)’ 결과에 따르면 대부분의 개발자가 원격에서 작업하고 있으며, 좋아하는 기술을 쓸 수 있는 유연한 환경을 선호하는 것으로 나타났다.  대부분의 소프트웨어 개발자는 현재 적어도 일정 시간 원격근무를 하고 있으며, 작업 환경의 유연성이 그 어느 때보다 중요하게 여겨지고 있다. 한편 2022년 5월 스택 오버플로우 개발자 설문조사에는 전 세계 180개국 총 7만 3,268명이 참여했다.    개발자 채용 및 유지의 새로운 법칙 지난 2020년, 완전히 원격근무로 전환해야 했던 개발자 팀이 많았다. 이번 보고서에 의하면 약 85%의 개발자는 소속 조직이 완전(42.98%) 또는 최소한 부분적으로(42.44%) 원격근무를 하고 있다고 답했다. 대기업일수록 완전 원격근무보다는 하이브리드 근무를 하는 경향이 컸다. 스택 오버플로우의 CEO 프라샨트 찬드라세카는 인포월드와의 인터뷰에서 “전 세계가 하이브리드 및 원격근무로 가고 있다. 이번 데이터는 기차는 이미 떠났다는 사실을 보여준다. 작업 환경의 유연성 그리고 개발자가 쓰게 될 기술 스택은 직장 만족도에 가장 큰 영향을 미치는 요소인 것으로 조사됐다. 많은 개발자가 작업하게 될 기술 스택 때문에 채용 과정에서 중도 하차한다”라고 말했다. 한편 프리랜서 또는 개인 비즈니스를 하는 개발자가 작년보다 5%P 증가한 17%를 기록했다. 이 밖에 조직 문화도 변화하고 있으며, 클라우드 네이티브 기술이 인기를 끌었다. 대부분의 개발자의 현재 CI/CD(69.79%)를, 데브옵스 기능(59.35%), 자동화된 테스트(58.09%)를 사용하고 있다고 밝혔다. 하지만 필요한 도구 및 서비스를 쉽게 찾을 수 있는 내부 개발자 포털을 가지고 있다고 말한 개발자는 전체 응답자의 38%에 그쳤다. 아울러 내부 리소스 기술을 사용하여 코드와 지식을 공유한다고 답한 개발자도 16%에 불과했다. &nbs...

소프트웨어 개발자 스택 오버플로우 개발자 설문조사 2022.06.24

깃허브, 러스트 언어용 공급망 보안 도구 추가

깃허브의 여러 공급망 보안 기능을 러스트 카고(Rust Cargo) 파일에 사용할 수 있게 됐다. 자문 데이터베이스(Advisory Database), 디펜더봇 경보(Dependabot Alerts), 디펜던시 그래프(Dependency Graph) 등의 활용처가 넓어진 셈이다.   깃허브가 러스트(Rust) 언어를 위한 일련의 공급망 보안 기능을 추가했다. 요즘 성장세를 타고 있는 러스트 개발자가 보안 취약성을 발견하고 예방할 수 있도록 지원하기 위해서다. 여기에는 깃허브 자문 데이터베이스가 포함된다. 이 데이터베이스는 400개 이상의 러스트 보안 권고 사항, 디펜더봇 경보 및 업데이트, 디펜던시 그래프를 지원하며, 러스트 카고 패키지 파일의 취약한 의존성에 대한 경고를 제공한다. 깃허브 자문 데이터베이스는 개발자가 조치를 취할 수 있는 취약점 정보를 제공하는 보안 데이터베이스이다. 데이터베이스에 기재된 취약점 대부분은 러스트 라이브러리와 관련된 보안 권고 사항을 게재하는 러스트섹(RustSec)에서 제공한다. 러스트 패키지 메인테이너는 보안 권고 사항을 참고해 취약점을 공개적으로 발표하기 전에 제보자와 협력한 뒤 서로 논의을 거쳐 취약점을 수정할 수 있다. 개발자는 커뮤니티 기여를 통해 러스트 취약점을 CVE(Common Vulnerabilities and Exposures)로 보고할 수 있다.  깃허브 디펜던시 그래프는 저장소의 Cargo.toml 및 Cargo.lock 파일을 분석해 프로젝트의 의존관계를 판단한다. 디펜더봇은 이 디펜던시 그래프를 이용해 개발자에게 알려진 취약성을 경고하고 풀 요청(pull request)을 생성해 영향을 받는 의존성을 업데이트한다. 디펜던시 그래프는 공용 저장소에서 사용하도록 기본 설정되지만, 개인 저장소에서 사용하려면 따로 설정해야 한다.  깃허브는 공용 저장소의 디펜던시 그래프가 아직 업데이트되지 않았다면 곧 업데이트되는 모습을 확인할 수 있을 것이라고 밝혔다....

러스트 깃허브 자문데이터베이스 2022.06.09

"개발 언어 지배자는 여전히 자바스크립트와 파이썬"

개발자의 언어 선호도에서 자바스크립트와 파이썬의 강세가 계속되고 있다. 러스트의 상승세도 만만치 않은 것으로 나타났다. 이는 지난 4일 공개된 '개발자 현황 22번째 에디션(State of the Developer Nation, 22nd Edition)'의 주요 내용이다. 이 보고서는 시장조사업체 슬래시데이터(SlashData)가 2021년 12월부터 올해 2월까지 전 세계 166개국 2만 명 이상의 개발자를 설문한 결과다.   보고서를 보면, 자바스크립트는 가장 선호하는 언어로 선정됐다. 슬래시데이터는 이 조사를 1년에 2~3번 정도 진행하는데, 자바스크립트는 최근 12번의 조사에서 연속으로 1위를 차지했다. 전 세계적으로 약 1,750만 명이 사용하고 있고, 자바스크립트 커뮤니티 역시 수년간 지속해서 성장하고 있다. 2위는 파이썬이었다. 2년 전 자바를 앞지른 이후 선두권을 계속 유지하고 있다. 전 세계 사용자 수는 1,570만 명으로, 불과 6개월 사이에 330만 명이나 늘어났다.   상승세를 보면 러스트가 눈에 띈다. 지난 2년 사이 사용자 수가 거의 4배 늘었다. 2020년 1분기 60만 명이었는데, 2022년 1분기에는 220만 명이 됐다. 러스트 파운데이션의 상임이사 레베카 럼블은 "보안과 메모리 안전성 등의 장점 때문에 러스트 사용자가 크게 늘었다. 메인터이너와 컨트리뷰터 커뮤니티가 포괄적이고 협력적인 것도 장점이다. 또한 러스트 개발자에 대한 수요가 계속해서 늘고 있으므로 직업적 전망에서도 좋은 언어다"라고 말했다. 보고서는 러스트가 주로 IoT 프로젝트는 물론 증강, 가상현실 개발에서도 널리 사용되고 있다고 분석했다.   이밖에 보고서의 주요 내용은 다음과 같다.   자바는 강력하고 안정적으로 성장하고 있다. 2021년 이후 거의 500만 명의 개발자가 자바 커뮤니티에 합류했다. PHP는 지난 6개월간 꾸준히 성장해 2021년 3분기에서 2022년 1분기 사이에 60만 명이 증가했다. PHP는 웹 ...

자바스크립트 파이썬 러스트 2022.05.20

안드로이드 개발 언어에 '러스트' 추가… 고질적인 C/C++ 메모리 버그 잡는다

안드로이드 오픈소스 프로젝트가 안드로이드 모바일 OS 개발 언어에 러스트(Rust)를 추가했다. 그동안 OS 개발 작업에서 C/C++가 맡던 부분을 러스트가 맡게 되는데, 이를 통해 메모리 버그를 해결할 것으로 기대하고 있다.   4월 6일 구글 블로그에 따르면, 안드로이드팀은 그동안 안드로이드 내 코드 정확성의 최우선 순위에 보안과 안정성, 품질을 뒀다. 안드로이드에서 고위험 보안 취약점의 약 70%를 차지하는 메모리 세이프티 버그는 안정성 이슈의 주요 과제 정도로 다뤘고, C와 C++의 세이프티 버그는 가장 까다로운 문제로 계속 남아 있었다. 이런 가운데 러스트가 돌파구를 마련할 것으로 기대된다. 안드로이드팀에 따르면, 러스트는 컴파일 시간 체크를 이용해 객체 라이프타임을 강제로 확인하는 방식으로 메모리 액세스가 유효함을 검증하고 결과적으로 메모리 세이프티를 보증한다. C나 C++에 버금가는 성능을 제공하면서 이런 세이프티를 달성한다는 장점도 있다. 러스트는 자바, 코틀린과 함께 안드로이드 OS 개발에서 사용하는 메모리-세이프 언어로 추가됐다. 안드로이드 OS는 플랫폼의 상당 부분에서 메모리 버그를 막는 데 자바를 사용하지만, 자바나 코틀린 모두 OS의 더 낮은 레이어에서는 쓸 수 없는 한계가 있었고, 이들 레이어에서는 C, C++ 같은 언어를 사용했다. 그러나 이제 리소스가 제약된 환경에서 러스트가 C, C++ 대신 예측 가능한 성능을 제공할 수 있게 됐다. 또한 그동안 개발자가 C와 C++를 이용할 때는 메모리 라이프사이클을 직접 관리해야 했는데 이 과정에서 실수가 발생하기 일쑤였다. 특히 복잡한 멀티스레드 코드베이스에서 작업할 때 오류가 많았다. 하지만 러스트는 메모리 사용을 자동으로 관리하므로 이런 실수를 크게 줄일 수 있다. C와 C++는 모두 러스트에 비해 메모리 세이프티 보증이 취약하고 강력한 격리 작업이 필요하다. 모든 안드로이드 프로세스는 샌드박스로 처리되는데, OS 개발팀은 코드 세이프티를 위해 '2의 룰(rule of...

러스트 C C++ 2021.04.12

"러스트"와 "고"를 선택하는 방법

10년이 채 되지 않는 기간 동안 2개의 새로운 프로그래밍 언어가 엔터프라이즈 개발의 주요 언어로 부상했다. 구글에서 만들어진 고(Go), 모질라에서 탄생한 러스트(Rust)다. 2개의 언어 모두 현대 소프트웨어 개발의 필수 요소인 정교하고 통합된 툴체인, 메모리 안전성, 오픈소스 개발 모델, 강력한 사용자 커뮤니티를 제공한다. 이렇게 비슷한 부분을 제외하면 러스트와 고는 서로 극명하게 다른 언어다. 서로 다른 목적으로, 다른 요구를 해결하고 다른 종류의 프로그램을 작성하도록 만들어졌다. 따라서 러스트와 고를 비교할 때는 어느 언어가 '객관적으로 더 우수한가'가 아니라, 주어진 프로그래밍 작업에서 '어떤 언어가 더 적합한가'의 시각에서 봐야 한다. 이를 염두에 두고 러스트와 고의 주요 차이점과 각 언어가 적합한 작업의 종류에 대해 살펴보자. 성능 측면에서의 러스트 vs. 고  러스트의 대표적인 장점은 안정성, 사용의 용이함과 함께 성능인데, 이 가운데서도 성능을 가장 큰 장점으로 볼 수 있다. 러스트 프로그램은 메모리 취급 및 처리를 위한 러스트의 제로 코스트(zero-cost) 런타임 추상화 덕분에 C 및 C++와 대등하거나 거의 근접한 속도로 실행된다. 물론 러스트 프로그램도 어떻게 작성되느냐에 따라 느려질 수 있지만, 최소한 러스트는 안전이나 편리함을 위해 선택의 여지없이 성능을 희생하지는 않는다. 러스트의 비용이라면 개발자가 메모리 관리를 위한 러스트의 추상화를 배우고 마스터해야 한다는 점이다.  반면 고는 개발자 편의성을 위해 어느 정도의 런타임 속도를 희생한다. 메모리 관리는 고 런타임이 담당하므로 런타임 관련 오버헤드가 필연적으로 발생한다. 그러나 많은 시나리오에서 이 타협은 무시해도 되는 수준이다. 고는 프로그래머가 모든 객체에 대해 강력한 형식을 요구해야 한다는 작은 대가를 치르는 대신 기본적으로 파이썬(Python)과 같은 다른 편의성 중심 언어에 비해 몇 배 더 빠른 속도를 제공한다(파이썬의 편리성과 유연성에는...

러스트 Go 2021.03.16

마이크로소프트, 러스트 언어 팀 구성 중

마이크로소프트는 내부 제품군을 위한 러스트(Rust) 컴파일러 및 도구를 지원하고 러스트 소프트웨어 개발자 커뮤니티와 협력하기 위해 자체 러스트 팀을 만들고 있다.    마이크로소프트의 러스트 팀은 마이크로소프트 내에서 러스트 사용을 지원하는 한편, 컴파일러, 핵심 도구, 설명서 및 언어의 다른 측면에 대해 긴밀하게 작업하면서 러스트 커뮤니티에 참여할 기회를 모색할 계획이라고 공식적으로 밝혔다.  마이크로소프트 측은 “모질라(Mozilla)가 후원하는 러스트 언어는 보안과 신뢰 측면에서 강점이 있어 안전한 고성능 소프트웨어 시스템을 개발할 수 있다”라고 말했다. 마이크로소프트는 마이크로소프트 개발자 부서와 협력해 윈도우 및 리눅스의 내부 제품군을 위한 러스트 컴파일러 및 도구를 개선할 소프트웨어 엔지니어 구인 광고를 게시했다.  마이크로소프트는 러스트 개발 언어에 큰 관심을 갖고 있으며, 러스트를 사용해 새로운 구성 요소를 만들고 기존 구성 요소를 재작성하는 방법을 모색하고 있다. 마이크로소프트는 윈32 메타데이터(Win32 Metadata) 프로젝트를 통해 러스트와 다른 언어에서 윈도우 API에 더 쉽게 접근할 수 있도록 하는 것을 목표로 한다.   러스트는 런타임 속도, 메모리 안전성, 병렬 처리를 위해 설계됐으며, 서보(Servo) 브라우저 엔진과 디노(Deno) 자바스크립트/타입스크립트 런타임과 같은 프로젝트에 사용되어 왔다. 현재 Pypl 지수에서 16위를 차지하고 있다. editor@itworld.co.kr 

러스트 마이크로소프트 모질라 2021.02.03

C 언어, 두 달 연속 인기 언어 1위…20위 첫 진입 러스트도 주목

C 프로그래밍 언어가 티오베(Tiobe) 개발언어 인기 인덱스에서 두 달 연속 1위를 차지했다. 하지만 2020년 6월 순위에서 오히려 더 주목을 받는 것은 처음으로 20위 권에 들어온 러스트(Rust)이다.   모질라 프로젝트인 러스트는 0.64%의 점수로 20위에 올랐는데, 1년 전인 2019년 6월 순위는 39위였다. 티오베는 인기 검색엔진의 검색률을 조사하는 공식을 기반으로 개발언어의 인기도를 측정한다. 티오베 소프트웨어 CEO 폴 얀센은 러스트를 “제대로 된” 시스템 프로그래밍 언어라며, “러스트는 자랑거리가 많고 첨단 기능도 많은 다른 개발언어에 해답을 제시했다”고 평가했다. 한편 러스트는 최근 발표된 스택 오버플로의 연례 개발자 서베이 결과에서도 “가장 많은 사랑을 받은” 개발 언어로 선정됐다. 5월 티오베 인덱스에서 5년 만에 처음으로 자바를 1위 자리에서 밀어낸 C 언어는 6월에도 상승세를 이어가고 있는데, 지난 달 티오베는 코로나19 팬데믹과 C가 의료 기기에 많이 사용되고 있음을 이유로 제시한 바 있다. 2020년 6월 티오베 인덱스 상위 10위는 다음과 같다. 1. C, 17.19% 2. 자바, 16.1% 3. 파이썬, 8.36% 4. C++, 5.95% 5. C#, 4.73% 6. 비주얼 베이직, 4.69% 7. 자바스크립트, 2.27% 8. PHP, 2.26% 9. R, 2.19% 10. SQL, 1.73% editor@itworld.co.kr

티오베 개발언어 인기도 2020.06.03

스위프트, 러스트, 클랭을 떠받치는 힘, LLVM 알아보기

새로운 언어와 함께 기존 언어의 개선도 개발 환경 전반적으로 급속도로 확산되고 있다. 모질라 러스트(Rust), 애플의 스위프트(Swift), 젯브레인스의 코틀린(Kotlin), 그리고 다른 많은 언어가 개발자에게 속도, 안전, 편의성, 이식성, 성능에 대한 새로운 여러 선택권을 제공한다.   왜 지금일까? 한 가지 중요한 이유는 언어를 구축하기 위한 새로운 툴, 특히 컴파일러에 있다. 그 중에서 선두는 스위프트 언어를 만든 크리스 래트너에 의해 일리노이 대학 연구 프로젝트로 처음 개발된 오픈소스 프로젝트, LLVM이다.   LLVM은 새로운 언어를 만들기 쉽게 해줄 뿐만 아니라 기존 언어의 개발도 강화한다. 언어를 만들 때 가장 힘든 부분인 컴파일러 만들기, 산출된 코드를 여러 플랫폼과 아키텍처로 이식하기, 벡터화와 같은 아키텍처별 최적화 생성하기, 그리고 예외와 같은 일반적인 언어 메타포를 처리하는 코드 쓰기의 상당부분을 자동화하는 툴을 제공한다. 또한 진보적인 라이선스 덕분에 소프트웨어 구성요소로 자유롭게 재사용하거나 서비스로 배포할 수 있다.   여러 유력 언어가 LLVM을 활용한다. 애플의 스위프트 언어는 LLVM을 컴파일러 프레임워크로 사용하며, 러스트는 LLVM을 툴 체인의 핵심 구성요소로 사용한다. 또한 많은 컴파일러에 LLVM 에디션이 있다. C++ 컴파일러인 클랭(그래서 “C-lang”이라는 이름이 붙음)은 그 자체가 LLVM과 긴밀히 연계된 프로젝트다. 닷넷 구현인 모노(Mono)에는 LLVM 백엔드를 사용해 네이티브 코드로 컴파일하는 옵션이 있다. 명목상 JVM 언어인 코틀린은 LLVM을 사용해 기계 네이티브 코드로 컴파일하는 코틀린 네이티브라는 이름의 버전을 개발 중이다.   LLVM의 정의 LLVM은 기본적으로 기계 네이티브 코드를 프로그램에 따른 방식으로 만들기 위한 라이브러리다. 개발자는 API를 사용해서 중간 표현(IR, intermediate representation)이라는 형식으로 명령어를...

스위프트 러스트 LLVM 2020.03.13

“배우기 어렵지만 빠르다” 러스트 언어가 뜨는 이유

아직 한 번도 러스트(Rust)로 무엇인가를 작성해 본 적이 없을지 모르지만, 조만간 모질라가 만든 이 시스템 수준 프로그래밍 언어를 사용할 가능성이 크다. 스택 오버플로우(Stack Overflow)의 2019년 개발자 설문조사에서 러스트는 “가장 사랑받는” 언어로 선정됐다. 반면에 레드몽크의 연례 개발언어 순위에서는 20위 밖(21위를 기록)에 머물렀다. “사용하기 어렵고 러스트가 내세우는 메모리 안정성과 정확성에 실망”했다는 러스트 사용자의 일반적인 평가를 생각하면, 높은 순위가 아닐 수 없다.    그렇다면 러스트는 왜 배우기 어려우면서도 사랑을 받을까? 개발자들과 대화를 나눠보면, 이유는 러스트가 “가드레일이 있는 시스템 프로그래밍 언어”이기 때문으로 보인다.  대부분 개발자가 보통은 시스템 프로그래밍 영역에는 발을 들이지 않는다. 예를 들어, 애플리케이션 개발자는 기반 하드웨어에 접근할 필요가 없는 것이 일반적이다. 다른 소프트웨어를 구동하는 플랫폼을 구축하는 일도 거의 없다. 하지만 C나 C++ 같은 저수준 프로그램 언어를 사용하는 개발자에게 러스트는 묵시록과 같다. C++에서나 하던 수동 메모리 관리를 하면서 마치 고수준 개발 언어 같은 느낌을 준다. 개발자 데이빗 바스키는 러스트의 매력을 다음 몇 가지로 제시했다. -    성능. 러스트는 C/C++가 번창했던 영역에서 이들 언어를 대체할 수 있다. “예를 들어, 지연에 민감한 네트워크 서비스용으로 가비지 컬렉션이 없는 러스트의 런타임은 거의 없는 듯한 지연 시간을 낳는다.” -    안정성. “러스트의 입력 시스템과 바로우 체커(borrow Checker)는 파이썬이나 자바, C++에서 정상으로 받아들여지는 모든 등급의 버그를 방지해 준다. -    개발자 생산성. “카고(Cargo)와 빌드 툴, 패키지 관리자는 지금까지 사용한 것 중 최고의 빌드 시스템 및 패키지 관리자 중 ...

커뮤니티 러스트 시스템프로그래밍 2019.11.06

C 프로그래밍 언어가 여전히 최고인 이유 : 개발언어 일대일 비교

어느 기술이든 다른 기술보다 어떤 일을 특별히 잘 하지 않는 50년 이상 살아남을 수는 없다. 더구나 컴퓨터 기술이라면 두 말할 필요도 없다. 그런데 C 프로그래밍 언어는 1972년부터 사용되기 시작해 소프트웨어로 움직이는 지금 시대에도 핵심적인 구성요소 중 하나로 확고히 자리를 잡고 있다. 그러나 사람들이 굳이 대체할 필요성을 느끼지 못하는 이유로 장기간 생존하는 기술도 있다. 지난 수십년 동안 다른 많은 언어가 나타났고, 그 중에서는 노골적으로 C의 아성에 도전한 언어도 있다. 일부는 인기를 끌면서 C의 자리를 가장자리부터 조금씩 갉아먹기도 했다.   C를 대체해야 할 필요성을 주장하기는 어렵지 않다. 프로그래밍 언어에 대한 연구, 소프트웨어 개발 관행, 모두 C보다 훨씬 더 나은 방법이 있다. 그러나 수십년에 걸친 연구개발이 뒷받침하는 C의 위상에는 변함이 없다. C는 성능, 기계적 호환성, 보편성 면에서 다른 언어에 비해 월등히 뛰어나다. 다른 주요 언어와 C를 비교해 보는 것도 나름 의미 있는 일일 것이다.   C vs. C++  C의 가장 흔한 비교 상대는 당연히 C++다. 이름에서 알 수 있듯이 C++는 C의 확장판으로 개발됐다. C++가 C와 다른 점을 요약하자면 광범위함, 또는 받아들이는 사람에 따라서는 과잉이라고 할 수 있다. 구문과 접근 방식은 C와 비슷하지만 C++에는 네임스페이스, 템플릿, 예외, 자동 메모리 관리 등 C에서 기본적으로 제공하지 않는 정말로 유용한 기능도 많다. 데이터베이스나 머신 러닝 시스템과 같이 최상급 성능을 요구하는 프로젝트는 시스템의 모든 성능을 남김없이 활용하기 위해 C++의 이러한 기능을 사용해서 작성되는 경우가 많다. 또한 C++는 C에 비해 훨씬 더 적극적으로 확장을 지속하고 있다. 곧 나올 C++ 20은 모듈, 코루틴, 동기화 라이브러리, 템플릿을 더 쉽게 사용할 수 있게 해주는 개념을 비롯해서 더욱 많은 기능을 새롭게 제공한다. 반면 C 표준의 최신 리비전을 보면 추...

자바 닷넷 파이썬 2019.06.21

2018 최고의 오픈 소스 소프트웨어 : 소프트웨어 개발

스마트 계약, 비집중화 앱(Decentralized Application, DApp), 소형 프레임워크, 수치 연산에 대한 새로운 접근방식, 로우 레벨 코드 등 소프트웨어 개발 분야는 절대로 변화를 멈추지 않는다. 2018 최고의 오픈소스 소프트웨어 대상 소프트웨어 개발 부문은 애플리케이션을 개발하는 방법을 바꾸고 있는 언어, 프레임워크, 툴이 차지했다.  editor@itworld.co.kr

닷넷코어 코틀린 러스트 2018.10.01

2017년 최고의 오픈소스 소프트웨어 : 소프트웨어 개발 툴

올해 오픈소스 소프트웨어 개발 툴 중에는 JVM을 수용한 개발자, IoT 개발자, 웹 개발자, 네이티브 개발자, 더 나아가 블록체인을 갈망하는 개발자들을 위한 도구들이 주목을 받았다. 2017년 개발자를 만족시킨 플랫폼, 프레임워크, 프로그래밍 언어, 기타 도구들을 소개한다. editor@itworld.co.kr

리액트 블록체인 이더리움 2017.10.10

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2022 International Data Group. All rights reserved.