Solidity 문법 - (5) 접근 제한자

2023. 5. 29. 14:06BlockChain/Solidity 깨부수기 ( 유투브 강의 )

목차
1. 접근 제한자
2. 접근 제한자 예제 코드

 

1. 접근 제한자

 

 

솔리디티에는 4가지의 접근제한자가 있다.

 

 

public

컨트랙트의 내,외부 모든 곳에서 접근이 가능하다.

 

external

external이 정의된 컨트랙트 내부를 제외한 모든 곳에서 접근이 가능하다.

 

private

오직 private이 정의된 컨트랙트 내에서만 접근이 가능하다. 상속을 받았다 하더라도 접근이 불가능하다.

 

internal

private과 비슷하지만, 상속을 받은 컨트랙트에서는 접근이 가능하다.

 

 

 

2. 접근 제한자 예제코드

 

변수에도 private, public 접근 제한자를 정의할 수 있다.

 

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract Access1 {
    uint256 public a = 5;
    uint256 private b = 5;
}

 

a라는 변수에 인스턴스를 생성해서 넣고,

 

변수 a에 접근했을 때에는 접근이 가능하나, b에 접근하자 에러가 발생한다.

 

external의 경우에는 정의된 컨트랙트 내에서는 접근이 불가능하지만, 외부에서는 접근이 가능하다.

 

external로 정의된 함수는 위와 같이 에디터에서도 에러를 띄워놓는다.

 

internal은 external과 다르게 내부에서 접근이 가능하다.

 

external을 internal로 바꿔보자

 

 

에디터에서도 에러가 사라져 컴파일시 에러가 발생하지 않는다.

 

internal은 상속받은 컨트랙트에서도 사용이 가능한데, 아직 상속의 개념을 배우지 않았으므로 넘어가도록 하자.

 


위 글은 솔리디티 깨부수기를 기반으로 학습하여 작성하였다.

출처: https://youtu.be/qLvXjf9mlOs