728x90
운영체제
- 컴퓨터 주기억장치에 상주
- 컴퓨터 시스템의 자원관리
- 응용프로그램 수행제어
- 사용자와 컴퓨터 HW 간의 인터페이스 담당
- 관리하는 자원 - CPU, 기억장치, 입출력장치 등
윈도우 운영체제의 특징
- Graphic User Interface
- 메시지 구동 구조
- 멀티 태스킹 - 운영체제가 여러 개의 응용 프로그램을 동시 실행, 멀티스레딩 - 응용 프로그램 내부에서 여러 개의 스레드를 통해 실행
윈도우 으용프로그램의 특징
- 윈도우 API
- 윈도우 운영체제가 응용 프로그램을 위해 제공하는 각종 함수의 집합 -> HW를 제어하는데 필요한 함수 사용
- 메세지 핸들러 집합 - 메세지 핸들러는 메시지를 받았을 때 동작을 결정하는 코드 -> 메세지 핸들러 집합을 윈도우 프로시저라 부름
- 실행 파일과 DLL 집합 - DLL(Dynamic - Link Library) - 프로그램이 실행 중에 결합하여 사용할 수 있는 코드와 리소스의 집합
- 윈도우 운영체제가 제공하는 API는 DLL 형태로 제공되며, 응용 프로그래머는 필요한 기능을 DLL로 제작하기도 함
- 장치 독립성 - 주변 장치가 바뀌어도 장치 드라이버만 설치하면 프로그램을 수정하지 않고 실행할 수 있음
윈도우 응용 프로그램의 개발 방식
SDK
- 윈도우 API + 응용 프로그램 코드(C/C++ 언어)
- API를 직접 다루기 떄문에 세부 제어가 가능함
- 윈도우 운영체제가 제공하는 모든 기능을 사용 가능
- 생성 코드의 크기가 작고 속도도 빠름
- 다른 개발 방식에 비해 생산성이 매우 낮음
RAD(Rapid Application Development)
- 시각적 화면 디자인 + 응용 프로그램 코드
- 간편하고 직관적으로 프로그래밍 할 수 있음
- 빠른 시간 내에 원하는 기능의 프로그램 개발 가능
- SDK나 클래스 라이브러리를 이용한 개발 방식보다 생성 코드의 크기가 크고 실행 속도도 떨어지는 편임
- 윈도우 운영체제가 제공하는 모든 기능을 활용한 세부적인 제어가 어려운 경우가 있음
클래스 라이브러리
- 클래스 라이브러리 + 응용 프로그램 코드(객체지향언어)
- SDK를 이용한 방식보다 생산성이 높음
- API를 직접 사용해서 세부적으로 제어할 수 있음
- RAD 개발 방식보다 코드 크기와 실행 속도 면에서 유리함
- 객체 지향 프로그래밍에 익숙해야 함
- 클래스 라이브러리의 구조와 각 클래스의 기능 및 관계를 파악하기 위한 초기 학습 기간이 긴 편임
.NET 프레임워크
- 윈도우 운영체제에 설치할 수 있는 소프트웨어 개발 및 실행 환경으로 Micorosoft 사의 핵심 사업 전략
- 공용 언어 런타임(CLR, Common Language Runtime)이라는 소프트웨어 가상 머신을 제공하며, 가상 머신의 제어 하에 응용 프로그램이 구동됨(장치 독립성)
- 윈도우 API에 버금가는 방대한 라이브러리를 제공하며, 언어에 상관없이 라이브러리를 사용 가능(언어 독립성)
- .NET 프레임워크 상에서 최적의 개발 언어 : C# 언어 - 개발이 편리하지만 속도가 느려서 고속 연산과 데이터 처리가 필요한 응용에 부적합
'아무거나 개발공부 > C++' 카테고리의 다른 글
C++ - MFC 기초 클래스 (0) | 2021.07.14 |
---|---|
C++ - SDK와 MFC 프로그래밍 (0) | 2021.07.12 |
C++ - 전처리기 지시어(조건부 컴파일) (0) | 2021.06.29 |
C++ - Windows API와 MFC (0) | 2021.06.25 |
C++ - class 함수 정의, virtual function (0) | 2021.06.21 |