Rust(12) – Struct 구조체 ≈ class (다른언어)

C++은 구조체도 있고, 클래스도 따로있습니다. 요즘은 구조체도 멤버함수가있고 클래스의 은닉성만 갖고있지 않는걸로 알고있는데, Rust에서는 class가 따로 존재하지 않습니다. 먼저 C++과 Rust를 비교해보면 Rust는 아래 표와같이 C++기능을 대응하고있습니다. C++은 구조체와 클래스를 구분해놓고 클래스가 좀더 많은 기능을 지원하는 정도의 차이만 있습니다. Rust의 구조체는 C++의 구조체와 기본기능이 더 가깝다고 할수있지만 추가 키워드를 활용해 C++에서 할수있는 기능들을 대응하고있습니다. Rust … 더 읽기

OpenJarvis + Gemma 4.0 (추가)

오픈자비스는 2026년 3월 옥스퍼드 대학교에서 배포한 오픈소스 AI비서입니다. 오픈자비스는 아래 주소에 소스코드가 공개되어있다. https://github.com/open-jarvis/OpenJarvis 비교를 위한 기타 AI비서 프로그램 목록 OpenJarvis 설치 OpenJarvis는 Rust를 사용해 만들어졌기때문에 운영체제 관련없이 설치하면되지만 먼저 Rust가 설치되어 있어야한다. rustup 필요 https://rustup.rs rustup이 설치가 되어있지 않다면 링크로가서 안내되있는대로 설치하면된다. uv 필요 (파이썬 패키지 관리자) uv 사용법 OpenJarvis 실행 만약 모델 선택이 … 더 읽기

파이썬 예외처리 (C++과 차이점)

파이썬에서 예외처리 방법에대해 정리해보고자 합니다. 제 메인 언어는 C++인데 파이썬은 C++과 다소 다른부분이 있어서 다른부분을 짚어보고, 파이썬 예외처리 제대로 사용하는방법을 알아보려 합니다. C++ 예외처리 C++ 에서는 아래코드처럼 try catch가 전부이고 문법구조가 간단하기때문에 사용법도 간단합니다. 물론 코드가 길어지는 단점은 있습니다. C++은 아래처럼 사용합니다. Python 예외처리 파이썬은 try: exception: 의 C++ 의 try, catch에 대응하는 기능인데, 이 … 더 읽기

Rust(11) Loop 반복문

러스트의 반복문 특징 loop 라벨링 loop 반복문의겨우 아래 코드처럼 ‘를 사용해 라벨링이 가능하다. 라벨링을 사용해서 inner loop에서 outer loop를 break 한번에 빠져 나올수있다. while (조건식 필수) while 루프는 C++이나 JS등 다른언어와 크게 다르지않다. for (배열 순회) for 은 다음처럼 사용하면 배열의 아이템들을 한번씩 순회할수 있다. for + rev() rev()는 리버스의 줄임말로 배열 내 숫자를 1, … 더 읽기

Rust(10) – Ownership

Ownership은 러스트 언어의 핵심 개념입니다. 이것만 알아도 Rust를 알수 있다 할수 있습니다. 가비지 콜렉터도 없지만 C++의 포인터처럼 복사를 최소화하여 성능을 극대화 시킬수있는 새로운 개념입니다. 많은 프로그래머들에게는 생소할수있지만 사실 개념자체는 이미 오래전에 만들어지고 C++에서도 스마트포인터라는 이름으로 20여년전부터 많이 쓰이는 방식이긴 합니다. 문제는 C++에서 이 방식을 사용할경우 변수선언에 코드가 지나치게 길어지기도 해서 일반변수에는 잘안쓰고 class 객체위주로 사용하는 … 더 읽기

Rust(9) Functions

함수 형태 매개변수 타입 명시해야함. Statements and Expressions Statement: 하나의 명령줄 “let y = 6;” Expression Return 함수의 반환값은 위의 expression에서 처럼 ; 세미콜론 없이 마지막줄에 작성한다. Rust에서는 아래코드의 -> i32 와 반환타입이 i32라는것을 명시해야한다. five 함수 내의 5를 return expression 이라 한다.

Rust(8) Data Type

Scalar Types Scalar는 고정된 메모리를 갖고있으며 1개의 값을 저장하는 종류. Integer 타입의 작동방식은 C++과 동일하다. 특징이있다면 Rust에서는 배열인덱싱에서 usize를 써야함. Compound Types Tuple Rust에서 튜플은 다양한 데이터타입도 한곳에 묶을수있다. 분리할땐 아래처럼 사용한다. 사용 용도로는 어떤 데이터셋을 한번에 함수에서 return하거나 매개변수로 받을 때, 클래스 선언하지않고 받을때 사용. Array 배열 배열은 다른 스칼라타입 변수처럼 스택메모리를 이용합니다. 배열은 … 더 읽기

Rust(7) 배열 및 인덱싱

Rust에서는 배열 인덱싱할때 usize타입을써야합니다. 16비트 32비트 64비트환경에 구애받지않고 어디서든 잘 작동하게 하기 위함이며, 실제로 64비트환경에서 u32을 사용하면 배열에 접근할때마다 64비트로 캐스팅을하게되어 성능상 안좋다고 하는군요. Rust의 철학은 컴파일과정에서 최대한 많은 위험을 제거하는것이기때문에 어디서든 잘 작동하게하는 첫번째 이유가 더 큰 이유같습니다.

Python 파이썬 노트

AI개발을 공부하면서 Python을 정식으로 공부하고 있습니다. 다른언어를 사용하는 사람들이 딱보면 알수있는것들은 모두 제외하고 파이썬만의 특징이 되는것을 정리해보고자 합니다. 여러 언어를 동시에 사용하다보니 이런 노트가 도움이 되더군요. 저는 C++과 자바스크립트를 많이 사용하고있는데 이런이유로 C++ 개발자 시점에서 글을 작성할것 같습니다. 자료구조 Collection – 파이썬에서는 배열, 리스트같은 데이터 덩어리를 Collection이라 부릅니다. 알고리즘 Lambda 람다 제곱을 구하는 람다 함수 … 더 읽기