Go 언어는 프로그램의 모듈성과 유지 보수성을 향상시키기 위해 패키지 단위로 코드를 구성합니다. 패키지는 함수와 변수를 내부에서 사용할 수 있도록 제어합니다. 그 중에서도 일부 함수나 변수를 외부로부터 숨기는 것을 은닉(hidden)이라고 합니다.
함수 은닉
함수를 은닉하기 위해서는 함수 이름의 첫 글자를 대문자 대신 소문자로 작성하면 됩니다. 이런 함수는 외부 패키지에서 직접적인 호출이 불가능합니다. 예를 들어, 다음과 같이 myFunction
과 helperFunction
함수가 있는 패키지가 있다고 가정해 봅시다.
package myPackage
func myFunction() {
// some code
}
func helperFunction() {
// some code
}
이 경우, myFunction
은 외부에서 직접 호출할 수 있지만, helperFunction
은 은닉되어 외부 패키지에서 직접 호출할 수 없습니다. 다른 패키지에서 helperFunction
에 접근하려면, myFunction
함수를 통해서만 호출할 수 있습니다.
변수 은닉
변수를 은닉하기 위해서도 마찬가지로 변수 이름의 첫 글자를 대문자 대신 소문자로 작성하면 됩니다. 은닉된 변수는 외부에서 직접적으로 접근할 수 없으므로, 변수에 접근하려면 getter와 setter 함수를 사용해야 합니다.
예를 들어, 다음과 같이 myVariable
변수가 있는 패키지가 있다고 가정해 봅시다.
package myPackage
var myVariable string
func GetMyVariable() string {
return myVariable
}
func SetMyVariable(value string) {
myVariable = value
}
이 경우, myVariable
변수는 외부에서 직접 접근할 수 없습니다. 대신 GetMyVariable
함수를 사용하여 값을 가져올 수 있고, SetMyVariable
함수를 사용하여 값을 설정할 수 있습니다.
결론
Go 언어에서 은닉된 함수와 변수는 모듈화와 코드의 안정성을 향상시키는 중요한 요소입니다. 은닉된 함수와 변수를 사용하면 외부에 불필요한 세부 사항을 노출시키지 않고, 필요한 기능만 외부에 노출시킬 수 있습니다. 이를 통해 코드의 가독성과 유지 보수성을 향상시킬 수 있습니다.
더 자세한 내용은 Go 언어 공식 문서를 참조하시기 바랍니다.