2010년 4월 12일 월요일

인터페이스 이야기


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

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

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

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

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



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

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


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

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

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






댓글 3개:

  1. OOP의 꽃, Interface, Abstract... 그중 Interface에 대한 이야기라.. 기대됩니다^^~ 두근두근!

    답글삭제
  2. 간단히 줄이면 "캡슐화의 확장"일 뿐이라 생각합니다.

    답글삭제
  3. @류청파(koc/SALM) - 2010/04/15 22:48
    댓글 감사합니다.

    열마디를 한마디로 잘 이야기 해주시는군요 :)

    답글삭제