예전부터 많이 들어봤던 '인터페이스'와 'API'에 대해 공부했다. 추상적으로만 알고 있던 개념이었는데 조금 더 가까워진 것 같다.
실제로 더 개발을 해봐야 자연스럽게 이해가 가능할 것 같긴 하지만 지금까지 공부했던 내용을 정리해보고자 한다.
API
API란 'Application Programming Interface'의 준말로서, 응용 프로그램 간의 소통에 사용할 수 있는 인터페이스라고 할 수 있다.
여기서 응용 프로그램이란 운영체제에서 실행되는 소프트웨어를 말한다. 예를 들면, 크롬, 한글, 카카오톡 등이 있다.
Interface
API를 이해하기 위해서는 일상에서도 많이 쓰이는 'interface'라는 단어를 먼저 알아야 한다.
'interface'는 서로 다른 두 개체간의 상호작용을 위한 접점이라고 할 수 있으며, 우리가 식당에 가면 마주하는 점원들을 예로 들 수 있다. 손님이 점원에게 음식을 '요청'하면, 점원은 요리사에게 그 요청을 요리사에게 전달해주며, 요리사는 요리를 완성하여 점원을 통해 손님에게 '응답'하는 것이다.
컴퓨터와 스마트폰을 일상과 뗄 수 없는 요즘에는 'interface'를 떠올릴 때 더 친숙한 것이 'UI'이다.
'UI'란 'User Interface'로 사람과 컴퓨터의 소통을 위한 접점이라고 할 수 있으며 간단하게 세 종류로 나눌 수 있다.
- Hardware User Interface
컴퓨터에서 작업을 하기 위해 '키보드'라는 인터페이스를 통해 작업을 명령한다. 자동차 문을 열때 사용하는 '스마트 키'도 자동차와 운전자를 연결시켜 주는 인터페이스라고 볼 수 있다.- Graphical User Interface(GUI)
사용자가 컴퓨터와 소통할 수 있도록 하는 그래픽적인 요소를 가지고 있는 인터페이스를 말한다. 모니터를 통해 볼 수 있는 프로그램 아이콘, 마우스 포인터 등이 있다.- Web User Interface(WUI)
웹 브라우저에서 매일 볼 수 있는 요소들로서, 검색버튼이나 결제버튼 등이 있다. (생각해보면 과거에는 이러한 인터페이스들을 당연시하면서도 인터페이스라고 인지하지 못하고 지나쳤던 것 같다.)
웹 서비스에서의 API
API가 '응용 프로그램 간의 소통에 사용할 수 있는 인터페이스'라고 했을 때, 웹 서비스에서의 API는 그 자체로 애플리케이션이라고 볼 수 있다. 웹 서비스가 운영되기 위해서는 간단히 세 가지 애플리케이션이 필요하다.
- Client Application
사용자가 서비스를 이용하기 위해 사용하는 웹 브라우저, 모바일 앱 등을 말한다.- Databse Application
서비스 운영을 위한 각종 데이터(회원정보, 게시글 정보, 이미지, 영상 등)를 영구적으로 보존할 수 있는 애플리케이션이다.- API Application
사용자가 웹 브라우저를 통해 SNS를 이용할 때 보여지는 데이터(게시글)와 데이터 관련 작업(사진 게시, 댓글 작성 등)은 데이터베이스와 소통을 하고 있기 때문이다. 이때 브라우저와 데이터베이스를 연결하여 데이터를 읽고, 쓰게 하는 접점이 바로 'API' 이다.
지금 'API'를 실제로 개발하는 연습을 하고 있는데 쉽지 않다..
요청한 정보에 대해 정확하게 응답하고, 그 속도가 빨라야 좋은 API가 아닐까 하는 생각이 드는데, 일단은 공부나 더 해야겠다...