개발 공부/블록체인 4

[Rust] 에러 처리

러스트에서 에러는 복구 가능한(recoverable) 에러와 복구 불가능한(unrecoverable) 에러 두 가지가 존재한다. 러스트는 다른 프로그래밍 언어에서 사용하는 예외처리 기능이 없고 Resut 타입과 panic! 매크로를 사용해 에러를 잡는다. 복구 불가능한 에러는 panic! 매크로를 사용해 해결한다. 패닉을 일으키는 방법은 다음과 같다. 1. 코드가 패닉을 일으키는 동작을 할 때 (예시: 배열의 마지막 인덱스를 넘어선 접근) 2. panic! 매크로를 명시적으로 호출할 때 패닉이 발생하면 실패 메시지를 출력하고 unwind한 뒤 스택을 청소하고 종료한다. 패닉의 근원을 찾기 위해 호출 스택을 볼 수도 있다. 참고로 패닉 발생 시 unwind가 시작되면 스택을 훑어가며 데이터를 청소하는 과정..

[Rust] 0109 공부한 내용

1. 러스트의 변수 러스트에서 변수는 다른 프로그래밍 언어와 다르게 기본적으로 불변(immutable)이다. 변할 수 있는 수라서 '변수'인 건데 디폴트로 불변성을 가진다는 것이 특이하다. 만약 어떤 변수를 나중에 값을 변경할 수 있도록 만들고 싶다면 선언 시 'mut'를 붙여줘야 한다. let apple = 5 // immutable let mut apple = 10 // mutable io()::stdin().read_line(&mut guess) 여기서 guess의 참조 변수에도 mut를 해줘야 사용자가 입력한 값을 string에 추가할 수가 있음. 2. 구문과 표현식의 차이 - 구문: 어떤 동작을 수행하고 값을 반환하지 않는 명령 - 표현식: 결괏값을 평가함 코드 블록은 블록 안의 마지막 표현식을..

[Rust] 공부 시작

블록체인 학회 활동을 시작한지 어느덧 한 학기가 지났다. 여태 블록체인에 대한 개념만 익혔기 때문에 이번 방학부터는 본격적으로 개발에 시간을 쏟으려 한다. 우선 종강하자마자 파이썬을 배우고 장고까지 한번 훑었다. 백엔드와 프론트엔드 중 어느 쪽이 더 적성에 맞을지 몰라서 백엔드 개발을 빠르게 경험해보고 싶었는데 장고가 이에 적격이었다. (장고도 러닝 커브가 있지만 스프링에 비하면 훨씬 적다는 생각) 깊게는 아니지만 장고로 MTV를 개발해보니 백엔드가 참 재밌게 느껴졌다. 2학기에 네트워크, 자료구조 등의 전공 수업에 흥미를 느꼈던 것도 같은 맥락같다. 그래서 3월 전까지 백엔드를 깊게 파보기로 결심했다. 그리고 Rust로 이 공부를 해보려고 한다. 러스트(Rust)는 생겨난지 얼마 안 된, 신생 언어이다..

패스트캠퍼스 - Solidity로 시작하는 이더리움(EVM) 기반 블록체인 개발A to Z 수강 후기

- 본 게시물은 패스트캠퍼스 수강 후기 이벤트 참여를 위해 작성되었습니다 - 수강후기 블록체인에 대해 관심을 가지고 난 뒤 가장 먼저 패스트캠퍼스의 'Solidity로 시작하는 이더리움(EVM) 기반 블록체인 개발A to Z' 강의를 신청했습니다. 커리큘럼을 읽어봤을 때 블록체인에 대해 잘 모르는 입문자도 이 강의를 통해 블록체인 개념부터 개발까지 전반에 대해 지식을 쌓을 수 있을 것 같았습니다. 사실 그만큼 강의 분량도 어마어마하게 많습니다;; 그렇지만 한 분야에 대해 공부하려면 이 정도 노력은 들여야 한다고 생각합니다.. 오히려 자세히 다 다뤄주는 것이기 때문에 매우 만족하면서 수업을 듣고 있습니다:) 수업을 들으며 각 강의마다 내용을 구조화하기 위해 손으로 필기 노트도 따로 적고 있습니다. 나중에 ..