interface란 무엇인가? 내가 요즘 많이 듣는 질문이다. 이 interface가 무엇인지 내가 한번 제대로 알아보고자 이렇게 포스팅을 한다.
- 두 물제, 공간, 단계 등의 공통 접점면
- 독립되고 관계가 없는 시스템이 접촉하거나 통신이 일어나는 부분
- 인터페이스에서 상호작용이나 통신이 일어날 때의 수단
사전적 정의부터 살펴봤을 때 음.. 이거다! 싶은 느낌의 정의는 없다. 사실 이게 맞을지도 모른다. 이 interface는 추상적이라는 느낌이 든다..
여기서 공부 잘하는 친구 찬스를 써봤다. 그 친구에게 “interface가 뭐야?” 라고 물어보니 나온 대답은 이것이였다.
협업자들과의 약속, 명세와 같은 것
생각보다 명쾌한 대답이다. 그러면서 납득이 되는 말이었다. 이 인터페이스는 정보를 교환하는 경계이면서 공통 접점면이자 통신이 일어날 때의 수단이다.
즉, 소통을 하기 위한 접점이며 개발자들에게는 통신과 상호작용을 위해 정해둔 약속과 같은 개념인 것이다!
자 interface가 어떤 느낌인지 알았으니 이제 우리 주위의 interface들을 찾아보자!
interface는 접점이 무엇인지에 따라(?) 말이 애매하니 살짝 수정해보자면 연결이 필요한 서로 다른 대상이 무엇인지에 따라 Hardware Interface, Software Interface, User Interface로 구분이 된다.
접점이 Hardware라면 Hardware Interface라고 불리운다.
이렇게만 설명하면 멋이 없으니 조금 더 살을 붙여서 설명을 해보자면
서로 다른 물리적인 기기들을 연결하여 상호 작용할 수 있도록 하는 장치나 방법
이라고 할 수 있다.
예시로는 USB가 있다. USB는 컴퓨터와 주변 장치의 연결 방법을 통일하기 위해 만들어진 대표적인 하드웨어 인터페이스이다.
마찬가지로 접점이 Software라면 Software Interface라고 불린다.
조금 더 자세히 들어가보면
컴퓨터 하드웨어의 동작을 지시하고 제어하는 프로그램들이 상호 작용하는 방식
이라고 할 수 있다.
가장 대표적인 예시로 API(Application Programming Interface) 가 있다. API는 응용 프로그램 간에 호환이 가능하도록 상호 작용하는 방법을 정해놓은 것이다.
User Interface의 앞글자만 따서 적어보면 이게 무엇인지 조금 더 쉽게 알 수 있을 것이다.
맞다. 바로 UI다. 다들 흔히 UI, UI 하는데 UI의 풀네임이 바로 User Interface다.
사람과 컴퓨터 간의 상호 작용 방법
UI는 사람과 컴퓨터 간의 상호 작용이다. 이것은 예시가 너무 많아서 다 적기가 힘들다..
흔히 우리가 컴퓨터를 할 때 필요한 키보드, 마우스는 컴퓨터의 하드웨어와 사람이 상호작용하는 방법이고,
바탕화면의 아이콘을 클릭하면 프로그램을 실행시키는 건 컴퓨터의 소프트웨어와 사람이 상호작용하는 방법이다.
또한 CLI와 GUI가 있다.
개발을 했다면 꼭 한번씩은 들어봤을법한 단어들이다.
CLI는 Command Line Interface로 사용자가 명령어를 입력해 컴퓨터 수행해야 할 작업을 지시하는 방식이다. 따라서 우리가 보통 검은 배경에 하얀 글씨로 영어를 입력해서 컴퓨터의 동작을 지시할 수 있도록 한 환경을 CLI라고 한다.
GUI는 Graphical User Interface로 Command, 즉 명령어를 모르는 사람도 컴퓨터를 쉽고 편리하게 사용할 수 있도록 조금 더 직관적으로 아이콘 등을 사용하여 그래픽으로 나타낸 것을 말한다. 일상생활에서 접할 수 있는 시각적인 화면들은 GUI라고 생각하면 된다.
❗UI랑 GUI랑 차이가 없는거 아닌가요?

이 부분에 대해서 참 많이 찾아봤었는데,
UI는 음성과 같은 비시각적인 부분을 포함하는 것이고 GUI는 시각적 화면만을 뜻한다고 한다.
따라서 UI 안에 GUI가 있는 것이다.
조금 더 자세한 내용을 원한다면 잘 정리된 이분의 글을 읽어보길 바란다.
interface는 통신과 상호작용을 위해 정해둔 약속과 같은 개념이라고 할 수 있다!
이 interface의 종류에는 Hardware Interface, Software Interface, User Interface가 있다!