TIL | UI와 API 란?

Wook·2021년 12월 15일
0

TIL | Backend

목록 보기
3/19

UI (User Interface)

UI (User Interface)를 먼저 알아보겠습니다. Interface 는 한국어로 경계면 이라고 해석하기도 합니다. 한국어가 오히려 더 어렵게 느껴지기도 하네요. UI는 유저가 소프트웨어와 만나는 경계면. 즉, 유저가 소프트웨어에 접근하고, 명령을 내릴 수 있는 부분을 일컫는 말입니다.

스크린, 키보드, 마우스, 웹 브라우저 등이 해당됩니다. 예시를 읽으니 어떤 것을 지칭하는지 이해가 되시죠? 사람이 소프트웨어나 시스템과 접촉할 수 있는 것을 말합니다.

개발자로서, 웹 서비스에 사용자가 접근하게 하는 통로가 무엇일까요? 기본적으로 웹 화면입니다. 웹 서비스에서 UI를 만든다 라는 표현은 사용자가 직접 사용하고, 정보를 알아들을 수 있는 웹 페이지 화면을 만든다 라는 의미로 사용하기도 합니다.

API (Application Programming Interface)

API (Application Programming Interface) 는 이름에서 유추할 수 있듯, 어플리케이션과 어플리케이션이 서로 의사소통을 하고 데이터를 교환할 수 있도록 매개체가 되어주는 대상입니다.

페이스북에서 친구를 찾거나, 인스타그램 DM을 보내거나, 스마트폰에서 날씨를 확인하거나 하는 등의 동작들을 진행하려면 API가 필요합니다.

우리가 스마트폰으로 어플리케이션을 사용하면, 어플리케이션은 인터넷을 연결하고, 서버로 데이터를 전달합니다. 서버는 데이터를 전달받아 해석하고, 적절한 기능을 수행한 뒤, 다시 우리 스마트폰 어플리케이션으로 필요한 정보를 전송해줍니다. 스마트폰 어플리케이션은 받은 데이터를 다시 해석해서 우리가 읽을 수 있는 방법으로 표현해줍니다. 이 모든 과정이 API 입니다. 이 모든 과정이 API를 통해서 일어납니다.

조금 더 친숙하게 과정을 알아볼까요?

코로나가 종식되고, 여행을 가는 상황을 상상해봅시다. 우리는 온라인으로 비행기 티켓을 알아봅니다. 굉장히 고를 수 있는 옵션이 많겠죠? 어느 도시로 여행을 갈 지, 언제 갈 지, 언제 돌아올 지. 자, 우리는 비행기 티켓 예매를 할 수 있는 어플리케이션이나 웹 사이트에 접속합니다. 도시를 선택하고, 돌아올 날짜와 좌석을 선택하고, 다른 여러 옵션들도 선택합니다. 비행기가 예약되려면 우리는 항공사 웹사이트와 통신을 해야만합니다. 항공사 데이터베이스에 접속을 해야하고, 내가 선택한 비행기에 잔여 좌석이 남아있는지 확인해야 합니다. 내가 고른 날짜에 티켓 가격도 알아야 하죠.

그러나 우리는 직접 항공사 데이터베이스에 접속할 수 없습니다. 직접 항공사 내부 시스템에 접근해서 예약 하는 함수를 발동시키기도 어렵습니다. 이럴 때 티켓 예매 어플리케이션이 대신 항공사 시스템과 통신하여 이 과정을 진행합니다.

어플리케이션 (티켓 예매 어플리케이션)과 다른 어플리케이션 (항공사 내부 시스템)이 통신을 하고 있군요. API는 이렇게 어플리케이션끼리 통신을 하게 해줍니다.

우리는 개발자이므로, API를 만든다 라는 표현은 항공사 시스템 개발자로서, 티켓 어플리케이션이 정말로 티켓을 예매하고, 데이터베이스에 좌석 할 수 있도록 함수를 만든다 라는 의미로 사용하기도 합니다.


우리 스마트폰에 설치되어 있는 티켓 예매 어플과 항공사 시스템은 서로 다른 어플리케이션입니다. 그러나 우리는 API를 통해 일련의 통신 과정을 거쳐 연결된 두 어플리케이션을 모두 사용합니다.

우리 스마트폰의 정보는 거의 절대로 항공사 시스템에 모두 오픈되지 않습니다. 항공사의 전체 시스템에 우리 스마트폰 또한 절대로 완전히 접근할 수 없습니다. 그저 API를 통해서 통신만 하기 때문입니다. API를 사용하면 서로 오직 필요한 정보만을 교환하기 때문에 보안 측면에서 조금 더 안전한 서비스를 이용할 수 있게 됩니다.


profile
지속적으로 성장하고 발전하는 진취적인 태도를 가진 개발자의 삶을 추구합니다.

0개의 댓글