인터페이스란 무엇인가?

접두어 inter과 face의 결합으로, 중간에서 마주 보다라는 의미 컴퓨터 운영체제에서 인터페이스(Interface)란, 컴퓨터 시스템과 사용자 또는 응용 프로그램 간의 상호작용을 가능하게 하는 수단입니다. 운영체제의 인터페이스는 일반적으로 사용자가 시스템과 상호작용하는 방식을 정의하며, 시스템의 기능을 사용하고 다룰 수 있는 방법을 제공합니다.

컴퓨터 시스템과 사용자 또는 응용 프로그램 간의 상호작용하는 방법 세가지 - CLI - GUI - API


1. CLI (Command Line Interface)란 무엇인가?

CLI

커맨드라인 인터페이스(Command-line Interface, CLI)란 사용자가 텍스트로 명령어를 입력하고 다시 텍스트로 결과를 화면에 출력해주는 인터페이스를 가진 컴퓨팅 인터페이스를 의미합니다. 좁은 의미에서 커맨드라인(명령줄)에서 명령을 입력한다는 의미로 쓰입니다만, 넓은 의미에서는 텍스트만으로 이루어진 인터페이스라는 뜻에서 문자 사용자 인터페이스(Character User Interface, CUI)라고도 불립니다. 커맨드라인 인터페이스는 구체적인 프로그램을 가리키는 단어는 아니며, 특정 방식의 애플리케이션 인터페이스에 대한 통칭입니다.


CLI의 장점

실행하는 데 창 환경이 필요하지 않습니다. 텍스트 터미널에서 실행할 수 있습니다. 숙련된 사용자는 종종 GUI를 사용하는 것보다 더 빠르게 작업을 수행할 수 있습니다. 일반적으로 GUI를 통하는 것보다 더 많은 기능을 사용할 수 있습니다. 하나의 작업으로 실행될 일련의 명령을 스크립팅하는 기능


CLI의 단점

배워야 할 명령이 많기 때문에 초보자에게는 혼란스러울 수 있습니다. 일반적으로 명령의 철자 및 구문 오류를 용납하지 않습니다. 쉘/터미널 액세스가 항상 쉽게 사용 가능한 것은 아닙니다.


2. GUI (Graphical User Interface)란 무엇인가?

GUI

그래픽 사용자 인터페이스는 마우스, 키보드 등을 사용하여 그래픽 요소로 구성된 창, 버튼, 아이콘 등을 통해 사용자가 시스템과 상호작용하는 방식입니다.


GUI의 장점

명령/단계를 기억할 필요가 적어 쉽게 배우고 사용할 수 있습니다. 일부 비기술 사용자가 기술 작업을 수행할 수 있는 유일한 방법일 수 있습니다. 전 세계 어디에서나 모든 컴퓨터의 웹 브라우저에서 종종 액세스할 수 있습니다. 장애가 있는 사용자를 위한 다른 인터페이스보다 접근성이 높을 수 있습니다.


GUI의 단점

사용자는 인터페이스에 포함된 기능의 하위 집합으로 제한됩니다. 작업을 수행할 때마다 모든 단계를 수작업으로 수행해야 합니다. 다른 인터페이스를 사용할 때보다 전문가가 작업을 수행하는 데 더 오래 걸릴 수 있습니다.


3. API (Application Programming Interface)란 무엇인가?

API

Application Programming Interface 한 프로그램에서 다른 프로그램으로 데이터 주고받기 위한 방법입니다. 서버와 같은 서로 다른 프로그램에서 요청과 응답을 주고 받을 수 있게 만드는 체계입니다. 즉, 프로그램과 프로그램을 이어주는 매개체 그 자체의 의미입니다.

식당의 예를 들어보면, 식당 메뉴판이 API가 된다. 메뉴판을 보고, 거기에 적힌 메뉴를 정확히 주문한다. 실제 웹서비스를 예를 들었을 때, 웹툰 보내주는 프로그램을 만들었다고 했을 때, 나는 이런 웹툰이 있다! 라는 메뉴판을 먼저 만들어줘야 한다. 그래야 서비스가 가능하다. 웹툰 서버와 손님이 웹툰을 주고 받기 위해 미리 만들어둔 메뉴판이라고 생각하면 된다.

그럼 도대체 방법이 정확히 뭘까? 추상적으로 방법이라고 설명한 것은, 실제 코드이다. API를 만들고, 동작시키는 모든 것은 코드로 이루어진다.

예를 들어, DB에서 웹툰 이미지를 뽑는 코드 유저가 이 URL로 GET 요청을 하면 안에 있는 부분을 실행해달라는 API 이 API를 유저에게 알려주면 된다.

참고) https://youtu.be/ckSdPNKM2pY 코딩애플 유튜브 채널


API의 장점

일반적으로 사용 가능한 모든 마지막 기능에 대한 액세스를 제공합니다. GUI 또는 CLI보다 효율적으로 실행할 수 있습니다. 다른 라이브러리 또는 서비스와 통합되는 애플리케이션에서 더 쉽게 사용할 수 있습니다.


API의 단점

사용하려면 상당한 프로그래밍 기술이 필요합니다. API를 사용하는 애플리케이션은 변경될 경우 업데이트해야 합니다. API를 사용하려면 개발자가 API를 호출하는 전체 애플리케이션을 작성해야 합니다.

서브목차