본문 바로가기

전생의 기억/공통

API란?

운영체제란?


좁은 의미에서 운영체제는 컴퓨터의 하드웨어 자원들을 제어하고 프로그램이 실해될 환경을 제공하는 소프트웨어라고 할 수 있습니다. 이는 흔히 커널이라고 부르기도합니다.


넓은 의미에서 운영체제는 커널뿐만아니라 컴퓨터를 유용하게 만들고 컴퓨터에 개성을 부여하는 시스템 유틸리티, 응용프로그램, 셸, 라이브러리 루틴 등을 포괄한 것을 말합니다.


예를 들어 Linux는 GNU운영체제가 사용하는 커널입니다. Linux라는 이름을 하나의 포괄적인 운영체제를 가리키는 용도로 사용하는 것은 부정확하다고 할 수 있지만, 운영체제가 이중적인 의미를 가지고 있기에 일반적으로 Linux 운영체제라고 부르고 있습니다.

사용자 운영체제 하드웨어에 대한 이미지 검색결과



API란?


결론부터 말하면 어플리케이션(응용프로그램)을 프로그래밍(개발)하는데 있어서 쉽게 구현할 수 있도록 구현되어있는 인터페이스(매개체)라고 생각하면 됩니다.

응용프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 더 쉽게 제어할 수 잇게 만든 인터페이스를 뜻합니다.


API라는 것은 Application Programming Interface의 약자로, 흔히 운영체제가 응용프로그램 개발 또는 동작을 위해 제공하는 함수의 집합이라고 할 수 있습니다.

다시 말하면, API는 어플리케이션을 만들기 위한 하위 함수, 프로토콜, 도구들의 집합들을 말합ㄴ디ㅏ. 좋은 API는 프로그래머들이 빌딩 블럭을 쌓듯이 쉽게 소프트웨어를 개발할 수 있도록 도와주며, OS,DB,HW,SW library, Web 기반 시스템 등 다양한 곳에서 만들어집니다. Ms Window API, Java API, 웹 API 등이 API의 다양한 모습입니다. API의 지적 재산권은 아직 톨노의 여지가 많습니다.

(Oracle과 Google간의 JAVA API 관련 이슈)


GUI가 일반이들이 프로그램을 사용하기 쉽게 만들어 준다면, API는 프로그래머가 특정기술을 사용하기 쉽게 만들어줍니다. 개발자들에게 필요한 기능들을 추상화하고, object, class등을 제공함으로써 인지부하를 줄여주기도 합니다. 예를 들어 이메일 프로그램이 메일을 작성하고 보내는 '버튼'을 일반인들에게 제공한다면, 파일 API는 OS나 파일시스템에 상관없이 파일을 복사하고 전송하는 '기능'을 프로그래머들에게 제공해줍니다.



자바 API


자바 API는 자바를 사용하여 쉽게 구현할 수 있도록 한 클래스 라이브러리의 집합입니다. 즉, 자바라는 언어를 사용하여 사용자의 부담을 최소화하는 반면에 입출력, 화면궂성, 이미지, 네트워크와 같이 복잡하지만 필요한 클래스들을 미리 구현하여 사용자가 쉽게 구현하도록 하는 API입니다. 이러한 자바 API는 하나의 커다란 클래스 계층구조로 설계되어 있습니다.



윈도우 API


윈도우 API(Windows API, WinAPI)는 마이크로소프트 윈도 운영체제들이 사용하는 API입니다. C/C++ 프로그램에서 직접 운영 체제와 상호 작용 할 수 있도록 만들어졌습니다.

윈도우 운영체제에 대한 기본 서비스, 고급 서비스, 사용자 인터페이스, 네트워크 서비스, 셀 등 여러 기능들을 제공하고 있습니다.



웹 API와 mashup


웹 API는 웹 어플리케이션 개발에서 다른 서비스에 용청을 보내고 응답을 받기 위해 정의된 명세를 일컫습니다. 예를 들어 블로그 API를 이용하면 블로그에 접속하지 않고도 다른 방법으로 글을 올릴 수 있습니다. 그 외에 우체국의 우편번호 API, 구글과 네이버 지도 API, 각 시군별 버스 노선 정보 API등 유용한 API들이 많으므로, 요즘은 홈페이지 구축이나 추가개편 시 따로 추가로 개발하지 않고 이런 오픈 API를 가져와 사용하는 추세입니다.

이렇게 웹 API를 융합함으로써 웹 어플리케이션의 서비스 질을 향상시키는 것을 매쉬업(mashup)이라고 합니다.