본문 바로가기

전체 글

(117)
[Rust] 구조체 구조체는 튜플과 비슷하게 서로 다른 데이터 타입의 구성요소들을 저장할 수 있습니다. 일반 구조체 선언 struct User { username: String, email: String, count: u64, active: bool, } struct 키워드로 선언을 하고 구조체의 이름의 첫 글자는 대문자로 시작합니다. 구조체 안의 필드에는 구성요소들을 정의합니다. 예시 let user1 = User { username: String::from("dean"), email: String::from("dean@example.com"), count: 1, active: true, }; //정의된 구성요소의 순서가 같지 않아도 상관 없음 let user2 = User { email: String::from("dea..
[Hardhat] Hardhat 설치하기 이더리움 스마트 컨트랙트 개발을 위한 하드햇을 설치해보겠습니다. Hardhat이란? Hardhat이란 솔리디티로 스마트 컨트랙트 개발을 하기 위한 프레임워크입니다. 디버깅, 테스트, 배포를 위한 도구가 포함되어 있어 개발에 생산성을 높일 수 있습니다. Hardhat사이트 Ethereum development environment for professionals by Nomic Foundation Compile, deploy, test and debug your Ethereum software. Get Solidity stack traces, console.log, mainnet forking and more. hardhat.org 설치 빈 디렉토리를 하나 생성하고 경로 이동 후 다음과 같이 입력해줍니다...
[Rust] 데이터 타입 Rust에서 사용되는 데이터 타입에 대해 알아보겠습니다. 데이터 타입은 크게 스칼라와 컴파운드라는 두 종류로 나누어질 수 있습니다. 스칼라 스칼라는 하나의 값으로 표현되는 타입들입니다. 여기에 포함되는 데이터 타입은 정수형, 부동소수점 숫자, boolean, 그리고 문자입니다. 정수형 정수형 데이터타입은 사용되는 비트 수, 부호의 유무에 따라 나누어집니다. 각각 부호의 유무는 i, u로 비트 수는 뒤에 8, 16, 32, 64와 같이 나누어지며 size 같은 경우는 사용자의 컴퓨터 환경에 따라 달라집니다. 컴퓨터가 32-bit, 64-bit 아키텍처인지에 따라 32비트 또는 64비트를 사용하게 됩니다. 일반적으로는 i32를 사용하는 것이 가장 좋은 선택입니다. 부동 소수점 Rust에서 소수점을 갖는 부동..
[크립토 좀비] 레슨02 정리 크립토 좀비의 솔리디티 버전은 0.4.19 이므로 현재 최신 버전과는 다른 점이 있을 수 있습니다. 솔리디티 공식문서 한국어 mapping 키와 밸류로 이루어진 집합체이다. 자료구조의 해시 테이블과 같다. 선언 mapping(uint => string) name; uint이 키 값이고 string이 밸류로 사용된다. 사용 예시 name[26] = "satoshi"; address 블록체인에서 사용자의 지갑 주소는 필수이다. address는 지갑 주소를 나타내는 자료형이다. 예시 address target = 0x0cE446255506E92DF41614C46F1d6df9Cc969183; msg.sender msg.sender는 컨트랙트를 호출한 사용자의 지갑 주소를 가리킨다. counts[msg.sende..
[크립토 좀비] 레슨 01 정리 크립토 좀비의 솔리디티 버전은 0.4.19 이므로 현재 최신버전과는 다른 점이 있을 수 있습니다. 솔리디티 공식문서 한국어 솔리디티 버전 명시 pragma solidity ^0.4.19; // 설치된 컴파일러와 다를시 에러 컨트랙트 선언 contract Example { } 상태 변수 선언 contract Example { uint sample = 10; } 부호 없는 정수 uint (unsigned int) uint == uint256 uint8, uint16, uint32 등이 있는데 숫자는 변수가 사용할 비트 수만큼 명시 일반적으로는 uint만 사용 연산 add : x + y sub : x -y mul : x * y div : x / y mod : x % y pow : x ** y 배열 선언 uin..
맥OS "dyld: Library not loaded..." 에러 맥에서 npm으로 라이브러리를 설치하려고 했는데 에러가 발생했다. libpsl 라이브러리를 설치해주는 것으로 해결했다. brew install libpsl 정상적으로 npm이 작동한다.
[Rust] 제어문(조건문, 반복문) Rust에서 사용할 수 있는 조건문은 if가 있고 반복문은 loop, while, for가 있습니다. 조건문 조건문 if의 사용은 다른 언어와 별반 다르지 않습니다. fn main() { let number = 6; if number % 4 == 0 { println!("number is divisible by 4"); } else if number % 3 == 0 { println!("number is divisible by 3"); } else if number % 2 == 0 { println!("number is divisible by 2"); } else { println!("number is not divisible by 4, 3, or 2"); } } c, c++ 등에서 쓰이는 if 와 다른..
[Rust] 변수 가변성(Mutability) Rust에서의 변수 사용에 대해서 알아보겠습니다. Rust에서 변수는 기본적으로 불변성을 가지고 있습니다. 불변성이란 자바에서 final과 같이 한번 정의되면 변경할 수 없도록 하는 것이죠. 예시를 보겠습니다. fn main() { let x = 5; x = x + 5; // error! } 일반적인 다른 언어들처럼 변수 x를 선언하고 x의 값을 변경하려고 하면 컴파일러는 에러를 발생시킵니다. 변수 x의 값을 변경시키기 위해서는 변수명 앞에 mut을 추가해줍니다. fn main() { let mut x = 5; x = x + 5; //Ok! } mut이라는 접두어를 변수 선언에 적어주면 이 변수는 변경될 수 있는 변수라고 선언하는 것이며 자유롭게 데이터 수정이 가능합니다. 또 다른 방법으로는 재정의를 통..