제가 정의한 인터페이스는 저희와 다른 사물들 사이의 소통을 도와주는 역할 입니다.
에어컨을 틀고싶으면 에어컨 리모콘을 들고 전원버튼을 누르는데 여기서는 리모콘이 에어컨과 저를 연결해주는 인터페이스가 될 수 있습니다
인터페이스는 이러한 서로다른 사물들 사이의 소통을 위해 미리 약속을 정의해두는데요
예를 들어 a라는 행동을 하면 b라는 값이 실행되도록 미리 정의를 해두는 것입니다.
노트북에서 전원버튼을 누르면 노트북의 전원이 켜진다
마우스 왼쪽버튼을 누르면 클릭이 된다. 이런 내용이 사전에 정의가 되어있기 때문에 저희가 이러한 컴퓨터나 마우스를 쓸 때 새롭게 배우지않고 어느 마우스를 잡더라도 바로 작업을 할수 있습니다
인터페이스의 종류는 일상생활에서 보면 이런 컴퓨터나 키보드, 마우스도 인터페이스가 될 수 있고, 우리가 사용하는 윈도우나 안드로이드도 인터페이스가 될 수 있습니다. 컴퓨터는 모두가 알다시피 0과 1로 이루어져있는데 저희는 그걸 몰라도 컴퓨터를 하는데 문제가 없습니다. 그건 윈도우가 그래픽유저인터페이스(GUI)를 제공해주고 있기 때문에 인터넷 아이콘을 누르면 인터넷이 실행될 수 있는 겁니다. 이또한 아이콘을 누르면 그 프로그램이 실행되기로 약속이 되어있는 겁니다.
그렇기 때문에 인터페이스는 미리 정의된 약속이기도 하고, 또 규제사항이 될 수도 있습니다.
컴퓨터를 사용하기 위해 키보드를 구매했는데, 만약 여기에 엔터키가 없다면 그건 제대로된 키보드라고 할 수 있을까요? 어느 제조사의 키보드를 구매하던지 해당 키보드에는 꼭 들어가야하는 키들이 정해져 있을것입니다.
이처럼 인터페이스는 어떠한 요소와 다른 요소들이 쉽게 소통할 수 있도록 미리 약속해둔 매개체라고 생각하시면 될 것 같습니다.
출처 : https://youtu.be/a6F7rIKaxzo (삼평동연구소)
인터페이스
상호작용을 위해 미리 정의된 약속
a라는 함수를 호출하면 b라는 값이 리턴된다
tv, 리모콘
컴퓨터의 파워전원버튼
전원버튼을 누르면 컴퓨터가 켜진다
a와 b를 연결하는것
application programming interface
개발에 사용되는 어떤 기능을 만드는 제조사가 있다면 그 기능을 개발에 잘 사용할 수 있도록 사용자에게 제공해주는 어떤 프로그램이나 코드나 문서같은 세트를 의미
개발자는 이걸 이용
결제기능을 구현하고 싶다 -> 구글인앱결제를 사용
호출벨
출처 : https://youtu.be/Yv5Uw_vS3Uo (생활코딩)
A라는 인터페이스를 사용하는 클래스가 있다면 해당 클래스는 A에 속한 메서드를 무조건 사용하도록 규제됨
인터페이스는 껍데기이자 상호작용을 위해 미리 약속된 약속 / 약속이기 때문에 규제사항이 있음
쉽게 말하면 a를 하면 b라는 값이 출력된다는 뜻
에어컨 리모콘을 보면 버튼이 있는데, 전원버튼을 누르면 에어컨의 전원이 켜지고, 바람세기에서 위로 향하는 화살표를 누르면 바람이 세지고 아래로 향하는 화살표를 누르면 바람세기가 약해짐
이처럼 전원버튼을 누른다 --> 에어컨전원이 켜진다
우리가 미리 약속을 해두었기 때문에 이렇게만 만들어짐
그리고 리모콘엔 전원버튼, 바람세기 같이 정해져있는 기능이 있잖아요
여기서 만약에 전원버튼이 없으면 이 리모콘은 리모콘으로서의 기능을 상실. 리모콘이라고 할 수 없음
그렇기 때문에 인터페이스는 규제사항이라고도 합니다
자바에서 예를 c라는 클래스가 a라는 인터페이스를 상속받으면 a인터페이스에 속한 메서드를 무조건 사용해야합니다. 이또한 리모콘에 필요한 기능이 없으면 리모콘이라고 할수없는 것과 같은 뜻
그리고 껍데기이기 때문에 해당 기능이 어떤 방식으로 설계되어있는지는 중요하지않음 그 기능이 작동하기만 하면됨
출처 : https://youtu.be/ZQL_AhZQvtU (UX stove)
서로 다른 두 시스템과 장치 또는 소프트웨어를 연결해주는 접속장치
두 개의 대상을 이어주는 매개체
입력과 출력으로 이루어짐
입력 : 한 쪽 장치가 다른 장치에게 정보를 전달하거나 명령을 내림
출력 : 전달된 정보를 다른 장치가 받아들이는 과정
(메모장이라는 인터페이스에 키보드로 입력하면 글자를 출력해줌)
하드웨어인터페이스 (모니터... 기계와 기계를 연결)
소프트웨어인터페이스 (윈도우, ios, 안드로이드, 리눅스)
사용자인터페이스 (사용자와 각각의 시스템 사이의 정보채널, 디자인을 통해 사용자와 입력/출력 과정에 대한 커뮤니케이션방법)
명령형 인터페이스
터치 인터페이스
보이스 인터페이스