[Solidity] Truffle 공부 - 5(Smart Contract 코딩시 알면 좋은 내용들)
Solidity 정리 5!
유튜브 영상 자료(Dapp Campus)를 따라해보면서 배우고 있는 중입니다. 한번 따라해보면 처음에 익숙해지는데 꽤나 좋을 것 같습니다.
여기서는 로또비스무리한 컨트랙트를 만들고 있군요. 그래서 Lottery Contract로 만들어 보고 있습니다.
오늘은 Lottery Smart Contract 코딩을 해봅니다.
전역변수로 접근 가능한 정보
- 관련 주소 : https://docs.soliditylang.org/en/v0.5.3/units-and-global-variables.html
- 난수 생성시 여기 주어진 값들만 이용하면 매우 위험(채굴자들이 어느정도 조절 가능하기 떄문)
- 그런 경우 외부에서 시드값을 입력 받아서 계속 변환 시키는 방식이 필요
contract에서 알면 좋은 내용 들
- payable : 변수나 함수에 사용 가능하며, 이 수식어가 포함 되면 코인 전송이 가능하다는 의미
- mapping : java의 hashmap 같이 사용됨
- delete : delete는 스마트컨트랙트에 데이터를 더이상 저장하지 않겠다는 의미로써, delete 를 사용 하여 데이터를 삭제한 경우 가스를 돌려 받게 됨(가스비에 유리 할 듯)
- memory : 함수 내에서 사용되는 값(컴퓨터 memory를 생각하면 휘발성 있는 저장 값)
- storage : 스마트 컨트랙트에 저장 되는 값.(컴퓨터로 따지면 SSD에 저장 된다는 의미)
- 상태변수 : 컨트랙트의 최상단에 정의된 변수. 일반 적인 언어의 "전역 변수". 컨트랙트에 속한 변수
- 로컬변수 : 함수 내의 매개변수(parameter)
- 상태변수는 기본적으로 storage에 저장됨
- 상태변수, 로컬변수 관련해서는 이타인클럽님이 아주 잘 설명을 해주셨네요. 참고하면 좋을 것 같습니다.(웹서핑을 하다 이타인클럽님 만나뵈니 반갑네요!!)
- (call by value)상태 변수는 항상 스토리지에 저장되는데, 상태 변수간의 대입은 항상 복사본을 생성하여 대입
- (call by reference) 메모리에 저장되어 있는 복합 데이터 타입을 메모리에 있는 다른 복합 데이터 타입 변수에 대입할 때는 복사본이 만들어지 않음
- 메모리에 저장된 복합 데이터 타입의 값을 로컬 변수에 대입할 수 없음(메모리에 있는 배열 리터럴, 문자열 리터럴을 로컬 변수에 대입하려 하면 컴파일 에러)
- 이타인클럽님의 포스팅 본문에서 부분 캡쳐해온 내용
- 이타인클럽님의 추가로 참고하면 좋을 것 같은 내용 : web3.js를 이용한 간단한 Dapp 구축 따라하기
[US$140.00](▼54%)샤오미 드리미 V10 무선 청소기 / 유럽버전! / 6개월무료A/S / 무료배송/
WWW.QOO10.COM아이참~ 댓글 달만한게 없잖아요!! ㅠ
한동안 계속 됩니다!! ㅋㅋ
그래서 오늘 포스팅엔 댓글 안달았지요~ ㅋㅋ
ㅋㅋㅋ 열공좀 하고 또 지치면 자잘한 이야기하고 그래야지용 ㅋㅋ