<CS 지식> API

Google 아니고 Joogle·2022년 4월 14일
0

CS 지식

목록 보기
2/22

API란?

  • application programming interface는 컴퓨터나 컴퓨터 프로그램 사이의 연결이며 일종의 소프트웨어 인터페이스, 다른 종류의 소프트웨어에 서비스 제공
  • 컴퓨터<->인간을 연결시키는 사용자 인터페이스와는 반대로 컴퓨터나 소프트웨어를 서로 연결
  • 프로그래머가 사용할 수 있는 도구나 서비스 역할을 하고 이러한 부분들 중 하나를 사용하는 프로그램이나 프로그래머는 API의 해당 부분을 호출한다고 함
  • API를 구성하는 호출들은 서브루틴, 메소드, 요청, 통신 엔드포인트라고 부름
  • API사양 : 이 호출들을 정의, 다시 말해 이들을 어떻게 사용하거나 구현하는지를 설명한다는 것을 의미

API의 목적

  • 시스템이 동작하는 방식에 관한 내부의 세세한 내용을 숨기는 것
  • 내부의 세세한 부분이 나중에 변경되더라도 프로그래머가 유용하게 사용할 수 있고 일정하게 관리할 수 있는 부분들만 노출

API vs 라이브러리 vs 프레임워크

  • API의 핵심은 정의된 프로토콜을 기반으로 상호 작용을 할 수 있도록 일종의 약속된 시스템
  • 라이브러리는 API들을 기반으로 개발자에게 기능을 제공할 수 있도록 실제로 구현된 구현체
  • 프레임워크는 명확하게 정의된 대량의 라이브러리가 있다는 점에서 API와 비슷하지만 일반적인 API는 전체 제어 구조를 호출하는 쪽에서 원하는대로 진행할 수 있지만 프레임워크에서는 그럴 수가 없다

RESTful API

  • '네트워크'와 '웹'에 맞춰진 API 통신 아키텍쳐
  • 소위 네트워크는 '인터넷'이라고 부르는 HTTP 기반 네트워크이므로 REST API라고 하면 HTTP에 쓰이는 걸 의미하는 경우가 많음
  • REST를 잘 준수하는 API를 RESTful API라 부름

RESTful API vs API

  • RESTful API는 네트워크에서 '데이터'를 받아오기 위한 것이고 프로그램에서의 API는 '코드', 나아가 '라이브러리'를 받아오기 위해 쓰는 것

API의 예

명령어에 창에 "Hello, world!"라는 문자열을 출력하는 프로그램을 c언어로 작성한다고 할 때, API가 없다면 메모리 영역부터 내려가 H부터 느낌표까지 문자열 하나하나 문자열 구조체를 만들어 담고 이를 출력하도록 운영체제에 명령을 보내야 한다

  • 윈도 API
  • 마이크로소프트 윈도우의 다이렉트엑스
  • 단일 유닉스 규격
  • Java SE API
  • 스칼라 API
  • OpenGL
  • OpenAL
  • OpenCL
  • c++의 표준 템플릿 라이브러리 STL
profile
Backend 개발자 지망생

0개의 댓글