2. 윈도우 프로그래밍이란?

2022. 10. 31. 22:43윈도우 프로그래밍/MFC

728x90
반응형

안녕하세요.

오늘은 MFC 프로그래밍에 앞서 윈도우 프로그래밍에 대해서 짚고 넘어가려고 합니다.

윈도우 프로그래밍은 윈도우 운영체제(Windows Operating System)에서 구동되는 응용프로그램을 만드는 모든 과정을 포괄하는 것으로서, 윈도우 운영체제와 응용프로그램은 다음과 같은 특징을 지닙니다.

(본 포스팅의 내용은 "윈도우 프로그래밍(김선우 저, 2014)를 참고하여 작성되었습니다.)

 

1. 윈도우 운영체제의 특징

 

1) 그래픽 사용자 인터페이스(GUI; Graphic User Interface)

GUI는 도스(DOS)로 대표되는 명령 줄 인터페이스(Command Line Interface)와 반대되는 개념으로, 아이콘이나 프로그램 창 등의 그래픽으로 나타내는 것입니다. 텍스트 기반이 아닌 그래픽 기반의 인터페이스라 마우스 등을 이용하여 편하게 작업할 수 있다는 장점이 있습니다.

 

2) 메시지 구동 구조(Message Driven Architecture)

대부분의 윈도우 기반 응용 프로그램은 메시지 구동 구조를 기본으로 합니다.

여기서 메시지는 프로그램의 내부 또는 외부에 어떤 변화가 발생했을 경우 운영체제가 해당 프로그램에게 어떠한 변화가 발생했다고 알리는 것입니다.

어떤 이벤트가 발생하면 메시지는 운영체제가 관리하는 시스템 메시지 큐(Message Queue)에 정보가 저장됩니다.

각각의 응용 프로그램은 운영체제로부터 독립적인 큐를 할당받는데, 운영체제는 시스템 메시지 큐에 저장된 정보를 적절한 응용 프로그램의 메시지 큐에 보내게 됩니다.

응용 프로그램은 자신들의 메시지 큐를 감시하고 있다가 메시지가 큐에 들어오면 하나씩 처리하게 됩니다.

3) 멀티태스킹(Multitasking)과 멀티스레딩(Multithreading)

멀티태스킹이란 서로 다른 프로그램이 동시에 수행되는 것처럼 보이는 기술을 뜻합니다.

윈도우 운영체제는 CPU가 처리하는 시간을 적절히 분할하여 각각의 프로그램 수행에 할당할 수 있어 멀티태스킹이 가능해지고, 이로 인해 프로그램 간 상호작용이 가능해져 보다 다양한 일을 수행할 수 있습니다.

멀티스레딩이란 하나의 프로그램 안에서 여러 일을 동시에 수행하는 것처럼 보이는 것을 뜻합니다.

스레드(thread)는 하나의 프로그램 내에서 실행되는 흐름의 단위를 뜻하는데, 윈도우에서는 여러 스레드를 동시에 수행할 수 있습니다.

예를 들면 사용자가 마우스나 키보드로 어떤 일을 수행함과 동시에 프로그램 내부에서도 이를 활용하여 다른 일을 수행하는 것입니다.

멀티스레딩 역시 윈도우 운영체제가 CPU가 처리하는 시간을 적절히 분할하여 각 스레드에 할당함으로써 수행할 수 있습니다.

 

2. 윈도우 응용 프로그램의 특징

 

1) API 호출문

API(Application Programming Interface)란 컴퓨터와 프로그램 사이에 위치하여 둘 사이의 통신을 원활하게 해주는 역할을 수행하며, 운영체제와 프로그램 사이에서 상호작용을 도와주는 다양한 함수들이 모여 있습니다. 윈도우 운영체제는 화면에 점을 찍거나 선을 그리는 등의 간단한 동작에서부터 파일 입출력과 네트워킹에 이르기까지 다양한 동작을 위한 API 함수를 제공합니다. MFC는 여러 API 중 자주 사용하는 것들을 모아 C++ 라이브러리 형태로 제공합니다.

 

2) 메시지 핸들러

윈도우 운영체제는 메시지 구동 구조를 가집니다. 그리고 MFC에서는 메시지를 받았을 때 동작을 결정하는 코드를 메시지 핸들러(Message Handler)라고 합니다. 메시지 핸들러는 키보드 메시지 핸들러, 마우스 메시지 핸들러, 메뉴 메시지 핸들러 등이 있는데, 이러한 메시지 핸들러의 집합을 윈도우 프로시저(Window Procedure)라고 합니다.

 

3) 실행 파일과 DLL 집합

DLL(Dynamic-Link Library)은 프로그럄이 실행 중에 결합하여 사용할 수 있는 코드와 리소스들을 모아놓은 파일입니다. DLL 파일들은 다른 응용 프로그램에 의해 실행되며, 자주 사용하는 기능들을 DLL 파일로 제작하면 여러 프로그램들이 해당 기능을 공유할 수 있어 메모리 절약에 도움이 됩니다. 윈도우 API도 DLL 형태로 제공됩니다.

 

4) 장치 독립성

윈도우 프로그램들은 모니터, 키보드, 마우스 등의 주변기기를 교체하더라도 프로그램을 그대로 수행할 수 있는데, 이는 사이에 윈도우 API가 있고, API가 둘 사이의 상호작용을 돕기 때문입니다.

 

여기까지 윈도우 운영체제와 프로그램의 특징을 설명하였습니다.

비전공자가 독학으로 공부한 것이라 오류가 있을 수도 있는 점 감안하여 뵈주시기 바랍니다.

 

728x90
반응형

'윈도우 프로그래밍 > MFC' 카테고리의 다른 글

03. MFC 프로그램 기본 구조(1)  (3) 2022.11.05
MFC 콘솔 응용프로그램 생성  (5) 2022.10.29