인터페이스
인터페이스(Interface)는 두 개의 독립된 시스템, 장치, 프로그램 등이 서로 연결되어 상호 작용할 수 있도록 하는 경계 또는 지점이다. 물리적인 연결 지점일 수도 있고, 소프트웨어적인 연결 규약일 수도 있다. 넓은 의미로는 인간과 기계 사이의 소통을 가능하게 하는 수단(사용자 인터페이스)까지 포함한다.
주요 유형:
-
하드웨어 인터페이스: 물리적인 연결을 통해 데이터를 주고받는 인터페이스. 예시로는 USB, HDMI, 시리얼 포트 등이 있다. 전기적 신호, 물리적 형태, 데이터 전송 프로토콜 등을 규정한다.
-
소프트웨어 인터페이스: 프로그램 간의 통신을 위한 인터페이스. API(Application Programming Interface)가 대표적인 예시이다. 특정 기능을 수행하기 위한 함수 호출 규약, 데이터 형식 등을 정의한다.
-
사용자 인터페이스 (UI): 사용자가 시스템과 상호 작용하는 데 사용하는 모든 수단. GUI(Graphical User Interface), CLI(Command Line Interface), 터치 인터페이스 등이 있다. 사용자가 정보를 입력하고 결과를 확인하는 방식을 정의한다.
역할 및 중요성:
- 모듈화 및 독립성: 인터페이스를 통해 시스템의 각 부분을 독립적으로 개발하고 유지보수할 수 있다. 인터페이스가 변경되지 않는 한, 내부 구현이 변경되어도 다른 부분에 영향을 주지 않는다.
- 상호 운용성: 서로 다른 시스템이 인터페이스를 통해 데이터를 교환하고 협업할 수 있도록 한다. 이를 통해 시스템 간의 호환성을 확보하고, 통합을 용이하게 한다.
- 추상화: 인터페이스는 시스템의 복잡한 내부 동작을 숨기고, 필요한 기능만 노출하여 사용자가 시스템을 더 쉽게 이해하고 사용할 수 있도록 한다.
참고:
- 프로그래밍 언어에서 인터페이스는 특정 클래스가 구현해야 하는 메소드 목록을 정의하는 추상적인 자료형으로 사용되기도 한다.