전, MFC를 제대로(?) 쓰려면 Win32 API를 알아야 한다는 분들도 좀 어이가 없습니다.
그런 말은, MFC가 실제로 실무에서 쓰려면 상당히 부족해서 반드시 Win32 API로 보충해야만 한다는 얘기가 아닙니까.
Win32 API가 필수라면, MFC는 도대체 뭐한다고 필요할까요? Win32 API를 다 익히고 나서 프로그램은 정작 MFC로 작성해서 개발 시간을 조금 줄인다? (사실 델파이나 C++빌더에 비하면, MFC나 Win32 API나 생산성에 큰 차이도 없습니다만)
비주얼 C++에서 MFC도 마찬가지겠지만, 델파이나 C++빌더에서도 VCL만으로 충분합니다.
일반적인 애플리케이션을 개발하는 데 필요한 모든 Win32 API의 기능이 VCL로 래핑되어 있기 때문에, Win32 API를 전혀 몰라도 아무런 장애가 없습니다. 따라서 Win32 API는 전혀 필수가 아닙니다.
아주 특별한 몇몇 경우를 제외하면, 델파이와 C++빌더를 사용하는 개발자에게 있어 Win32 API는 경우에 따라 사용 가능하고 선택 가능한 추가 라이브러리 이상은 아닙니다. 기능적으로 볼 때, 지금까지 제가 개발한 애플리케이션은 물론 절대 다수의 다른 애플리케이션에서도 Win32 API를 반드시 필요로 하는 경우는 별로 많지 않았습니다.
Win32 API가 반드시 필요한 몇몇 경우를 예를 들자면, 예를 들어 윈도우의 작업 관리자같은 것은 Win32 API를 통하지 않고는 불가능합니다. 하지만 작업 관리자를 개발하는 개발자가 전체 개발자들 중에서 얼마나 되겠습니까? Win32 API보다 한단계 더 내려가서 보호 모드까지 가야 하는 분야도 분명히 있습니다. 드라이버를 만들거나 디스크 I/O를 직접 제어하려면 보호 모드에 들어가야 하죠. 하지만 그런 필요가 있는 개발자가 얼마나 되겠습니까.
물론, Win32 API가 필수적인 경우가 아니라도 Win32 API를 쓰는 경우가 종종 있습니다. 한 예를 들어서, 저는 제가 만든 입력 컴포넌트들에서 기본 드로잉 동작을 가로채어서 플랫 스타일로 그려지도록 하기 위해서 꽤 복잡한 Win32 API 호출을 사용합니다. 그런데 이런 특이한 드로잉 스타일이 반드시 필요하다고 말할 수 있을까요. 경우에 따라 누군가가 요구해서 꼭 필요하다면 굳이 공부해서 스스로 만들기보다는, 서드파티에서 컴포넌트를 가져다쓰는 것이 훨씬 생산적입니다.
자기네 회사 자동차를 운전하기 위해서는 자동차 설계도를 봐야 한다는 영업사원에게는 자동차를 사지 않겠죠?
제 생각엔 말이죠. 상대가 정말로 뭘 필요로 하는지도 진지하게 따져보지 않고 무조건 프레임워크 소스를 뒤져봐야 한다, Win32 API를 뒤져봐야 한다고 주장하는 자칭 고수와는 별로 친해지지 않는 게 좋을 듯 싶습니다. ^^
(그렇게 주장하는 분들은 자신의 수준을 기준으로 잡고 그 수준 아래의 개발자들은 우습게 보는 경향이 적지 않죠)
chqh 님이 쓰신 글 :
: 추가 질문
: 1: 델파이를 제대로 쓰려면 win api 알아야하나요?
:
: 2. . /C++ 빌더를 제대로 쓰려면 win api 알아야하나요?
:
: (MFC는 제대로 쓰려면 win api 알아야 한다고 들엇읍니다)
|