전체 글
-
Rust: Ref, Arc, Rc, Mutex 문법 정리컴퓨터/Rust 2022. 12. 29. 11:26
RARM @Rust 튜토리얼 웹사이트 Rust 튜토리얼 Hello World! 튜토리얼 소개 🎉 Rust 튜토리얼 기본편 영상을 위한 웹사이트입니다. 키보드 ⬅️/➡️ 버튼으로 페이지를 이동할 수 있습니다. hi-rust.github.io 이 글은 가끔 가다 보이고 concurrent 하게 뭔 짓을 하려 할 때 사용해야 하는 문법에 대한 글이다. Rust의 핵심 기능 중 하나는 메모리 안전성을 보장하는 것입니다. Rust는 이를 소유권(ownership)과 빌림(borrowing)이라는 개념을 통해 처리합니다. 소유권은 변수가 메모리의 어떤 부분을 소유하고 있음을 나타냅니다. 이는 메모리 누수나 불필요한 복사를 방지하는 데 중요합니다. 빌림은 소유권이 있는 변수를 다른 변수가 일시적으로 참조하는 것을 나..
-
Rust: Closure Syntax컴퓨터/Rust 2022. 12. 27. 00:42
Closure란 짧은 일회성 사용 함수를 생성하는 데 매우 유용하다. 일반 함수와 마찬가지로 다른 함수에 인수로 전달하거나 변수에 저장하거나 함수에서 반환할 수 있다. Rust 언어에서는 Fn, FnMut, FnOnce trait가 적용되어 closure가 만들어진다. 람다 함수랑 비슷하게 생겼고 아래는 간단한 예시. 이 글에서 다양한 예제와 비교로 정리해 보았다. fn main() { let plus_one = |x: i32| -> i32 { x + 1 }; // CLOSURE let result = plus_one(5); println!("The result is {}", result); // 6 } 때때로 move 키워드랑 같이 사용하는 것을 볼 텐데 move 키워드는 closure가 단순히 변수를..
-
Rust: Generic Associated Types (GAT)컴퓨터/Rust 2022. 12. 19. 00:09
Rust 언어에선 Associated Type (연관 유형, 이하 AT) 은 trait에 정의된 유형 (type)의 placeholder (자리 표시)이며 trait가 구현될 때 조금 더 구체적인 type으로 대체될 수 있다. AT는 일반 형식의 매개 변수를 사용하여 구조 또는 함수 정의의 형식에 대해 추상화할 수 있는 방법과 유사한 trait 정의 형식에 대해 추상화할 수 있다. 또 AT는 하나 이상의 type 멤버가 있는 trait를 정의하려는 경우에 유용하지만 이러한 멤버들의 특정 type은 trait가 구현될 때까지 알 수 없다. (런타임) trait에 AT가 있는 간단한 예제이다: trait Iterator { type Item; fn next(&mut self) -> Option; } 위 예제..
-
Smart Contract <-> Svelte 프론트엔드 연동컴퓨터/Solidity 2022. 11. 28. 19:33
Svelte Web3 clbrge/svelte-web3 web3.js library integration as a Svelte store. Contribute to clbrge/svelte-web3 development by creating an account on GitHub. github.com 소개 Web3 dApp을 Svelte로 만들 수 있게 도와준다. npm i svelte-web3 yarn install svelte-web3 index.html 아래를 head에 추가한다. 예제 App.svelte 연동 아래는 MetaMask에 연동된다. 알맞은 provider 선택해서 하면 된다. onMount에서 connect 하거나 await connect() pending 해서 렌더링 시킨다. {#if..
-
Brownie: Smart Contract 파이썬으로 테스트 하기컴퓨터/Solidity 2022. 11. 21. 19:11
Brownie GitHub - eth-brownie/brownie A Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine github.com 소개 ETH Brownie는 Ethereum Virtual Machine (EVM) 환경에서 스마트 컨트랙트를 파이썬으로 테스트할 수 있게 도와준다. 설치는 pip으로 하면 끝난다. (C/C++ Build tools 최신 버전 설치 필요할 수 있음) 네트워크를 지정할 수도 있지만 기본적으로 Ganache [가나슈]를 이용하면 편하다. (account 100 ETHER 있는 10개의 계정을 받음) npm install ganache..
-
JS: valueOf, toString, toPrimitive컴퓨터/HTML & JS & TS 2022. 10. 14. 17:26
Javascript 기능 중 valueOf, toString, toPrimitive를 이용하면 말이 안 되는 것을 할 수 있다. // 기본적으로 toString은 아래처럼 쓰일 수 있다. let a = { id: '123oij21312838', toString() { return '한글'; }, }; if (a == '한글') { console.log('a는 한글'); } // 결과: a는 한글 출력됨 위에 따르면 아래처럼 진행된다. // a가 string 'a' == a is True // a가 boolean True == 1 is True // a가 object => conversion toPrimitive @객체를 원시형으로 변환하기 object가 숫자형이나 문자형으로 형 변환시 toPrimitiv..
-
Sanic: FastAPI와 비슷한 파이썬 웹프레임워크컴퓨터/파이썬 2022. 8. 30. 20:35
sanic Home Trusted by millions Sanic is one of the overall most popular frameworks on PyPI, and the top async enabled framework sanic.dev 소개 쓸만한 웹 프레임워크 중 가장 빠르게 성능이 나온 Sanic FastAPI, django 등과 비교해서 단점도 있겠지만 속도만으로 봤을 때 나쁘진 않은 것 같다. 설치 pip install sanic 기본 틀 from sanic import Sanic from sanic.response import text app = Sanic("MyHelloWorldApp") @app.get("/") async def hello_world(request): return ..