더북(TheBook)


4.5정보 은닉


연관 있는 변수와 함수를 묶는 것을 캡슐화라고 했습니다. 캡슐화할 때 어떤 멤버와 메서드는 공개하여 유저 프로그래머가 사용할 수 있도록 하고, 어떤 멤버와 메서드는 숨겨서 유저 프로그래머가 접근할 수 없도록 할 것인지 정해야 하는데 이러한 개념을 정보 은닉(information hiding)이라고 합니다. 캡슐화는 정보 은닉을 포함하는 개념입니다. 그런데 멤버와 메서드를 공개하거나 숨긴다는 것은 어떤 의미일까요? 파이썬은 기본적으로 정보 은닉을 지원하지 않으므로 C++ 코드를 보면서 이야기해 보겠습니다. 파이썬의 정보 은닉은 이후에 살펴보겠습니다.


C++의 정보 은닉

코드 6-21 oop1/oop1_2/info_hiding.cpp ①

class Account{
public: // #1
    // 생성자: 파이썬 클래스의 __init__( )과 같다
    Account(string name, int money){
        user = name;
        balance = money;
    }
    // 인스턴스 메서드(멤버 함수)
    int get_balance() {
        return balance;
    }
    // 인스턴스 메서드(멤버 함수)
    void set_balance(int money) {
        if (money < 0) {
            return;
        }

        balance = money;
    }
private: // #2
    // 인스턴스 멤버(멤버 변수)
    string user;
    int balance; // #3
};
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.