Contract 객체 지향 언어의 클래스와 유사 Creating Contracts contract가 생성되면 생성자(constructor키워드와 선언된 함수)가 한 번 실행됨 constructor은 선택 사항 -> default constructor constructor은 하나만 가능(오버로드가 지원되지 않음) constructor가 실행된 후, contract의 최종 코드가 블록체인에 저장됨 // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.4.22 =0.4.16
Ether Units 접미사 Ether에서 더 작은 범위의 숫자를 표현하기 위해 사용 접미사가 없는 Ether은 Wei로 가정 Ethereum의 하위 유닛들 Unit wei value wei ether value wei 1 wei 1 10^-18 ETH kwei 10^3 wei 1,000 10^-15 ETH mwei 10^6 wei 1,000,000 10^-12 ETH gwei 10^9 wei 1,000,000,000 10^-9 ETH microether 10^12 wei 1,000,000,000,000 10^-6 ETH milliether 10^15 wei 1,000,000,000,000,000 10^-3 ETH ether 10^18 wei 1,000,000,000,000,000,000 1 ETH as..
ast 모듈은 파이썬에서 추상 구문 문법 트리를 처리하는 데 사용하는 모듈이다. ast 트리는 complie() 내장 함수나 ast 모듈에서 제공하는 parse() 함수를 사용하여 생성할 수 있다. ast 트리는 클래스가 모두 ast.AST에서 상속되는 객체들의 트리이다. parse() 함수는 나중에 ast 함수들과 함께 정리하고 이번에는 내장함수인 compile() 함수를 살펴보겠다. compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)¶ source를 코드 혹은 AST 객체로 컴파일 하는 함수이다. 코드 객체는 exec() 또는 eval() 함수로 실행 가능하다. file: 읽을 코드의 이름 mode: 컴파일해야 하는 코드..

구조체는 다른 타입의 값들로 구성이 가능하다. 각 데이터에 이름을 부여해서 값의 의미를 표현할 수 있다. 구조체를 정의하는 방법은 "struct 구조체의 이름 {데이터1 이름: 데이터1, 데이터2 이름: 데이터, ... }"이다. 중괄호 안의 데이터를 field라고 부른다. 구조체는 "키: 값"의 나열이다. 키는 필드의 이름, 값은 필드에 저장할 데이터이다. 위의 예시에서 알 수 있듯 구조체의 인스턴스를 생성할 때 정의한 순서를 지킬 필요는 없다. 구조체에서 값을 읽기 위해서 마침표(.)를 사용한다. 구조체.필드의_이름 방식으로 데이터를 읽어오면 된다. 가변 인스턴스의 경우 필드의 값의 변경이 가능하다. 특정한 필드만이 가변성을 가지지 않고 인스턴스 자체가 가변 인스턴스이다. 러스트는 필드의 일부만 가변..

🌱 소유권이란? 러스트에서 메모리는 컴파일러가 컴파일 시점에 검사하는 다양한 규칙으로 이루어진 소유권 시스템에 의해 관리된다. 따라서 소유권과 관련된 기능은 프로그램의 실행 성능에 아무런 영향을 미치지 않는다. 이런 방식으로 러스트는 메모리 안정성을 보장한다. 📌 스택 메모리 & 힙 메모리 러스트 같은 시스템 프로그래밍 언어 환경에서는 스택 메모리 또는 힙 메모리 중 어디에 저장되었는지에 따라 언어의 동작이나 의사결정에 큰 영향을 미친다. 스택과 힙은 런타임에 활용되는 메모리의 일부이다. 스택은 순서대로 데이터를 저장하며 데이터를 읽을 때는 역순으로 읽는다. 따라서 마지막에 들어온 데이터를 먼저 읽는 구조(LIFO, Last In First Out)이다. 스택에 저장되는 모든 데이터들은 고정된 크기를 가..

⚡️if 조건에 따라 분기할 때 사용한다. 러스트의 if 문의 조건문은 반드시 boolean 타입을 리턴해야 한다. if는 표현식 이므로 let 구문 오른쪽에 사용할 수 있다. 이렇게 사용할 때 각 가지가 리턴하는 결과는 모두 같은 타입이어야 한다. 이와 같이 다른 타입을 리턴한 경우 에러가 발생한다. ⚡️반복문 러스트는 loop, while, for 세 가지 종류의 루프를 제공한다. (1) loop loop 키워드는 루프를 중지시키는 코드가 있지 않다면 코드 블록을 무한으로 실행한다. 무한 반복하는 루프를 종료하고 싶다면 "Ctrl + c"를 사용하면 된다. 또는 루프 안에 break 키워드를 삽입하면 루프의 실행이 중단된다. 루프는 실패할 가능성이 있는 작업을 재시도하는 경우 이용한다. 작업의 결과를..

