[Solidity] Function Modifier

냐옹·2023년 7월 31일
0

Solidity

목록 보기
4/13
post-thumbnail
특징설명
코드 재사용Modifier는 여러 함수에 걸쳐서 공통적으로 사용되는 로직을 재사용할 수 있게 해줍니다.
가독성 향상Modifier의 이름을 통해 해당 함수가 어떤 전제 조건하에 동작하는지 쉽게 이해할 수 있습니다.
유연성Modifier 내에서 _를 사용하면 원래 함수의 코드가 어느 위치에 삽입될지 정할 수 있습니다. 이를 통해 함수의 실행 전후에 원하는 로직을 삽입할 수 있습니다.
조건 체크Modifier는 함수가 실행되기 전에 특정 조건을 검사하는 데 주로 사용됩니다. 만약 조건이 만족되지 않으면 함수는 실행되지 않습니다.

Function Modifier

Function Modifier는 함수에 미리 정의된 로직을 적용할 수 있게 해주는 기능입니다. 이것을 통해서 반복적인 코드를 줄이고 가독성을 높일 수 있습니다.

다음은 예시 입니다.

contract MyContract {
    address public owner;
    
    constructor() public {
        owner = msg.sender;
    }
    
    modifier onlyOwner {
        require(msg.sender == owner, "Not the owner!");
        _;
    }
    
    function changeOwner(address _newOwner) public onlyOwner {
        owner = _newOwner;
    }
}

위에서 보면 onlyOwner Modifier는 changeOwner 함수가 실행되기 전에 msg.sender가 현재 컨트랙트의 owner와 같은지 확인합니다. require문이 참이면 원래의 함수코드 owner = _newOwner;가 실행되고 거짓이면 에러메세지를 출력하고 함수 실행을 중지시킵니다.

_; 기호는 Modifier의 코드 내에서 원래 함수의 코드가 삽입될 위치를 표시합니다. 이 위치에 원래 함수의 로직이 삽입되어 실행됩니다.

따라서 Modifier는 특정 함수의 실행 전후에 원하는 로직을 삽입하거나, 특정 조건을 만족하는 경우에만 함수가 실행되도록 하는 기능 등을 수행합니다. 이것을 통해서 코드의 가독성재사용성을 높일 수 있습니다.

0개의 댓글