개인 공부 후 자료를 남겨놓기 위한 목적이므로,
생략되거나 오류가 있을 수 있음을 알립니다.
[Solidity] 2. 간단한 송금 시스템 만들어보기 + 계정에 대한 이론
[Solidity] 3. 스마트 컨트랙트 시작, 중단, 정지하기
[Solidity] 5. 예외처리 (require와 assert)
[Solidity] 6. 생성자, 대비책 함수 (view / pure / getter)
[Solidity] 7. 제어자, 상속, file import
- 참고했던 document
▶ Become Ethereum Blockchain Developer
https://ethereum-blockchain-developer.com/000-learn-ethereum/
▶ Solidity_doc
https://docs.soliditylang.org/en/v0.8.16/
▶ 솔리디티_doc
https://solidity-kr.readthedocs.io/ko/latest/
1. 폴백 함수 (fall back function)
우리는 다음과 같은 코드를 사용해서 스마트 컨트랙트에 돈을 보내고, 인출할 수 있게 했었다.
이러한 방식 이외에도 일반 계정과 같이 스마트 컨트랙트를 이용할 수 있는 방법이 있다.
먼저 메타마스크를 열어보도록 하자.
여기서 보내기 버튼을 확인할 수 있는데, 이 버튼을 사용한다면 특정 함수를 사용하지 않아도 특정 주소로 돈을 보낼 수 있다.
이때 필요한게 폴백 함수이다. (fall back function)
폴백함수는 매칭되는 함수가 없거나, 트랙잭션 인코딩 데이터 필드에 일치하는 함수가 없을 경우 사용할 수 있다.
특정 함수를 사용하지 않고 스마트 컨트랙트에 돈을 보낸다고 가정해보자.
이 경우 함수의 이름은 없고, 돈을 받는 기능을 하기 때문에 다음과 같이 적어주면 된다.
이처럼 폴백 함수는 인수가 있든 없든 자동으로 사용이 가능하다.
2. 생성자 함수
생성자는 스마트 컨트랙트를 배포하는 동안 단 한 번 호출되는 함수이다.
이를 통해 배포중에 스마트 컨트랙트에서 특정 항목을 설정할 수 있게 된다.
예를 들어 스마트 컨트랙트를 배포한 사람을 지정한 다음, 그 사람만이 해당 스마트 컨트랙트를 파기할 수 있도록 설정할 수도 있다.
3. view / pure
▶ view
`view` 함수는 무언가를 반환할 수 있다. [읽기 용도로 사용한다.]
다음과 같이 사용했을 경우, 배포 시 getOwner 버튼을 통해 트랜잭션을 시작하기 위해 사용한 계정을 확인할 수 있는 식이다.
▶ pure
pure 함수는 호출은 가능하지만, State 변수와 상호작용하지 않는다.
[ 계산 결과를 출력하는 정도로 사용하는 듯]
그럼 State 변수는 무엇일까?
State 변수는 스마트 컨트랙트의 특정 상태를 저장하는 변수이다. (클래스 변수라고도 함.)
위의 예제에서 볼 수 있듯이, 실제 스마트 컨트랙트는 이중 무엇과도 상호작용 하지 않고,
퓨어 함수 자체 범위에만 해당한다.
'Develop > Solidity' 카테고리의 다른 글
[Solidity] 8. 이벤트 및 반환 변수 (0) | 2023.02.14 |
---|---|
[Solidity] 7. 제어자, 상속, file import (0) | 2023.02.14 |
[Solidity] 5. 예외처리 (require와 assert) (0) | 2023.02.14 |
[Solidity] 4. mapping (0) | 2023.02.14 |
[Solidity] 3. 스마트 컨트랙트 시작, 중단, 정지하기 (0) | 2023.02.14 |