본문 바로가기
BackEnd

API에 대해 알아보기

by SoriKim 2023. 8. 2.
반응형

1. API 사전적 의미

API는 Application Programming Interface의 줄임말로 프로그램을 작성하기 위한 일련의 부 프로그램, 프로토콜 등을

정의해 상호 작용하기 위한 인터페이스 사양을 말합니다. 즉, 응용프로그램에서 사용할 수 있도록 운영체제 또는 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻하며 클라이언트의 다양한 요청을 처리 할 수 있어야 합니다. 

또한 API란 응용 프로그램들이 서로 소통하기 위한 접점으로 응용프로그램 사이에서 소통을 하게 해주는 인터페이스입니다. 

응용프로그램은 우리가 자주 사용하는 크롬, 엑셀, 카카오 등 운영체제(Mac OS, Window 등)에서 실행되는 모든 소프트웨어를 말합니다. 

 

2. Interface 

위의 자주 등장한 단어인 인터페이스(Interface)란 영어로 상호작용을 뜻하며 서로 다른 두 개의 시스템, 장치 사이에서

정보나 신호를 주고 받는 경우의 접점 또는 경계면을 뜻합니다. 다시 말해 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템을 의미합니다. 실생활에서 쉽게 찾아 볼 수 있는 인터페이스의 예로는 마우스, 키보드, 터치스크린 등이 예시 입니다. 

 

2-1. UI (User Interface) _ 사용자 인터페이스 

인터페이스 중 하나인 UI는 사람과 컴퓨터 사이 의사소통을 목적으로 만들어진 물리적, 가상적 접점을 의미하며 

서로 소통할 수 있게 입력 및 출력 역할을 해줍니다. 

 

UI의 종류로는 

  • Graphic User Interface (GUI) 
  • Hardware User Interface 
  • Web User Interface(WUI)

등이 있습니다. 

첫 번째로 GUI는 Graphic User Interfaced의 줄임말로 사용자가 그래픽 아이콘을 통해 컴퓨터와 정보 교환을 가능하게 해주는 인터페이스 입니다. 드래그앤 드랍, 클릭 등이 GUI의 예시 입니다. 

 

두 번째로 Hardware User Interface는 컴퓨터에 원하는 작업을 입력하기 위해 키보드라는 인터페이스를 통해서 작업을 명령하고 그 결과를 사용자에게 보여주는 역할을 모니터가 하게 됩니다. 

 

마지막으로 WUI는 Web User Interfaced의 줄임말로 웹 브라우저 상 인터페이스로 화면의 디자인, 아이콘, 버튼 등 시각적인 요소들을 말합니다. 

 

3.  Node.js 기반의 API 시스템  

Node.js에서 기본적으로 제공해주는 http 모듈을 사용해 Client 다양한 요청에 대해 동적 데이터 처리가 가능한 API 구현이 가능합니다. Node.js와 호환 될 수 있는 Server-side Framework들이 무수히 많아 Node.js 기반으로 서버를 개발하는 것은 자유도가 높으며 확장 가능성이 높습니다. 이러한 Node.js기반의 HTTP API 서버를 개발하며 유지 및 보수가 가능한 Express.js 프레임워크에 대해 알아보도록 하겠습니다. 

 

3-1. [Node.js] Express란? 

Express는 웹 및 앱을 위해 빠르고 자유롭고 유연한 세트를 제공하는 Node.js 프레임워크입니다. 

개발자가 더욱 더 읽기 쉽고 유연하며 유지보수가 가능한 웹, 앱을 개발할 수 있게 돕는 도구입니다. 

 

http모듈을 이용해 만든 코드의 경우 if-elif의 중첩 적용등으로 인해 코드가 불필요해지며 가독성이 많이 떨어집니다. 

이런 불편함을 Express를 이용해 라우팅과 로직 모듈화를 사용하여 기능별로 별도의 파일로 관리하며 추후 복잡해질 디자인/아키텍쳐 패턴을 적용함에 있어서도 기본 원리로 적용될 수 있습니다. 

 

반응형

'BackEnd' 카테고리의 다른 글

Wecode 2st Project 회고록  (0) 2023.09.03
Wecode 1차 프로젝트 회고록  (0) 2023.08.20
Database  (0) 2023.08.15
Linux & Terminal  (0) 2023.08.02
웹 서비스란? 웹 서비스의 역사와 발전  (0) 2023.07.31

댓글