:: ADVANCE ::

[OOP] 인터페이스 본문

Study/OOP

[OOP] 인터페이스

KSJ14 2015. 8. 31. 03:15
반응형

[OOP] 인터페이스


인터페이스 


검색을 해보면 빈 껍데기, 구현을 해서 사용해야 하는 것 이라고 나온다.


더 쉬운 정의로는 


어떠한 기능을 정의 해놓지 않고, 단지 비슷한 기능을 모아서 어떻게 만들겠다고 추상적으로 선언만 해놓은 것


이라고 한다.


즉, 어떠한 공통적인 (또는 비슷한) 기능을 추상적으로 선언해놓고

이를 상속 또는 implements 받아서 구체적인 부분을 정의해서 사용하도록 하는 것이다.


예를 들어 키보드를 보면


한국 키보드, 영어 키보드, 일본어 키보드가 있다고 하자.


각각의 키보드에 각각의 언어 필드가 있고 각각의 입력이라는 기능을 가지고 있을 수 있다.

한국 키보드에 한국어 필드와 한국어 입력이 있고

영어 키보드에 영어 필드와 영어 입력이 있고

일본어 키보드에 일본어 필드와 일본어 입력이 존재한다.


하지만 키보드 자체는 언어 필드가 존재하고 입력이라는 기능이 공통되게 존재한다.


따라서 표준 키보드에 언어와 입력 메소드를 정의하지 않고 선언만 해놓고


한국 키보드, 영어 키보드, 일본어 키보드에 각각 표준 키보드를 implements 해서 정의를 구현해 사용하도록 해야 한다.


implements는 구현하지 않은 메소드가 존재하면 컴파일 에러를 발생시킨다.



인터페이스는 다중상속을 지원하지 않는 자바에서 다중상속과 비슷한 기능을 구현할 수 있게 한다.


인터페이스는 멤버변수와 메소드로 구성되는데 멤버변수는 모두 상수형으로 선언되고 메소드는 모두 추상 메소드로 선언된다.




 하나의 시스템을 구성하는 하드웨어와 소프트웨어 또는 2개의 시스템이 상호 작용할 수 있도록

접속되는 경계(boundary)나 이 경계에서 상호 접속하기 위한

하드웨어, 소프트웨어, 조건, 규약 등을 포괄적으로 가리키는 용어.

인터페이스 구성 요소로는 신호의 전압, 주파수, 타이밍 등의 전기적 특성,

공통의 물리적 상호 접속 특성(기계적 특성),

명령과 응답 등의 논리적 특성 등이 있으며 정상적인 상호 접속을 위해서는 이들 조건이 일치해야 한다.

 

 컴퓨터 처리와 컴퓨터 통신에서는 인간과 프로그램이 상호 작용할 수 있게 하는

사용자 인터페이스(UI)와 같은 소프트웨어 인터페이스와

하드웨어 장치 간에 상호 작용할 수 있게 하는 하드웨어 인터페이스가 여러 수준에서 일어난다.

 

 가장 두드러지게 눈에 띄는 소프트웨어 인터페이스인 UI는 기본적으로 문자 방식 사용자 인터페이스(CUI), 

메뉴 방식 사용자 인터페이스, 그래픽 사용자 인터페이스(GUI)의 3종류로 분류된다.

 

UI 이외의 소프트웨어 인터페이스로는

컴퓨터 내부에서 응용 프로그램이 운영 체계(OS)와 상호 작용할 수 있게 하는 인터페이스,

OS가 컴퓨터의 하드웨어와 상호 작용할 수 있게 하는 인터페이스와 같이 눈에 보이지 않는 것이 있다.

 

하드웨어 인터페이스로는 컴퓨터 내부에서 장치나 구성 요소 간을 상호 접속하는 눈에 보이지 않는 인터페이스,

컴퓨터와 주변 장치 간의 접속과 정보 전송을 가능하게 하는 플러그, 접속기, 카드 등이 있다.

업체별, 국가별로 개발한 다른 시스템 간의 통신이 가능하게 하기 위해서는 인터페이스를 표준화할 필요가 있다.

각국에서는 표준화 기관이나 업계 단체에서 표준화를 추진하고, 국제적으로는 국제전기통신연합(ITU)이나 국제표준화기구(ISO) 등에서 표준화를 진행한다. 예를 들면, RS-232는 미국전자공업협회(EIA)와 미국표준협회(ANSI)에서 작성한 컴퓨터와 주변 장치 간 또는 데이터 단말 장치(DTE)와 데이터 회선 종단 장치(DCE) 간의 인터페이스 표준이고, V.24는 RS-232와 호환성이 있는 인터페이스 표준으로 ITU-T(구 CCITT)에서 권고하는 국제 표준이다. ISO에서 표준화한 OSI 기본 참조 모델에서는 다른 시스템 간의 통신을 위한 하드웨어와 소프트웨어 구성 요소 간의 인터페이스 지침이 정의되어 있다.

 

 ex) 전화, 휴대전화

반응형

'Study > OOP' 카테고리의 다른 글

[OOP] 객체지향  (0) 2015.03.24
Comments