public : 어디서든 사용가능
public : Any contract can be used.
private : private가 정의 된 해당 contract 내부에서만 사용가능
private : private can only be used within the contract
external : external 정의된 contract가 아닌 외부 contract에서 사용가능
external : "external" can only be used external "contract"
internal : internal이 정의된 contract내부 와 외부contract에서 상속 후 사용가능
internal : "internal" can be used within this "contract" and can be used after inheritance within external "contract"