레이블이 개념인 게시물을 표시합니다. 모든 게시물 표시
레이블이 개념인 게시물을 표시합니다. 모든 게시물 표시

2010년 4월 12일 월요일

인터페이스 이야기


 
"객체지향의 꽃은 무엇인가?"

이러한 질문을 누구로부터 듣는다면
여러분은 뭐라고 대답하실 건가요?

캡슐화, 다형성, C++, 오버라이딩, 오버로딩, 추상화, 상속, virtual 기타 등등....

수많은 후보가 있을 거라 생각합니다.
이들 중 제가 이야기 하고 싶은 후보가 하나 있습니다.

바로 "인터페이스" 입니다.



인터페이스는 객체지향의 개념중
가장 늦게 등장했지만, 그 등장은 필연적인것이 아니었나 생각합니다.
(C++, 스몰토크엔 없지만, 유사한 개념이 있고,
C# JAVA등 나중에 등장한 언어에서는 필수적인 요소입니다.)
하지만 딱 봐서는 도대체 이것이 왜 나왔고, 어디에 써야 하는지 알기 어렵습니다.

저도 도대체 인터페이스가 무엇을 위한 것인지, 이해하기 어려웠고 오랫동안 알고 싶었습니다.
그래서 여러 글과 책을 보고 나름 연구해본 결과를 아래 공유합니다. (스크롤 압박 주의)


1) 인터페이스는 무엇을 위한 것인가

2) 인터페이스는 언제 어떻게 써야 할까

 
 
이렇게 인터페이스는 가장 나중에 나온 객체지향 개념답게, 객체지향을 확실히 객체지향 답게 만들어주는 중요한 기능을 제공해주고 있습니다. 따라서 인터페이스에 친해진다면 좀더 객체지향다운 코드를 짜실수 있을 겁니다.
 
지금까지의 이야기는 제 경험과 연구 그리고 생각에 의한 이야기이기 때문에 실제 사실과는 조금 다를수 있습니다. 다만, 보시는 분들이 이글을 통해 "인터페이스"에 대해서 좀더 이해를 넓히는 실마리가 되었음 합니다.