[Solidity] Truffle 공부 - 5(Smart Contract 코딩시 알면 좋은 내용들)

in mini.topia4 months ago

Solidity 정리 5!

유튜브 영상 자료(Dapp Campus)를 따라해보면서 배우고 있는 중입니다. 한번 따라해보면 처음에 익숙해지는데 꽤나 좋을 것 같습니다.

여기서는 로또비스무리한 컨트랙트를 만들고 있군요. 그래서 Lottery Contract로 만들어 보고 있습니다.


오늘은 Lottery Smart Contract 코딩을 해봅니다.

전역변수로 접근 가능한 정보

contract에서 알면 좋은 내용 들

  • payable : 변수나 함수에 사용 가능하며, 이 수식어가 포함 되면 코인 전송이 가능하다는 의미
  • mapping : java의 hashmap 같이 사용됨
  • delete : delete는 스마트컨트랙트에 데이터를 더이상 저장하지 않겠다는 의미로써, delete 를 사용 하여 데이터를 삭제한 경우 가스를 돌려 받게 됨(가스비에 유리 할 듯)
  • memory : 함수 내에서 사용되는 값(컴퓨터 memory를 생각하면 휘발성 있는 저장 값)
  • storage : 스마트 컨트랙트에 저장 되는 값.(컴퓨터로 따지면 SSD에 저장 된다는 의미)
  • 상태변수 : 컨트랙트의 최상단에 정의된 변수. 일반 적인 언어의 "전역 변수". 컨트랙트에 속한 변수
  • 로컬변수 : 함수 내의 매개변수(parameter)
  • 상태변수는 기본적으로 storage에 저장됨
  • 상태변수, 로컬변수 관련해서는 이타인클럽님이 아주 잘 설명을 해주셨네요. 참고하면 좋을 것 같습니다.(웹서핑을 하다 이타인클럽님 만나뵈니 반갑네요!!)
  • (call by value)상태 변수는 항상 스토리지에 저장되는데, 상태 변수간의 대입은 항상 복사본을 생성하여 대입
  • (call by reference) 메모리에 저장되어 있는 복합 데이터 타입을 메모리에 있는 다른 복합 데이터 타입 변수에 대입할 때는 복사본이 만들어지 않음
  • 메모리에 저장된 복합 데이터 타입의 값을 로컬 변수에 대입할 수 없음(메모리에 있는 배열 리터럴, 문자열 리터럴을 로컬 변수에 대입하려 하면 컴파일 에러)
  • 이타인클럽님의 포스팅 본문에서 부분 캡쳐해온 내용
  • 이타인클럽님의 추가로 참고하면 좋을 것 같은 내용 : web3.js를 이용한 간단한 Dapp 구축 따라하기