책 정리/C++ Coding Standards : C++ 코딩의 정석

항목 42 : 내부의 것은 너무 노출시키지 말라. ( Don’t give away your internals. )

최익필 2009. 3. 31. 13:43

{

내부의 것은 무엇을 말하는가?

바로 핸들을 말한다.


핸들이란 무엇인가?

차라는 녀석을 마음데로 움직이는 조종대 이다.


이 조종대를 왜 노출 시키지 말아야 하는가?

나라에선 차가 너무 유용하고, 위험하기에, 운전면허증을 따야지만 몰 수 있게 만들었다. 마찬가지다. 핸들 역시 아무에게나 잡을 수 있게 허락해 준다면, 위험해서 도로에 나오겠는가?

.. 너무 비유만 하지 말고 C++ 로 설명해 해줘~
소켓을 예로 들겠다.


소켓을 없앴는데, 어찌 쓰다 보니까, 다시 바인드 할 수도 있는 노릇이다.


예외적으로 이렇게 빼야 할 때도 있는데, 그럴때는 어떻게 하는가?

소켓의 경우 IOCP 와 연결하기 위해서 그 값이 필요로 하는데, 그때는 as_handle 같은 함수를 만들어서, 탈바꿈 해줌으로써, 조금은 더 좋게 사용 할 수 있다.

예)

휴~ 중요한 것은 내부 핸들을 손 쉽게 빼내지 말라는 것이다.


그러면 뺄때마다 성능이 떨어지는데??

음.. 우선 잘 짜놓고 생각해도 늦지 않을것 같다. 성능은 항상 맨 마지막에 고려해볼 대상.(물론 예외는 있지만 ㅋ)
}