반응형
반응형

[Just Do Rust - 러스트 기초부터 고급까지](https://wikidocs.net/book/16747)

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

 

C언어를 처음 접한 것이 1990년입니다. 이후, C++/C#, Java, VBA, Python 등의 언어를 사용했고, 요즘 관심있는 언어가 Rust입니다.

관심 가지는 이유는 C언어의 성능과 Java나 Python 같은 안정성과 편리성을 가지고 있기 때문입니다. 특히, NSA(미국 국가안보국)에서 메모리 안전 문제로 C나 C++ 대신에 Rust와 같은 안전한 언어를 사용하도록 권고 했기에, 미국을 중심으로 기존의 C/C++로 된 코드를 Rust로 바꾸는 작업이 이루어지고 있고, 안전성이 요구되는 프로그램은 Rust로 개발되는 추세여서, 앞으로 Rust 언어의 활용이 많아질 것으로 보이기 때문입니다.

NSA가 권고하는 메모리 안전한 언어Python, Java, C#, Go, Delphi/Object Pascal, Swift, Ruby, Rust, Ada

성능까지 고려하면 Rust가 거의 유일한 C/C++ 대체 언어

필자가 생각하는 향후 Rust가 각광 받을 분야는,

  • 웹서버: 안전성과 성능이 좋아서, 현재 Java로 되어 있는 웹서버쪽은 Rust로 많이 전환될 것으로 예상
  • 암호 라이브러리: C/C++로 되어 있는 암호 라이브러리는 항상 Buffer overflow의 위험을 내재하고 있습니다. 이 부분도 Rust로의 전환이 예상됩니다.
  • 소형 기기 펌웨어: 구글은 이미 Android Virtualization Framework를 Rust로 포팅함. 대부분 C/C++로 작성되어 있어 메모리 안전성이 문제되는 펌웨어 단 모듈들은 Rust로 바꿔질 것임

성능도 좋고 안전하기도 한, 두 마리 토끼를 다 잡은 대신에, Rust 언어를 배우기는 쉽지 않습니다. 안전한 메모리 처리를 위해서 Rust에서 컴파일 전에 체크하는 '소유권', '에러처리', '타입 체크' 등을 개발자가 알아서 코드에 반영해야하기 때문입니다. 그렇지 않으면 아예 컴파일이 되지 않습니다. Java나 파이썬을 배우는 것 대비 2~3배 정도는 시간을 더 들여야 Rust에 익숙해질 것입니다.

이 책은 한국에 있는 개발자를 대상으로 Rust 언어를 보다 쉽게 익숙하게 익힐 수 있도록 제작되었습니다.

효율적으로 공부할 수 있도록, 실제 꼭 알아야하는 부분만을 추릴려고 노력했습니다. 따라서, 이 책에서는 Rust에서 제공하는 모든 내용을 담지는 않습니다. 메뉴얼이 아닙니다.
그러나, 꼭 필요한 부분은 가능한 자세하고 깊게 설명합니다.

 

 

챕터 내용을 익히는데 좀 더 도움이 되도록 챕터 내용을 그대로 따라 해볼 수 있는 유튜브 영상 링크입니다.

https://youtu.be/kPLuJgkpYVY

 

반응형
반응형

[python] python, rust 의 관계

 

파이썬(Python)과 러스트(Rust)는 서로 경쟁 관계라기보다는 상호 보완적인 관계에 가깝습니다. 두 언어는 설계 철학부터 특징까지 매우 다르며, 각각의 강점을 활용해 시너지를 낼 수 있습니다.

 

 

두 언어의 근본적인 차이점

특징 파이썬(Python) 러스트(Rust)
언어 레벨 고수준 언어 (High-level) 저수준 언어 (Low-level)
컴파일 방식 인터프리터 방식 (실행 시 해석) 컴파일 방식 (실행 전 기계어로 변환)
타입 시스템 동적 타입 (Dynamic) 정적 타입 (Static)
메모리 관리 자동 (가비지 컬렉터) 수동 (소유권 시스템)
주요 강점 생산성, 쉬운 문법, 방대한 라이브러리 성능, 안정성, 메모리 안전성
주요 단점 느린 속도, 높은 메모리 사용량 어려운 학습 곡선, 긴 개발 시간

 

상호 보완적인 관계: 왜 함께 사용하는가?

파이썬은 개발 속도가 빠르고 배우기 쉬워 전체 애플리케이션의 뼈대를 만드는 데 탁월합니다. 하지만 속도가 중요하거나 복잡한 계산을 처리해야 하는 작업에서는 성능의 한계가 명확합니다.

바로 이 지점에서 러스트가 파이썬의 단점을 완벽하게 보완해 줍니다. 러스트는 뛰어난 성능과 메모리 효율성을 자랑하므로, 파이썬으로 만든 애플리케이션의 '병목 현상(bottleneck)'을 해결하는 데 이상적입니다.

예시: 파이썬으로 웹 서버를 구축했다고 가정해 봅시다. 웹 서버의 전체적인 로직은 파이썬으로 빠르게 개발할 수 있습니다. 그러나 특정 요청을 처리하는 과정에서 데이터 분석이나 복잡한 이미지 처리와 같은 고성능 작업이 필요할 수 있습니다.

이 경우, 해당 고성능 작업 부분만을 러스트로 작성합니다. 러스트는 이 작업을 매우 빠르게 처리하고, 그 결과를 다시 파이썬으로 전달해 줍니다. 이렇게 하면 파이썬의 빠른 개발 생산성러스트의 탁월한 실행 속도를 모두 얻을 수 있습니다.

실제 협업 방식

러스트로 작성된 코드는 '파이썬 모듈' 형태로 컴파일될 수 있습니다. **PyO3**나 **rust-cpython**과 같은 라이브러리를 사용하면, 러스트의 함수나 클래스를 마치 파이썬 함수처럼 호출할 수 있는 모듈을 쉽게 만들 수 있습니다.

즉, 러스트는 파이썬의 '성능을 위한 보조 도구' 역할을 하며, 파이썬 생태계에 새로운 가능성을 불어넣고 있습니다.

 

 

 

러스트 재단에서 개발되고 있는 메모리 안전성과 성능 및 편의성에 중점을 둔 프로그래밍 언어이다. 가비지 컬렉터 없이 메모리 안전성을 제공하는 대표적인 언어다. C++의 대체재로서 등장했다.

https://youtu.be/5C_HPTJg5ek

 

반응형
반응형

Rust, Python, TypeScript: 새로운 프로그래밍 3대장(Trifecta)

 

 

  • Rust, Python, TypeScript가 앞으로 소프트웨어 개발의 중심 언어로 부상할 것으로 예상됨
  • AI 코딩 도구의 보편화로 인해 개발자의 언어 충성도가 약화되고, 실용적이고 생태계가 강한 언어가 선택받게 됨
  • 아이디어 중심 프로그래밍(idea-oriented programming) 패러다임이 등장, 개발자는 설계와 검토에 집중하고 구현은 AI에게 맡기는 구조로 변화함
  • 이 세 언어는 고급 타입 시스템 강력한 패키지 매니저 생태계를 모두 갖추고 있어, AI 활용과 협업, 오류 방지에 유리함
  • 에러 메시지 품질, 생태계, 플랫폼 연계성 등도 점점 더 중요한 기준이 되고 있음

Rust, Python, TypeScript가 떠오르는 이유

  • Rust는 시스템 소프트웨어, 고성능이 필요한 영역, 타입 안전성과 메모리 효율성이 탁월함
  • Python은 실험·프로토타이핑·수학/과학 라이브러리 활용에 최적, 빠르게 아이디어를 검증 가능
  • TypeScript는 웹, 브라우저, 다양한 플랫폼에 바로 적용 가능하며, 강력한 타입 시스템과 npm 생태계로 확장성 확보

AI가 바꾸는 개발 패러다임: 아이디어 중심 프로그래밍

  • AI 코딩 도구(Large Language Model) 보편화로 프로그래밍이 '아이디어 구상→AI가 구현→사람이 설계/검토'로 변화 중
  • Vibe coding은 즉흥적·모호한 명령에 가깝지만, Idea-oriented programming은 설계와 구조, 지속 가능한 원칙에 집중
  • 개발자는 주요 설계/방향 제시, AI는 반복적/구현적 작업 담당, 아키텍트와 견습생의 관계에 비유

언어 선택 기준의 변화

  • 예전에는 자신이 잘 아는 언어(예: Rust)로 빠르게 작업했으나, AI와 함께 일할 땐 필요한 라이브러리, 성능, 플랫폼 연계성이 더 중요해짐
  • 프로젝트에 따라 Python(머신러닝), TypeScript(웹·VSCode Extension), Rust(기본 선택) 등 상황별 최적 언어를 선택

타입 시스템의 중요성

  • AI 코딩 보조 환경에서는 고급 타입 시스템이 더 중요해짐
  • Rust와 TypeScript는 상태와 데이터 유효성, 실수 방지를 코드 레벨에서 강제, AI가 실수할 확률도 줄어듦
  • Python 역시 mypy, pydantic 등 설정을 통해 타입 안정성을 확보 가능

생태계와 패키지 매니저의 가치 상승

  • AI와 함께 개발할 때는 대형 라이브러리 활용이 쉬워져서, 생태계의 크기와 패키지 매니저의 품질이 더욱 중요해짐
  • Rust(cargo), TypeScript(npm), Python(uv 등) 모두 현대적인 패키지 매니저를 갖춤

사소한 문법과 워크어라운드는 덜 중요해지지만, 에러 메시지와 가이드 품질은 여전히 중요

  • LLM(AI)은 반복적 문법 실수는 빠르게 고치지만, 에러 메시지/가이드가 명확해야 효과적으로 보정 가능
  • Rust 커뮤니티의 언어 친화성(ergonomics) 노력처럼, AI도 좋은 에러 메시지를 활용해 더 나은 코드를 생산

결론: LLM이 강력한 개발 도구를 모두에게 열어줌

  • 아이디어 중심 프로그래밍 시대에는 주니어도 Principal Engineer급 설계/지휘 경험 가능
  • 코딩 자체의 ‘플로우’가 줄어든다는 우려도 있으나, 설계와 아이디어 중심의 개발 경험이 더 가치 있어질 전망

► AI와 함께하는 시대, Rust, Python, TypeScript가 강력한 타입, 생태계, 플랫폼 지원으로 개발 현장의 표준으로 자리 잡고 있음

반응형
반응형

[python] Ty - 빠른 Python 타입 체커 및 언어 서버  

 

https://github.com/astral-sh/ty

 

GitHub - astral-sh/ty: An extremely fast Python type checker and language server, written in Rust.

An extremely fast Python type checker and language server, written in Rust. - astral-sh/ty

github.com

 

  • ty Rust로 작성된 매우 빠른 Python 타입 검사기  언어 서버
  • 아직은 프리릴리즈 소프트웨어로, 프로덕션에서 사용하기에는 준비되지 않음
  • Astral의 초고속 파이썬 Linter인 Ruff 저장소에서 개발이 진행 중이며, 안정성 기능 완전성을 목표로 함
  • MIT 라이센스

https://astral.sh/

  • "파이썬 개발도구는 훨씬 더 빠를 수 있습니다"
  • 초고속 Python Linter인 Ruff를 만든 Chalie Marsh가 설립한 회사
  • Ruff를 확장하고, Ruff와 비슷한 고성능 개발도구를 만들어서 파이썬 에코시스템을 빠르게 만드는 것이 목표
  • 모두 오픈소스로 만들어 공개할 것이며, 그 기반으로 유료 서비스를 제공할 예정
  • Accel 이 리드하여 $4m 시드펀딩으로 시작

 


Getting started

Installation

uv tool install ty
 

or add ty to your project:

uv add --dev ty

# With pip.
pip install ty
 

First steps

After installing ty, you can check that ty is available by running the ty command:

ty
An extremely fast Python type checker.

Usage: ty <COMMAND>

...
 

You should see a help menu listing the available commands.

For detailed information about command-line options, see the CLI documentation.

Checking your project

ty check
 

 

반응형
반응형

러스트 (프로그래밍 언어)

러스트(영어: Rust)는 모질라 리서치에서 개발한 범용 프로그래밍 언어이다. "안전하고, 병렬적이며, 실용적인" 언어로 디자인되었으며, 순수 함수형 프로그래밍, 액터 기반 병렬 프로그래밍, 명령형 프로그래밍, 객체 지향 프로그래밍 스타일을 지원한다.

2006년 개발자 그레이든 호아레의 개인 프로젝트로 시작되었으며, 2009년 호아레의 고용주인 모질라가 개발에 참여했다. 2010년 처음으로 일반에 공개되었으며, 같은 해 Objective Caml로 작성된 초기 컴파일러에서 Rust로 작성된 컴파일러로 전환되었다. rustc는 2011년 처음으로 자기 자신을 컴파일하는데 성공했다.

2012년 1월 첫 번째 알파 버전인 0.1이 발표되었다. 

모질라의 정책에 따라, 러스트는 전적으로 오픈 소스로 개발되고 있으며, 커뮤니티로부터 피드백을 받고 있다. 모질라 재단이 러스트의 개발을 후원하고 있다. 러스트의 설계에는 모질라의 렌더링 엔진인 Servo와 rustc 컴파일러를 개발하면서 쌓인 경험들이 반영되어 있다.

공식 홈페이지 : https://www.rust-lang.org/
공식 소스코드 저장소 : https://github.com/rust-lang/rust
한국 러스트 사용자 그룹 : https://rust-kr.org/

반응형

+ Recent posts