마이크로소프트 파운데이션 클래스 라이브러리
(Microsoft Foundation Class Library, 약칭 MFC)는 마이크로소프트가 제공하는 C++ 기반의 클래스 라이브러리이다. MFC는 윈도우 운영체제용 애플리케이션을 개발하기 위해 Win32 API를 객체 지향적으로 래핑한 컴포넌트 집합으로, 그래픽 사용자 인터페이스(GUI), 파일 입출력, 네트워킹, 데이터베이스 접속, 국제화 등 다양한 기능을 제공한다.
주요 특징
- 윈도우 API 래퍼
- 윈도우 핸들, 메시지 루프, 윈도우 프로시저 등을 C++ 클래스와 멤버 함수로 추상화한다.
- 문서‑뷰 아키텍처
CDocument/CView클래스를 기반으로 한 문서‑뷰 구조를 제공하여 복잡한 데이터와 화면 표시 로직을 분리한다.
- 컨트롤 및 다이얼로그
- 버튼, 리스트 박스, 트리 뷰, 리본, 툴바 등 일반적인 UI 컨트롤을
CButton,CListBox등으로 캡슐화한다.
- 버튼, 리스트 박스, 트리 뷰, 리본, 툴바 등 일반적인 UI 컨트롤을
- GDI 및 GDI+ 래핑
CDC,CPen,CBrush등을 통해 그래픽 디바이스 인터페이스를 편리하게 사용할 수 있다.
- 다중 스레드 지원
CWinThread클래스를 통한 스레드 관리와 동기화 객체(CCriticalSection등)를 제공한다.
- 데이터베이스 연동
- ODBC 기반
CRecordset클래스를 통해 관계형 데이터베이스와 연결한다.
- ODBC 기반
역사·배포
- 최초 버전은 1992년 Visual C++ 1.0과 함께 제공되었다.
- 이후 Visual Studio 통합 개발 환경(IDE) 내에 포함되었으며, 버전별로 기능이 확장되고 Unicode 지원, ATL(Active Template Library)와의 연동 등이 추가되었다.
- 현재는 Visual Studio 2022 등 최신 IDE에 포함된 MFC 14.x 버전이 최신 릴리즈이다.
사용 맥락
- 전통적인 데스크톱 윈도우 애플리케이션(예: 문서 편집기, CAD 프로그램, 기업용 내부 도구) 개발에 활용된다.
- 기존 MFC 기반 코드베이스를 유지·보수하거나, Win32 API 직접 사용보다 생산성을 높이려는 상황에서 선택된다.
라이선스·배포 형태
- MFC는 마이크로소프트의 상용 소프트웨어 개발 도구인 Visual Studio에 포함된 컴포넌트이며, 별도 오픈소스 라이선스가 적용되지 않는다. 사용자는 해당 Visual Studio 라이선스 계약에 따라 MFC를 이용할 수 있다.
한계 및 대안
- 현대 윈도우 플랫폼에서는 .NET 기반 WinForms, WPF, UWP, 그리고 최신 C++/WinRT 등 다양한 UI 프레임워크가 존재한다. 따라서 신규 프로젝트에서는 이러한 대안을 고려하는 경우가 많다.
위 내용은 마이크로소프트 파운데이션 클래스 라이브러리(MFC)에 대한 일반적인 백과사전 정보에 근거한다.