2006년 8월 9일 수요일 AM7 22면 기사에서

C++·WinApi언어는 필수적으로 익혀야


Q. 프로그래머로서 준비해야 할 것들에 대해 알고 싶어요.

- 언어 필수요소 : C++, WinApi
- 언어 선택요소 : DirectX/OpenGL

첫번째 C++는 어느 정도 해야할까? 사람에 따라 정도의 차이는 있겠지만 6개월에서 1년정도 공부하면 프로그래밍의 대락적인 맛을 느낀다. 중점적으로 해야할 것들이 있는데 포인터, 배열, 구조체, 클래스 등이 그것이다. 그 중에서도 포인터와 클래스는 매우 중요한 위치를 차지한다.
두번째 WinApi는 무엇이고 어느정도 해야 하는가? WinApi는(정확하게 WinApi32) 윈도우 프로그래밍에 있어서 기본이 되는 부분이다. 물론 WinApi속에는 C++가 존재하지만 각종 함수와 매크로로 만들어진 라이브러리로 구성되어 있다. 다시 말해 WinApi란 윈도우를 만들고 각종 메시지를 처리하는 것에 '기본이 되는 라이브러리들'이라는 것이다. Wisual C++에 들어있는 4GL(Visual Basic, Visual C++, C#...)등도 내부에선 WinApi를 사용한다. 그렇다면 어느 정도 공부해야 할까? WinApi의 핵심을 파고들려면 매크로(#define 문장)에 중점을 두면 좋다. 무수한 메시지를 받아오는 wParam과 l
Param의 공포를 이겨내기 위해선 메시지크래커를 추천한다. 그것은 거의 대부분이 그 매크로와 함수로 이루어져 있기 때문이다. 정도의 차이는 있겠지만 MFC를 공부하는 것보ㅤㄷㅏㄵ API를 공부하는 것이 시간이 조금 덜 소요되는 듯 하다. 마스터까지 하는데 걸리는 시간은 초급이 6개월이며 중급은 1~2년 걸리는 정도이다.
세번째 DirectX와 OpenGL 어느 것으 선택해야 하는가?
DirectX는 MS가 지원하는 그래픽라이브러리이다. 2006년 연말에 나올 새로운 윈도우인 Vista의 경우, 윈도우의 기본 그래픽 시스템을 DirectX로 구성하고 있다. 반면에 OpenGL은 실리콘그래픽스사의 그래픽라이브러리인 SGL을 다른 OS에서도 작동이 가능하도록 만든(open한) 것이다. 장점은 어떤 OS에서도 동작한다는 것. JAVA와 비슷한 호환성을 가진다. 단점이라면 그래픽만 지원하는 것. 사운드나 조이스틱 제어 등을 지원하지 않는다.


내가 이 신문기사를 보고 깜짝 놀랐다. API가 언어였나?내 머리를 의심하게 하였다.
내가 API를 배우고 있는데 신문 기사가 이상한 것 같아서 김상형씨께서 운영하시는 Win32 Api연구 사이트라는 곳에 가서 다시 api관련 부분을 봤다.
Api 란
API는 Application Programming Interface의 약자입니다. 프로그램 작성을 위한 함수, 구조체, 타입 등의 집합체를 API라고 하며 여러 종류의 API가 있습니다. 이 사이트에서 다루는 API는 정확하게 32비트 윈도우즈 API입니다.
API는 윈도우즈 프로그래밍의 가장 기본이라 할 수 있습니다. 저수준이라 어렵지만 강력하고도 작은 프로그램을 만들기 위해 아직도 많이 사용되고 있습니다. API가 중요한 가장 큰 이유는 운영체제를 이해하기 위해 반드시 공부해야 할 과목이라는 점입니다. MFC나 델파이, 비주얼 베이직 등의 고급 언어로 프로그램을 쉽게 쉽게 짤 수도 있지만 근본이 되는 API를 모르고서는 아무리 고급 툴을 사용하더라도 좋은 프로그램을 작성하기는 어렵습니다. API 자체가 개발툴로서 훌륭한 것은 아니지만 윈도우즈 프로그래밍의 기초가 되는 것만은 분명합니다. API를 통해 운영체제의 동작 방식을 이해하면 프로그래머로서 진정한 자유를 누릴 수 있습니다.

신문기사가 사람들을 혼란스럽게 하구나. API라는 것이 프로그램을 작성하기 위한 함수, 구조체, 클래스, 타입등의 집합체를 말하는데 그것을 언어로 뭉뚱거러 말하고 있으니 영-_-;; 그리고 OpenGL과 DirectX도 언어라고 하다니......

WinApi, OpenGL, DirectX가 언어취급을 받을 정도나니?

선배가 이런 말을 들은 적이 있었는데
"WinApi, DirectX는 C와 C++를 기반으로 함수 라이브러리를 말하며 프로그래머는 그 함수를 이용해서 프로그래밍하면 됩니다. 저같이 게임엔진을 만들정도라면 C, C++, 선형대수학 를 공부 열심히 해야합니다."

참고로 선형대수학은 벡터 부분만빼고 재미있게 들었지 -_-;;

그리고 이 기사를 보고 생각한 것이 Windows 프로그래머만 양성을 하는 것 같은 생각이 든다.
프로그래머의 분야는 엄청나게 많다. WinApi, DirectX, OpenGL과 같은 라이브러리로 게임이나 Windows Application들을 만들거나, 임베디드쪽으로 C를 이용해서 멍텅구리 기계에 혼을 심어주거나, Unix System Programming을 할수 도 있거나, DB쪽으로 DBMS를 만지는 DBA가 되거나, 네트워크 소켓 프로그래밍을 하거나 등등 프로그래머도 분야가 여러가지인데다 여러가지 플랫폼에서도 프로그램을 돌리는 능력이 있어야 한다고한다. (우리 아부지 이야기) 이 기사는 프로그래머는 windows만 배우면 된다는 것만 사람들에게 인식시켜준다.

위의 내용만 가지고 진정한 프로그래머가 될지도 의문시 되고 저런 사람이 프로그래머라고 떵떵거리면.. 우리나라의 미래가 암울해질 것이다.

참, 이런 기사때문에 우리나라 소프트웨어산업이 발전이 안되는 것 같다.

(헛 소리좀 했다.)
이글루스 가든 - 무적의 공대생이 되자!

'생각들' 카테고리의 다른 글

만원으로 하루를 보내는 방법  (0) 2006.08.14
툭하면 게임을 욕하는  (2) 2006.08.11
영어공부를 해야한다.  (5) 2006.08.07
내 나이 40이 넘어가면...  (3) 2006.08.03
다른 사람과 대화를 하다 보면  (2) 2006.07.28
Buy me a coffeeBuy me a coffee

+ Recent posts