-
public, private, const 키워드가 필요한 이유Programmer/Programming 2017. 2. 8. 11:08
public/private 키워드는 정보 은닉, 캡슐화 등에 도움을 주는 도구이다.
정보 은닉은 복잡하거나 변경 가능한 설계 결정을 안정적인 인터페이스 뒤로 숨기는 기본 설계 원리이다.
정보 은닉은 모듈을 분할하기 위한 기본 원리다.
모듈은 변경될 가능성이 있는 비밀을 내부로 감추고 잘 정의되고 쉽게 변경되지 않을 공용 인터페이스를 외부에 제공하여 내부의 비밀에 함부로 접근하지 못하도록 한다.캡슐화는 ‘온갖 방법의 숨기기’라고 생각하면 쉽다. 캡슐화를 통해 데이터를 숨길 수 있다. 그리고 구현 코드, 파생 클래스 또는 여러 가지의 것들을 숨길 수 있다.
- 알란 섈로웨이, 제임스 트로트, “알기 쉬운 디자인 패턴캡슐화는 가해지는 변경에 대한 파급 효과를 일정한 영역 내부로 제한시킬 수 있다.
대부분의 컨텍스트에서 캡슐화와 정보 은닉은 동일한 의미를 지니다.const는 값을 변경시킬 수 없도록 돕는다.
변경되면 안되는 값에 const를 붙여서 그 의도를 명확히 한다.제약 조건 키워드의 불편함을 호소하며 무용론을 펼치는 이들이 있다.
이런 키워드를 붙일 필요없다.
구현하면서 제약 조건을 붙이는 것은 귀찮으며 생산성을 떨어뜨린다.
필요하다면 주석이나 문서로 설명하면 충분하다.라고 주장한다.
제약 조건을 사용하지 않는 것은 흔히 보는 기술 부채이다. 1
코딩하면서 제약 조건을 고민하는데 시간을 들이지 않기 때문에 빠르게 작성할 수 있다.
소프트웨어가 커지고 복잡해지면 이것이 발목을 잡는다.
제약 조건을 전부 기억하거나 매번 주석이나 문서를 참고해야 한다.
후반으로 갈수록 생산성이 현저하게 떨어진다.프로그램의 곳곳에서 백여 번에 걸쳐서 주의력을 소진하는 것보다는 당연히 단 한 번만 주의를 기울이는 편이 훨씬 행복한 경우일 것입니다.
- Modern C++ Design
언어의 제약 조건을 활용하면 여러모로 편하다.
컴파일러, 또는 자동 오류 검사 도구를 사용하여 제약 조건 위반을 바로 찾아낼 수 있다.
심지어, 요즘 개발 툴은 이런 조건을 반영하여, 자동 완성, 오류 검사 등으로 코딩을 도와준다.
개발자는 형식이나 조건 등에 신경쓸 필요없이 코딩에만 집중하면 된다.- 또 한가지 흔한 유형은 테스트 코드 만들지 않기 [본문으로]
'Programmer > Programming' 카테고리의 다른 글
문제가 발생하면 근본 원인 찾아라. (1) 2017.03.06 엑세스 함수(getter/setter)를 올바로 사용하기 (1) 2017.02.13 C언어에서 struct 정의 그대로 이진 데이터로 만들기 (0) 2017.01.13 교착상태(deadlock)를 프로세스 상태와 디버거를 사용해서 찾아내기 (1) 2017.01.06 버젼 관리 시스템을 사용하여 문제를 해결하기 (0) 2017.01.06 댓글