getter/setter 에 대한 사실과 오해
· 6 min read
구글에 getter/setter
에 대해 검색해보면 정말 많은 게시글이 나온다. 대부분 getter/setter
를 사용하는 이유에 대해서 작성되어 있고 그 이유 중 하나로 캡슐화, 정보 은닉 같은 키워드를 중심으로 설명하고 있다.
필드 변수를 private
로 선언하여 외부에서 접근을 막고 getter/setter
만 공개하여 캡슐화한다는 설명이 90%는 되는 것 같다.
하지만 getter/setter
를 쓰면 진짜로 캡슐화가 될까?
결론부터 말하자면 getter/setter
는 캡슐화를 전혀 달성할 수 없다. 캡슐화를 하고 싶다면 getter, setter 는 쓰지 말아야한다는 것이다. 이걸 이해하기 위해서는 먼저 캡슐화에 대해 정확히 이해할 필요가 있다.