응용 프로그램과 API
컴퓨터에서 실행되는 모든 프로그램을 운영체제가 제공할 수 없다. 다양한 사용자의 요구를 운영체제가 모두 반영할 수 없기 때문이다. 따라서 운영체제에서 제공하는 프로그램과는 별도로 개발자들이 해당 운영체제에서 동작하는 프로그램을 개발할 수 있는데 이렇게 개발된 프로그램을 응용 프로그램(Application Program)이라 한다.
응용 프로그램 개발자들은 일반 사용자와 마찬가지로 운영체제를 통해서 하드웨어를 간접 제어하고 운영체제가 관리하는 정보에 접근할 수 있다. 차이가 있다면 일반 사용자는 운영체제에서 제공하는 프로그램들(제어판, 탐색기 등)을 사용해서 작업을 진행하지만 응용 프로그램 개발자들은 조금 더 효과적인 처리를 위해서 운영체제가 제공하는 함수를 통해서 이런 작업을 한다는 것이다.
여기서 응용 프로그램 개발자들이 해당 운영체제에서 동작하는 프로그램을 쉽게 만들 수 있도록 운영체제가 제공하는 함수의 집합체를 API(Application Programming Interface)라고 한다.
SDK
API를 사용하기 위해서는 프로그래밍 언어와 함께 해당 프로그램 언어를 컴파일 할 수 있는 컴파일러도 제공되어야 한다. 메모장과 같은 편집기에서 작업하면 불편하기 때문에 조금 더 편리한 소스 편집기도 필요하다.
이처럼 응용 프로그램을 개발하기 위해 필요한 프로그램 집합체, 즉 개발 환경을 SDK(Software Development Kit, 소프트웨어 개발 키트)라고 한다. 우리가 개발하는 Visual Studio도 개발에 필요한 통합 환경을 제공하기 때문에 SDK라고 할 수 있다. 하지만 개발에 필요한 기능만 가지고 있는 것이 아니라 개발 계획을 세우는 기능도 포함되어 있고 개발 후에 프로그램을 유지보수 하는 개념과 사용자에게 편리하게 배포(설치 파일을 만들고 사용자에게 전달하는 기능 등)하는 기능까지 포함하고 있기 때문에 SDK 보다는 조금 더 넓은 의미의 통합 개발 환경을 제공한다.
Reference
'Interest > 기타' 카테고리의 다른 글
[C/C++] 예외 핸들링(Exception Handling) (0) | 2020.03.18 |
---|---|
[Windows Programming] API와 MFC의 차이 (2) | 2020.03.18 |
[Windows Programming] HWND, HINSTANCE, HDC (0) | 2020.03.18 |
VI 기능 단축키 (0) | 2020.03.18 |
char에서 LPWSTR로 변환할 수 없습니다 해결법 (0) | 2020.03.18 |