Rust/Basics 5

[Rust for Solana] Cargo

Cargo란 npm 처럼 러스트의 빌드 시스템 및 패키지 매니저다! 버젼 확인을 위해서는 cargo --verison으로 확인! 프로젝트 생성하기 cargo new hello_cargo --bin --bin은 바이너리. 이는 라이브러리가 아닌 실행가능한 앱으로 만들어줌 프로젝트를 생성하면 요로케 Cargo.toml과 main.rs 그리고 gitignore이 생기며 git 저장소도 초기화됨 Cargo.toml을 열어보면 이 파일은 toml(tom's obvious, minimal language)포맷으로 작성, 이것이 Cargo의 환경설정 포맷. 마지막 라인 [dependencies]은 우리의 프로젝트의 의존성들의 리스트를 적을 수 있는 섹션의 시작점. 러스트에선 코드의 패키지를 크레이트(Crate)라고 ..

Rust/Basics 2022.04.05

[Rust For Solana] 첫번째 프로그램의 해부

어려운건 아니지만 조금 더 자세하게 살펴보자면 println! 은 러스트 매크로 라고 불린다. 함수라고 불리려면 ! 없이 println으로 입력되어야했음. 즉 !은 보통의 함수 대신에 매크로를 호출하고 있다고 이해하자. + 그리고 러스트 스타일은 텝이 아닌 스페이스 네개로 들여쓰기를 함. 이걸 실행하기 위해선 rustc 명령어가 필요한데 보자마자 모르겠어서 rustc 는 컴파일러란다. 모르겠으면 바로 구글선생님에게 물어보자 암튼 컴파일러는 우리의 코드를 가져가서 실행가능한 바이너리 코드로 만들어준다 그래서 바로 ./main 을 넣어주면 실행이 되는 것. 무슨 exe파일같은 파일이 생겼다 저 파일을 더블클릭하거나 터미널에서 ./main 명령어를 입력해주면 추가로 자바스크립트와 같은 동적 언어에 더 친숙하다..

Rust/Basics 2022.04.04

[Rust For Solana] Comments

다른 언어와 마찬가지로 // 와 /* */가 쓰이면서 문서같은 것을 작성할 때 ///가 쓰이며 문서 자체에 대한 주석이 필요할 때 //! 를 사용하면 됨 이런 식으로 작성한 이후에 아래 코드처럼 실행시켜보면 해당 코드가 target/doc 에 저장되며 cargo doc --open 명령어를 입력 시 이렇게 문서가 작성되며 초록색으로 된 add_one을 클릭시 아래 화면을 바뀐다 이외에 또 다른 스타일로 //! 가 있는데 이 명령어는 주석 뒤에 오는 항목을 문섷화 하는게 아닌 주석을 포함하는 항목을 문서화한다. 4번째 줄 위로 //! 를 포함한 문서의 설명을 넣어서 다시 cargo doc --open 을 실행시켜보면 My Crate부분이 추가된 것을 알 수 있음 일단 당장 문서를 만들건 아니니까 여기까지 ..

Rust/Basics 2022.03.28

[Rust For Solana] 첫번째 프로그램

어떤 언어를 배울 떄와 마찬가지로 hello world를 만들어보자요 우리의 패키지 관리자 cargo를 통해 새로운 프로그램을 만들어달라고 부탁해보면 음 뭔가 잘 만들어진 것 같다. 안을 보면 main.rs 러스트 파일과 깃이 무시할 수 있게 만든 gitignore 그리고 Catgo.toml 설정파일이 생긴다 (toml = Tom's Obvious, Minimal Language 톰이라는 분이 만든.. 러스트 커뮤에서 많이 쓴단다) 자 이제 main.rs를 보면 엔트리 포인트는 항상 펑션의 이름(?) 으로 이름지야한다. (다시 확인해보겠음 ) fn은 느낌 오듯이 펑션을 선언하는 방식이고, 나머지는 다음에 알려주겠음. 일단 이대로 실행을 시키기 위해선 터미널에서 해당 폴더로 들어간 이후에 cargo run..

Rust/Basics 2022.03.23

[Rust for Solana] 설치 & 환경 세팅

솔라나 환경에서 스마트 컨트랙트를 작성해보기 위해 러스트를 배워보기로 했다. 우선 러스트 공홈에서 Get Started를 들어가보면 저 코드를 터미널에 넣어주시면 curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh 다 끝나고 나서 내려서 어딨는지 물어보면 이렇게 위치를 나타내준다. 그러면 설치 끝! 이후에 VSCode에서 dependencies 관리를 위해 ⌘ + ⇧ + X 누른 후 확장 프로그램 Crates 를 다운받아준다. Cargo가 Rust내에서 빌드 시스템이자 패키지 관리자이다! JS에서 npm같은 역할이라고 예상된다. 추가로 당연하듯이 러스트를 설치해줍니다! 일단은 여기까지!

Rust/Basics 2022.03.23