마이크로소프트 파운데이션 클래스 라이브러리

마이크로소프트 파운데이션 클래스 라이브러리(Microsoft Foundation Class Library, MFC)는 마이크로소프트에서 만든 윈도우 APIC++로 둘러 싼 라이브러리이다. 클래스들은 윈도의 공용 컨트롤과 스마트 포인터를 사용하는 창 개체이다.

마이크로소프트 파운데이션 클래스 라이브러리
개발자마이크로소프트
발표일1992년(32년 전)(1992)
안정화 버전
14.22.27821.0 / 2019년 7월 24일[1]
프로그래밍 언어C++
운영 체제마이크로소프트 윈도우
종류개발 라이브러리
라이선스사유
웹사이트MFC 참조

역사

편집

MFC는 1992년 16비트 윈도용 마이크로소프트 C/C++ 7.0 컴파일러에서 처음 도입되었다. 그 당시에는 C++이 소프트웨어 제품 개발 언어로 활용되기 시작하던 때였다. 마이크로소프트는 개발도구 시장에서 경쟁력을 얻기 위해 C++을 활용하여 MFC를 만들었다. MFC의 구조는 후에 시맨틱사에 매각된 매킨토시의 TCL(Think Class Library)에서 영향을 받았다.

볼랜드의 터보 C++터보 파스칼에서는 OWL(Object Windows Library)이란 경쟁제품이 있었다. 객체 지향 모델을 더 엄격하게 따르고 있었기 때문에, OWL은 한때 MFC보다 인기 있었다. 하지만 윈도의 새로운 기능에 대한 업데이트가 늦어지게 되면서, 시장 지배력을 잃어버렸다. 그 이후 볼랜드는 OWL의 개발을 중단하고, 이를 대체하는 VCL을 개발하여 델파이C++빌더에서 사용하고 있다. C++빌더는 MFC를 라이선스 받아 포함하고 있다.

마이크로소프트에서 MFC가 만들어졌음에도 많은 프로그래머들에게 MFC는 너무 복잡했기 때문에, 마이크로소프트는 상용 소프트웨어 개발에 비주얼 베이직을 쓰라고 권장하였다. MFC와 비주얼 베이직의 후속작으로 Windows Forms가 출시되었으며 C++ 관리 모드 확장으로 쓸 수 있다. 비주얼 스튜디오 2005 출시와 함께 닷넷 프레임워크의 기능들을 더 쉬운 문법으로 쓸 수 있게 되었다.

비주얼 베이직을 강조하면서도 새 버전의 비주얼 스튜디오에는 항상 MFC가 공급되었다. 그래서 많은 프로그래머들이 MFC를 사용하게 되었다.

컴파일러 버전 MFC 버전
마이크로소프트 C/C++ 7.0 MFC 1.0
비주얼 C++ 1.0 MFC 2.0
비주얼 C++ 1.5 MFC 2.5
비주얼 C++ 2.0 MFC 3.0
비주얼 C++ 2.1 MFC 3.1
비주얼 C++ 2.2 MFC 3.2
비주얼 C++ 4.0 MFC 4.0
비주얼 C++ 4.1 MFC 4.1
비주얼 C++ 4.2 MFC 4.2
비주얼 C++ 5.0 MFC 4.21 (mfc42.dll)
비주얼 C++ 6.0 MFC 6.0 (mfc42.dll)
비주얼 C++ .NET 2002 MFC 7.0 (mfc70.dll)
비주얼 C++ .NET 2003 MFC 7.1 (mfc71.dll)
비주얼 C++ 2005 MFC 8.0 (mfc80.dll)
비주얼 C++ 2008 MFC 9.0 (mfc90.dll)
비주얼 C++ 2010 MFC 10.0 (mfc100.dll)

기능

편집

MFC가 처음 도입되었을 때 마이크로소프트는 기본적인 C++ 문법에 메시지 처리, 예외 처리, 런타임 처리, 동적 클래스 객체 생성을 위한 매크로를 추가해 C++ 언어를 확장하려 했다. 이런 매크로를 활용한 시스템은 컴파일러의 타입 검사를 무시하므로 버그를 가져올 수 있었다. 32비트 버전의 MFC부터 이것이 개선되었다.

MFC의 가장 큰 장점은 윈도 API를 객체지향적으로 프로그래밍할 수 있다는 것이다. 또한 윈도의 자원과 연관된 형들은 그들을 생성한 객체가 죽게 되면 자동으로 핸들을 해제해 준다는 장점도 있다. 게다가 MFC의 문서/뷰 프레임워크는 데이터 모델과 유저 인터페이스, 제어 로직을 분리한다는 MVC 디자인을 자연스럽게 만들어준다.

하지만 MFC는 다중 운영체제를 지원하지 않는다는 약점이 있다. Mainsoft가 만든 유닉스용 MFC가 있으며[1], 1990년대 마이크로소프트는 맥 OS용 MFC를 만들기도 했지만, 계속 개발하지 않았다.

MFC Feature Pack을 지원하여, 리본 메뉴 등의 UI를 IDE에서 자동으로 작성해준다.

같이 보기

편집

각주

편집
  1. “Visual Studio 2019 Release Notes”. Msdn.microsoft.com. 2019년 7월 24일에 확인함. 

외부 링크

편집