public
함수나 상태 변수가 외부에서 접근 가능합니다. 외부 컨트랙트와 내부에서 모두 호출할 수 있습니다.
internal
함수나 상태 변수는 현재 컨트랙트와 이를 상속한 컨트랙트 내에서만 접근 가능합니다. 외부에서 호출할 수 없습니다. (단, 내부 함수가 public 함수를 호출할 때, internal 함수도 호출할 수 있습니다.)
external
함수의 경우, 이는 외부 컨트랙트에서만 호출 가능한 함수를 나타냅니다. 상태 변수에는 적용되지 않습니다. external 함수는 internal 함수와 달리 컨트랙트 내에서 직접 호출할 수 없습니다.
private
가시성 지정자를 생략한 경우와 동일하게 현재 컨트랙트 내에서만 접근 가능한 상태 변수와 함수입니다. 상속한 컨트랙트에서도 접근할 수 없습니다.
기본 가시성
가시성 지정자를 명시적으로 지정하지 않으면, 함수는 기본적으로 internal 가시성을 가지게 됩니다. 상태 변수의 경우 internal 가시성을 가집니다.