MFC 기반 클라이언트 애플리케이션 250423
q1: MFC 기반 클라이언트 애플리케이션
a1:
MFC 기반 클라이언트 애플리케이션이란, 크게 두 가지 키워드인 MFC와 클라이언트 애플리케이션이 결합된 형태의 소프트웨어를 말합니다. 각각을 살펴보면 다음과 같습니다.
⸻
1. MFC (Microsoft Foundation Class)
• 정의:
• Microsoft가 제공하는 C++ 기반의 클래스 라이브러리로, Win32 API를 객체 지향적으로 감싸 GUI, 메시지 처리, 파일 입출력, 네트워크 통신 등 윈도우 애플리케이션 개발에 필요한 공통 기능을 제공합니다.
• 주요 특징:
• 문서/뷰(Document–View) 아키텍처: 데이터(Model)와 화면(View)을 분리해 유지보수·확장성 용이
• 메시지 맵(Message Map): 윈도우 메시지(버튼 클릭, 키 입력 등)를 C++ 멤버 함수와 매핑
• 리소스 관리: 대화상자(Dialog), 메뉴, 아이콘, 문자열 테이블 등 리소스를 쉽게 편집·로딩
• 풍부한 컨트롤 지원: 버튼, 에디트 박스, 리스트 컨트롤 등 기본 컨트롤을 바로 활용
⸻
2. 클라이언트 애플리케이션
• 정의:
• 사용자의 PC(또는 단말)에서 실행되며, 서버나 백엔드 시스템과 통신하면서 화면(UI)을 통해 기능을 제공하는 소프트웨어
• 종류:
• 두꺼운(Thick) 클라이언트: 모든 UI 로직·비즈니스 로직을 로컬에서 수행
• 얇은(Thin) 클라이언트: 주로 화면 표시만 하고, 로직은 서버에서 처리(웹 브라우저, 터미널 등)
• 역할:
• 사용자 입력 처리(폼 작성, 버튼 클릭 등)
• 서버 API 호출(REST/SOAP/Socket)
• 결과의 가공·표시
⸻
3. MFC 기반 클라이언트 애플리케이션의 모습
MFC의 GUI·이벤트 처리 프레임워크 위에, 사용자와 상호작용하는 클라이언트 로직(데이터 입력·서버 통신·결과 표시 등)을 구현한 형태입니다. 보통 다음과 같은 구조로 개발합니다.
[WinMain]
↓
[CWinApp] ── 애플리케이션 초기화(리소스 로드 등)
↓
[프레임 윈도우(CFrameWnd)]
↓
[문서/뷰(CDocument/CView)]
↓
사용자 이벤트(버튼 클릭, 메뉴 선택) → 메시지 맵 → 핸들러 함수
↓
서버 요청(HTTP, Socket 등)
↓
응답 수신 → 데이터 파싱 → 화면 갱신
• 예시:
• 기업 내부 인사관리용 윈도우 클라이언트
• 현장 영업 사원의 재고 조회·수주 입력용 데스크톱 애플리케이션
• 의료 영상(CT/MRI) 뷰어와 연동되어, 촬영 명령이나 환자 정보를 입력·전송
⸻
4. 장·단점 비교
구분
장점
단점
MFC
- Win32 API 대비 개발 생산성↑- 기존 레거시 투자 활용 용이
- 학습 곡선이 높음- 최신 UI 프레임워크 대비 유연성·디자인 제약
클라이언트 애플리케이션
- 빠른 응답성- 복잡한 UI/로직 로컬 처리 가능
- 배포·업데이트 관리 부담- 플랫폼 종속성(Windows)
⸻
▶ 요약
“MFC 기반 클라이언트 애플리케이션”은 MFC 라이브러리를 사용해 윈도우 환경에서 GUI와 이벤트 로직을 구현하고, 서버와의 통신을 통해 실제 비즈니스 기능(데이터 조회·입력 등)을 제공하는 소프트웨어를 말합니다. 주로 엔터프라이즈 환경에서, 데스크톱 중심의 고성능·복잡한 UI 요구사항을 만족시킬 때 많이 사용됩니다.