더북(TheBook)

4.3.4 정보 은닉

Go는 식별자의 첫 번째 문자가 대문자인지 소문자인지에 따라 publicprivate를 구분한다. 마찬가지로 구조체의 필드도 대문자로 시작하는 필드(exported field)는 패키지 외부에서 접근할 수 있고, 소문자로 시작하는 필드(non-exported field)는 패키지 내부에서만 접근할 수 있다.

클래스를 기반으로 하는 객체 지향 언어에서는 객체의 필드를 직접 노출하지 않고 지정된 방식으로만 내부 필드에 접근하게 한다. 흔히 getter로 내부 필드를 얻어오고 setter로 내부 필드의 값을 변경한다. 이렇게 하면 객체에 잘못된 값을 할당하거나 비공개 정보가 노출되는 것을 막을 수 있다. 또한, 객체를 초기화하는 생성자 메서드를 제공하여 객체가 잘못된 값으로 초기화되는 것을 방지한다. Go에서도 이와 같은 방식으로 내부 정보를 보호한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.