Theory/Programming Language

public, private 키워드가 필요한 이유

public/private 키워드는 정보 은닉, 캡슐화 등에 도움을 주는 도구이다.

정보 은닉은 복잡하거나 변경 가능한 설계 결정을 안정적인 인터페이스 뒤로 숨기는 기본 설계 원리이다.
정보 은닉은 모듈을 분할하기 위한 기본 원리다.
모듈은 변경될 가능성이 있는 비밀을 내부로 감추고 잘 정의되고 쉽게 변경되지 않을 공용 인터페이스를 외부에 제공하여 내부의 비밀에 함부로 접근하지 못하도록 한다.
캡슐화는 ‘온갖 방법의 숨기기’라고 생각하면 쉽다. 캡슐화를 통해 데이터를 숨길 수 있다. 그리고 구현 코드, 파생 클래스 또는 여러 가지의 것들을 숨길 수 있다.
- 알란 섈로웨이, 제임스 트로트, “알기 쉬운 디자인 패턴
캡슐화는 가해지는 변경에 대한 파급 효과를 일정한 영역 내부로 제한시킬 수 있다.
대부분의 컨텍스트에서 캡슐화와 정보 은닉은 동일한 의미를 지니다.

Information Hiding by 이터너티


private 키워드의 불편함을 호소하며 무용론을 펼치는 이들이 있다.

public/private 키워드는 필요없다.
구현하면서 접근자에 대해서 신경쓰느니 그냥 public으로 모두 공개하겠다.
필요하다면 주석이나 문서로 설명하면 충분하다.

라고 주장한다.

흔히 접하는 전형적인 부채의 한 유형이다.[각주:1]
당장은 편하고 빠를 수 있겠으나,
프로젝트가 커지고 복잡해지면 결국 이것이 발목을 잡는다.

프로그램의 곳곳에서 백여 번에 걸쳐서 주의력을 소진하는 것보다는 당연히 단 한 번만 주의를 기울이는 편이 훨씬 행복한 경우일 것입니다.

- Modern C++ Design

언어적으로 제약 조건을 기술하는 기능을 활용하면 여러모로 편하다.
컴파일러, 또는 자동 오류 검사 도구를 사용하여 제약 조건 위반을 바로 찾아낼 수 있다.
심지어, 요즘 개발 툴은 제약 조건을 반영하여, 자동 완성, 오류 검사 등으로 코딩을 도와준다.
개발자는 제약 조건에 신경쓸 필요없이 코딩에만 집중하면 된다.

  1. 또 한가지 흔한 유형은 테스트 코드를 전혀 만들지 않기 [본문으로]
저작자 표시 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'Theory > Programming Language' 카테고리의 다른 글

getter/setter를 올바로 사용하기  (1) 2017.02.13
public, private 키워드가 필요한 이유  (0) 2017.02.08

알림

이 블로그는 구글에서 제공한 크롬에 최적화 되어있고, 네이버에서 제공한 나눔글꼴이 적용되어 있습니다.

카운터

Today : 79
Yesterday : 122
Total : 164,455

티스토리 툴바