SSISO Community

시소당

자바 인터페이스 개념 2

이해를  돕기위해  개념적인  부분만  간단한  예를  통해  설명드립니다.

인터페이스란  말  그대로  인터페이스  입니다.  사실  우리가  어떤  개념을
이해하고자  할  때,  쉽게  간과하고  지나치는것이  용어  자체의  뜻인데요
해당  용어  자체에  50%  이상의  정답이  들어  있다고  해도  과언은  아닙니다.

인터페이스란  용어의  사전적  의미는  [경계면,  공유영역,  대화,  의사소통]
이정도이고,  IT  쪽에선  그와  비슷하게  흔히  [상호작용]이란  말로  해석되곤
합니다.  이  용어의  뜻에  이미  절반의  해답이  있습니다.

질문자  분께서  궁금해  하시듯이  인터페이스란  것  다  필요없고  그냥  메소드
구현만으로도  충분히  모든  로직이  작동되는것  맞습니다.  하지만  여기에는
전제  조건이  있습니다.  바로  [나홀로  작동]  입니다.  즉,  위의  용어에  반대
되는  조건이  전제가  되었을  때란  것이죠.  상호작용이  필요없을때는  인터페
이스가  필요없습니다.

이해를  돕기위해  실생활의  간단한  예를  들어  볼까요.  질문자  분께서  어떤
가전제품(TV,  냉장고,  세탁기  등등  아무거나)을  구매하실때  염두에  두고
고르는  항목중  전기를  공급하기위해  가장  중요한  콘센트  사이즈나  콘센트
핀의  수를  염두에  두지는  않습니다.  단지  댁내의  전원이  110V  인지  220V
인지만  알고  거기에  맞는  제품을  사면  댁내의  어떤  전원  컨넥터에나  다
연결할  수가  있죠.

왜  그럴까요?  그건  110V  또는  220V  에  해당하는  [표준규격]  이  이미  정해져
있고,  모든  가전제품  제조사는  이  [표준규격]에  맞도록  콘센트를  제작하고
있기  때문이죠.  이런것이  바로  상호작용을  위해  필요한  [인터페이스]  입니다.
즉  이  [표준규격]은  모든  제조업체들이  지켜야  하는  규격을  [정의]  만  할뿐,
실제  [구현]은  하지  않죠.  (실제  제작은  제조사에서...)

이런  용도를  프로그래밍의  입장에서  개념적으로  활용한  것이  바로  [인터페이스]
입니다.  자바에서  [인터페이스]는  이를  사용하기  위해  필요한  메소드를  [정의]
만  할뿐  실제  [구현]은  하지  않습니다.  즉,  사용을  위해  꼭  필요한  메소드들을
[정의]만  해놓고  배포를  하면  이를  사용하는  사용자  입장에서는  이  [정의]를  상
속받아  나름대로의  [구현]을  함으로써,  미리  정해진  규격(인터페이스)에  맞도록
구현이되는  것이죠.

질문자  분께서  질문하신  런어블,  액션리스너  같은  인터페이스는  배포자  입장(sun)
에서는  실제  규격만을  정의해  놓은  상태이고  실제  사용자(질문자님)는  이를  상속
받아  정해져  있는  메소드를  구현해  놓음으로써,  정해진  규격대로의  메소드  호출
(run  메소드나  각종  이벤트  메소드들..)이  정상적으로  이루어  질수  있게  되는
것이죠.

설명하다보니  좀  길어졌는데  이해가  되셨나요?  ^^;;

619 view

4.0 stars