러스트는 함수와 변수의 이름에 스네이크 케이스(snake case: 소문자로 이루어진 단어드를 언더바로 구분하는 방식)를 사용한다. 매개변수는 함수의 signiture에 포함되는 특별한 변수이다. 함수 signiture에는 각 매개변수의 타입을 명시해야 한다. 여러개의 매개변수를 사용할 때는 쉼표(,)를 사용하면 된다. 📌함수의 signiture: 함수를 구분하기 위한 구성 요소 함수의 이름 매개변수의 개수 매개변수의 자료형 📌구문(statement)과 표현식(expression) 구문: 동작을 실행하지만 값을 리턴하지 않는 명령어 표현식: 어떤 값을 리턴 리턴값에 이름을 부여하지는 않지만 리턴할 값의 타입은 화살표(->) 다음에 지정해 주어야 한다. 리턴값은 함수의 마지막 표현식 값이라고 생각해도 된다..

러스트는 컴파일 시점에 모든 변수의 타입이 결정되어야 하는 정적 타입 언어이다. 🔹 스칼라 타입: 하나의 값을 표현 🔹 컴파운드 타입: 하나의 타입으로 여러개의 값을 그룹화한 타입 🌱컴파운드 타입 (1) 튜플 타입 서로 다른 타입의 값들을 하나의 컴파운드 타입으로 그룹화하기에 적합 고정된 길이를 가짐(크기를 변경할 수 없음) 괄호(())안에 값을 쉼표로 구분해서 표기 (2) 배열 타입 같은 타입의 값들의 컬렉션 고정된 길이를 가짐 대괄호(square bracket, []) 안에 쉼표로 구분해서 나열 데이터를 스택 메모리에 할당 값을 추가하거나 삭제할 일이 없을 경우 사용 위의 인덱스에 대한 런타임 에러 예제에서 러스트의 안정성 원리를 확인할 수 있다. 엉뚱한 메모리에 대한 접근을 허용하는 대신 프로그램을..

러스트의 변수는 기본적으로 불변성을 가진다. 이와 관련된 에러는 컴파일 시점에 알 수 있다. 러스트는 컴파일러 차원에서 변경되지 않는다고 선언한 값은 실제로 변경할 수 없도록 보장되기 대문에 변수를 일일이 추적할 필요가 없다. 따라서 코드의 의도를 더 쉽게 파악할 수 있다. 변수가 가변성이 필요할 경우에는 변수 이름 앞에 mut 키워드를 추가하여 가변 변수를 선언할 수 있다. 🌱 Shadowing shadowing은 마지막에 선언된 변수를 참조하는 것이다. 같은 이름의 다른 타입 변수를 선언할 수 있다. 위의 코드에서 마지막에 선언된 spaces를 출력한다. 만약 spaces 가변 변수로 하고 값을 변경하려고 하면 mismatched types 에러가 발생한다.

📌프로그램 흐름 프로그램은 1과 100 사이의 난수를 생성한다 플레이어는 예측값을 입력한다 예측값이 정답보다 크거나 같다면 알려주고 2번으로 돌아간다. 만약 예측값이 정답과 같다면 프로그램을 종료한다. io 라이브러리는 std(표준 라이브러리)에 포함되어 있다. 플레이어에게 입력값을 받아오기 위해서 io 라이브러리를 가져온다. 러스트는 prelude에서 몇 개의 타입만을 가져오기 때문에 포함되어 있지 않으면 use 구문을 이용해 가져와야 한다. 변경할 수 있게 하기 위해 mut 키워드를 사용해서 변수를 선언하였다. ::는 new 함수가 String 타입의 연관함수(특정한 인스턴스가 아닌 타입 자체에 구현된 함수)라는 점을 의미한다. 이 new 함수는 빈 문자열을 생성한다. stdin 함수는 표준 입력에 ..
- Total
- Today
- Yesterday
- git
- postman tests
- graphql
- Kotlin In Action
- pm.expect
- Kotlin
- 확장 함수
- Python
- downTo
- 2차 인터뷰
- mysql
- github
- 네이버 2022 공채
- 코틀린
- DGS Framework
- squash merge
- Basic Type
- solidity
- 코딩테스트
- 1차 인터뷰
- postman
- pm.test
- java
- postman collection
- string
- hashcode
- python3
- 주생성자
- Squash and merge
- go 특징
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |