본문 바로가기

Application Dev./C++/MFC

API의 기본 정의

APIApplication Programming Interface의 약자이며,
우리말로 풀어본다면 운영체제가 응용 프로그램을 위해 제공하는 함수의 집합이라고 정의할 수 있다.

  운영 체제는 하드웨어와 응용 프로그램 사이에 위치하며 응용 프로그램을 대신하여 하드웨어를 관리하고 메모리를 관리하느 시스템 소프트웨이다. 특정 운영체제에서 실행되는 응용 프로그램은 운영체제에 종속적일 수 밖에 없으며 운영체제가 규정한 바대로 하드웨어를 엑세스해야 한다. 또한 윈도우즈와 같은 멀티 태스킹 운영체제의 경우 응용 프로그램간 상호작용을 할 때도 운영체제의 규정을 따라야만 한다.

  그러나 현식적으로 응용 프로그램 개발자들이 이러한 운용체제의 내부 동작까지 속속들이 이해하고 있을 수는 없다. 그래서 운영체제는 가장 기본적인 동작을 할 수 있는 함수의 집합을 으용ㅇ 프로그램에게 제공할 의무를 지며 응용 프로그램 개발자들은 운영체제가 제공하는 함수들을 사용할 권리와 의무를 가진다. 도스 프로그램을 해 본 경험이 있는 사람들이라면 INT 13, INT 21 등의 시스템 function call을 한번 쯤 call 을 호출하여 파일이나 디스트, 프린터를 표준적인 방법으로 쉽게 제어할 수 있다. 만약 도스가 system function call 만약 도스가 system function call을 제공하지 않는 다면 도스 프로그래머들은 도스의 파일 system, 하드웨어 입출력 장치, 메모리 관리까지 직접 손수 해야 하는 부답을 지게 될 것이다.

  윈도우즈도 마찬가지로 응용 프로그램을 위한 함수 집합을 제공하는데 이를 API라고 하며 좀더 정확하게 표현하자면 windows API라고 한다. APi는 특정 system(운영체제든 하드웨어든)을 위한 함수 집합을 이르는 일반명사이며 그중의 하나가 windows API이다. Win32 API란 본격적인 32비트 운영체제인 윈도우즈 95/98과 NT 에서 제공하는 32비트 windows를 위한 API이다. Win16에 비해 Win32가 양적으로나 질적으로 더 확장되었음은 더 말할 나위도 없다. Win16과 Win32 사이에 Win32s, Win32c등의 임식적인 API가 있었으나 지금은 사용하지 않으므로 관심을 둘 필요가 없다. Win32 API도 Windows 버전에 따라 조금씩 다르다. 즉 Windows95보다는 Windows98의 API가 조금 더 확장되었을 것이며 현재 완벽한 Win32 API는 NT 5.0이 제공하는 것이라 할 수 있다. 만약 미래에 64비트 windows가 발표되면 그때는 Win64 API라는 용어가 사용될 것이다.

  API와 비슷한 말로  SDK라는 표현이 사용되기도 한다. SK는 원래 API를 사용하여 프로그램을 개발하는 개발 툴 킷이었으나 지금은 의미가 전용되어 API 와 거의 같은 뜻으로 쓰인다. 즉 API함수는 곧 SDK함수와 같은 뜻이며 이 프로그램 SDK로 만들었습니다...라고 하는것은 순수한 API만을 사용하여 만든 프로그램이라는 뜻이다..........

출처 : Tong - aquarous님의 API통