common sense2011. 6. 16. 22:59
API [application programming interface]

정의 : 운영체제와 응용프로그램 사이의 통신에 사용되는 언어나 메시지 형식을 말한다.

운영체제나 C, C++ ,Pascal 등과 같은 언어로 응용 프로그램을 만들 때, 윈도우를 만들고 파일을 여는 것과 같은 처리를 할 수 있도록 1000여 개 이상의 함수로 구성되어 있다.
API는 프로그래머를 위한 운영체제나 프로그램의 인터페이스로서 사용자와 직접 대하게 되는 그래픽 사용자 인터페이스나 명령형 인터페이스가 뚜렷한 차이가 있다.





초금 c언어 교재를 가지고 c언어를 배운다고 해도

우리가 만들수 있는 프로그램은 대개 시커먼 창에 hello world를 찍어내는것에서 크게 나아지지

않습니다.

 

뭔가 창도 뜨게 하고 싶고 버튼도 만들고 싶은데 막상 C언어 책이라고 있는것에 보면 그런 이야기들은

없고 맨날 if else while 과 같은 키원드와 몇가지 간단한 함수를 이용해서 오늘도 시커먼 창에서

뭔가 찍어보고 있지요...;;;

 

그런 창이나 버튼은 어떻게 만드는 것일까요? 왜 C언어 책에는 그런 것들이 없을까요?

그런 창이나 버튼은 원래 운영체제에게 "자 내가 창이 하나가 필요하고 그 창에 버튼을 하나만 달아

줬으면 좋겠어"라고 부탁을 해야하는 것입니다.

 

그런데 아무렇게나 부탁할순 없겠죠...

그래서 그 부탁을 (운영체제 안에)C언어의 함수형태로 만들어 놓고 그 함수를 부르는 로직을 우리는 우리의

프로그램안에 집어 넣습니다. 그러면 운영체제가 그 부탁을 들어주죠

그 함수 형태의 부탁을 API(Aplication programming interface)라고 부르는 것입니다.

그러면 API는 또 운영체제마다 틀리겠죠? 윈도우즈에서 부탁을 하는 방법과 리눅스, 혹은 맥os x에서

부탁하는 방법은 틀리겠죠... 그래서 windows에서 쓰는 api를 32비트 윈도우즈 운영체제는 win32 api라고

부르고 64비트 윈도우즈 운영체제는 win64 api라고 부릅니다.

리눅스나 유닉스 계열에서는   운영체제가 제공하는 이러한 api들은 system call 혹은 sys call 이라고 부르고요...

 

뭐 api같은 경우 정확하게 말하면 운영체제만이 가질수 있는건 아니지만 님이 보신 api와 mfc라는

문맥상 저정도 뜻이 될듯하네요...     -nogaryx 님의 네이버지식글

 

MFC(Microsoft Foundation Classes 혹은 명동 프라이드 치킨...;;)는 윈도우즈 api를 가지고 프로그램하기에는 좀 빡세다 라고 느끼는 사람들을 위해(windows api의 함수 목록은  대략 2000개 정도 된다고 하더군요...) 상속과 같은 C++의 객체지향적 속성을 이용할수 있도록 만들어 놓은 microsoft visual c++ 전용의 클래스 라이브러리의 이름입니다 



C언어는 하급언어로,
C언어는 평균적으로 글씨나 도스모드로 프로그램을 만든다
그리고 C언어를 배운후 조금더 C언어에서 진화한 C++을 배운다.
이도 마찬가지로 도스모드나 글씨로만들어진 프로그램을 만든다. 

자 그럼 여기까지배웠으면 API라고해서 윈도우즈 어플리케이션 함수를 빌려온
간단히 게임과 같이 아이콘도있고 창도있고 그림도있고 이런 프로그램을 만드는데 쓴다

 이 API는 C언어만 배워도 익힐수 있는 프로그램이다
그리고 이다음 MFC라는것 역시 API처럼 창도있고 여러가지 아이콘도있고 그런프로그램이다
하지만 API보다는 더 다루기 쉽습니다. 만들기도쉽다
허나 이것은 C++을 배워야한다

 

요약하면
C, C++ <--텍스트로 이루어진 프로그램
API/MFC <--윈도우즈 기반 아이콘도 있고 머머
API는 C를배워야가능
MFC는 C++도 알아야 가능

'common sense' 카테고리의 다른 글

clustering 이란?  (0) 2011.07.08
웹로직이란  (0) 2011.07.03
php란  (0) 2011.04.07
컴퓨터 상식용어  (0) 2011.04.07
OSI 7계층  (0) 2011.04.06
Posted by babuzzzy