전체 글

전체 글

    Cell 타입과 RefCell 타입 - Rust 프로그래밍

    목차 Cell 타입과 RefCell 타입 Cell 타입 사용하기 RefCell 타입 사용하기 Cell 타입과 RefCell 타입 이전에 작성했던 Rc 타입과 Weak 타입 - Rust 프로그래밍에서는 어떤 값에 대해 여러 소유자를 가질 수 있게 해주는 스마트 포인터 Rc에 대해 살펴봤습니다. 이번 글에서는 불변 변수를 가변 변수처럼 사용할 수 있게 해주는 Cell과 RefCell 타입에 대해 살펴보겠습니다. Rust의 참조 규칙에 따르면, 어떤 객체에 대한 불변 참조자는 여러 개 가질 수 있고, 가변 참조자는 하나만 가질 수 있습니다. 또한, 이 두 가지 규칙은 동시에 적용할 수 없습니다. 이런 규칙을 깰 필요가 있는 상황에서 Cell과 RefCell 스마트 포인터 타입을 사용할 수 있습니다. Cell과..

    Rc 타입과 Weak 타입 - Rust 프로그래밍

    목차 Rc 타입과 Weak 타입 Rc 타입 사용하기 Weak 타입 사용하기 순환 참조의 문제 Rc 타입과 Weak 타입 소유권 규칙에 따라 Rust에서 어떤 값은 여러 소유자를 가질 수 없습니다. Reference Counted를 의미하는 Rc는 힙 메모리에 할당된 타입 T 값의 소유권을 공유할 수 있게 해주는 타입입니다. 즉, 스마트 포인터 Rc를 사용하면 타입 T의 값에 대한 여러 개의 소유자를 만들 수 있습니다. 기본적으로, Rc 타입은 Clone Trait을 구현하고 있고 clone을 호출해서 T 값에 대한 새로운 포인터를 생성하며, 모든 Rc 포인터가 해제되면 메모리에 할당된 T 값이 drop되는 구조입니다. Rust에서 공유된 참조자는 수정할 수 없는데, Rc 타입 또한 예외가 아니며 일반적인..

    [Solana - Native vs Anchor] #3. Account 생성하기

    목차 Account 생성하기 프로그램 구조 Native 프로그래밍 Anchor 프로그래밍 Account 생성하기 이전 포스팅인 [Solana - Native vs Anchor] Account 생성하기에서 Account 하나를 생성하기 위해 Client에서 System Program으로 곧바로 생성을 요청했습니다. 이번 글 "Account 생성하기"에서는 Client가 Server Program으로 Account 생성을 요청하고, Server Program에서 System Program의 create_account Instruction을 호출해 Account를 생성하는 과정을 살펴보겠습니다. 이런 방법은 Solana에서 CPI(Cross-Program Invocation)라고 불립니다. CPI는 하나의 P..

    [Solana - Native vs Anchor] #2. Account 확인하기

    목차 Account 확인하기 프로그램 구조 Native 프로그래밍 Anchor 프로그래밍 Account 확인하기 Account 확인하기 에서는 우리의 Program이 소유하는 Account를 하나 생성하고, Account가 생성됐는지 확인해보겠습니다. Account가 생성된 것인지 아닌지에 대해 확인하기 위해, Client에서 생성할 Account와 이미 생성한 Account 두 개의 키쌍을 Instruction으로 보낼 것입니다. 이 "생성한" Account 하나는 Client에서 미리 SystemProgram에 생성을 요청하고, 다른 하나의 Account는 생성을 요청하지 않는 키쌍입니다. Server Program은 이 두 개의 Account에 대해 몇 가지 확인하는 작업을 갖고 있습니다. 두 Ac..

    [Solana - Native vs Anchor] #1. Hello Solana

    목차 Hello Solana 프로그램 구조 Native 프로그래밍 Anchor 프로그래밍 Hello Solana [Solana - Native vs Anchor] 시리즈에서는 솔라나 프로그래밍을 하는 두 가지 방법에 대해 알아봅니다. 하나는 솔라나에서 지원하는 Rust Crate인 solana-program을 이용한 Native 프로그래밍 방식이고, 다른 하나는 솔라나 프로그래밍을 좀 더 편하게 해주는 Anchor 프레임워크를 이용한 방식입니다. 이 글은 Hello Solana 예제를 다루는 [Solana - Native vs Anchor] 시리즈의 첫 번째 글입니다. 향후 포스팅되는 다른 글들에서는 다양한 예제를 코드와 로직에 집중해 살펴보겠지만, 이 글에서는 프로그램을 빌드하고 솔라나 로컬넷에 배포하..