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
    };
    
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.