Dev-Tino 1주차(1):: 인터페이스(Interface)
인터페이스, Interface, 인터페이스의 정의
게시글의 내용과 관련이 있거나 없거나..
본 게시글에서는 인터페이스에 대한 개념을 정리해본다. 내가 알고 있던 ‘인터페이스’는 자바의 인터페이스이다. 나는 개념을 학교의 첫 학기, 자바 수업의 중간고사를 본 이후에야 제대로 배웠다.
‘클래스들이 구현해야 하는 동작을 강제하는 일종의 추상 클래스.’ 그것이 내가 알고 있던 ‘인터페이스’의 모든 것이었다.
자바의 인터페이스는 대충 이와 같은 역할을 한다. 이 ‘인터페이스’에 대한 설명은 이 곳에서 설명하지 않는다.
그러나 프론트엔드분야의 인터페이스는 조금 다른 정의를 가진다. 이 분야의 인터페이스는-대중적인 인터페이스의 정의란- ‘사물과 사물 사이 또는 사물과 인간 사이의 경계에서 상호 간의 소통을 위해 만들어진 물리적 매개체나 프로토콜’을 이른다. 주로 컴퓨터 분야에서 사용되는 용어로 I/F로 축약하여 사용하기도 한다. 크게 ‘하드웨어 인터페이스’, ‘소프트웨어 인터페이스’, ‘사용자 인터페이스’ 세 가지이다.
1) 하드웨어 인터페이스
컴퓨터 등 정보 기기의 하드웨어 간 통신을 위해서 존재하는 입출력 포트의 전기적 연결 장치인 커넥터(connector), 신호의 송수신 방법(프로토콜) 등을 말한다. 컴퓨터 관련 버스, 저장 장치 및 다양한 입출력 기기들 내에 존재하며, 주로 병렬 연결과 직렬 연결로 나뉘어진다. 컴퓨터 내부 장치나 구성 요소간의 상호 접속을 가능하게 하는 플러그, 커넥터, 카드 등이 하드웨어 인터페이스에 속한다. 하드웨어 인터페이스의 종류로는 USB(Universal Serial Bus)와 같은 직렬 커넥터, RS-232C와 같은 통신용 직렬 인터페이스, SCSI와 같은 병렬 인터페이스 장치 등이 있다.
2) 소프트웨어 인터페이스
소프트웨어 간의 통신을 위해 메시지를 전달하는 방식 등이 결정된 것으로, 다양한 레벨에서 다양한 종류의 인터페이스가 존재한다. 운영체제(OS)와 하드웨어들 사이의 인터페이스, 운영체제와 응용 프로그램이 상호 작용하는 인터페이스, 객체 지향 프로그래밍에서 응용 내의 객체들이 서로 상호 작용할 수 있도록 하는 메소드 등이 소프트웨어 인터페이스에 속한다. 소프트웨어 설계 시 자원에 대한 접근을 잘 정의된 진입점(entry point), 즉 인터페이스를 통해서만 가능하도록 함으로써 시스템 자원에 대한 기능성과 안정성을 제공할 수 있다.
3) 사용자 인터페이스
기계, 특히 컴퓨터와 사용자(인간) 사이의 상호 작용과 정보 교환을 위한 인터페이스로 컴퓨터 상호 작용(HCI : human-computer interaction) 혹은 인간-기계 인터페이스(MMI : man-machine interface)라고도 한다. 사용자 인터페이스는 크게 입력과 출력의 두 가지 방법을 제공한다. 입력은 사용자가 시스템을 조작하는 방법을 정의하고, 출력은 사용자가 조작에 따라 시스템이 생성한 결과를 제시하는 수단이다. 좋은 사용자 인터페이스는 심리학과 생리학에 기반하여 사용자가 필요한 요소를 쉽게 찾고 사용하며 정확한 결과를 손쉽게 얻어낼 수 있도록 설계해야 한다.[네이버 지식백과] 인터페이스 [interface] (두산백과 두피디아, 두산백과)
이 중 이 곳에서 설명할 인터페이스는 ‘사용자 인터페이스’이다. 프로그램이 사용자에게 표시하는 모든 그래픽과 텍스트, 음성 정보와 상호작용 방법을 모두 인터페이스라 이른다. (‘상호작용’에 초점을 맞추면 좋다.) 프론트엔드 프로그래머들은 이 인터페이스를 사용자가 한 눈에 이해할 수 있도록 구상하고 만들어야 한다. 사용자가 무의식적으로 사용 방법을 이해하고 사용할 수 있도록 만드는 것. 참으로 쉬우면서도 어려운 일이다.
우리는 문이 있다면 ‘손잡이’를 잡아 돌려 문을 연다. 밀거나 당기면 문을 연다는 것을 우리는 학습을 통해 알고 있다. 이 경험은 프론트엔드 프로그래밍에도 응용할 수 있다. 만약 텅 빈 화면에 ‘손잡이’가 달려있는 문을 본다면 사용자는 문 또는 손잡이를 누를 것이다. 그렇다면 웹은 사용자와 상호작용하여 ‘문을 여는 듯한 모션’을 제시할 것이다. 이는 성공적으로 상호작용한 예시이다.
그러나 프로그래머가 ‘웹사이트에 문을 만들어두고’ ‘창문’을 눌러야만 다음 사이트로 넘어갈 수 있도록 구성했다고 해보자. 그렇다면 사용자는 어떻게 해야 다음 단계로 넘어갈 수 있을지 알지 못하고 헤맬 것이다. 그러므로 UI/UX를 디자인할 때에는 사용자가 쉽게 활용할 수 있도록 만들어야 함에 유의한다. 이는 디자이너뿐만 아니라 그를 구현하는 프로그래머 역시 신경써야 하는 부분이다.
[자료 출처]
-https://terms.naver.com/entry.naver?docId=2837557&cid=40942&categoryId=32828 (네이버 지식 백과)
-https://realty.chosun.com/site/data/html_dir/2019/06/16/2019061600346.html (문 사진)
- 카테고리
- #기타
댓글 0
추천 포스트