해당 분야를 공부하기 ìœ„í•´ì„ ì–´ë– í•œ 순서로 보는 것ì�´ ë�” 효율ì �ì�¼ê¹Œ? (ë˜�는 커리í�˜ëŸ¼ 작성?) 해당 언어ì—� 대해서는 ì–´ëŠ�ì •ë�„ ì–¸ì œì¯¤ ì �당한 깊ì�´ë¥¼ ê°€ì ¸ì•¼ í• ê¹Œ?
'What' ì�˜ ì˜�ì—ê³¼ & 'How' ì�˜ ì˜�ì—.
Scientist . Engineer . Programmer ì�˜ ì˜�ì—. (ê¼ ì�´ë¶„법ì �으로 나누는건 좀 ê·¸ë ‡ì§€ë§Œ. ì�¼ì¢…ì�˜ 간단한 ë¶„ë¥˜ì²´ê³„ì •ë�„?)
Windows Programming (Windows Platform Programming) ¶
Windows Programming ì�´ë�¼ê³ 한다면 Windows ìš´ì˜�ì²´ì œì—�서 Windows ê´€ë ¨ API 를 ì�´ìš© (혹ì�€ ê´€ë ¨ Framework), 프로그래ë°�ì�„ 하는 것ì�„ ì�˜ë¯¸í•œë‹¤. 보통 다루는 ì˜�ì—ì�€ 다ì�Œê³¼ 같다. (ì�´ ì˜�ì—ì�€ ê¼ Windows ì�´ê¸°ì—� ìƒ�기는 ì˜�ì—들ì�´ 아니다. Windows ì�´ê¸°ì—� ìƒ�기는 ì˜�ì—들ì�€ Shell Extension ì�´ë‚˜ ActiveX, DirectX ì •ë�„? 하지만, 가로지르기는 ì–´ë–»ê²Œë“ ì§€ 가능하다)
GUI Programming ¶
ì˜ˆì „ì—� Windows Programming ì�„ ë°°ìš´ë‹¤ê³ í•œë‹¤ë©´ 기본ì �으로 GUI Programming ì�„ ì�˜ë¯¸í–ˆë‹¤. Windows ê°€ 기본ì �으로 GUI OS ì�´ê¸°ì—� 기본ì�´ ì�´ê²ƒì�´ë�¼ê³ ìƒ�ê°�하는 것ì�´ë‹¤. 하지만, GUI 는 어디까지나 'User Interface' ì�´ë‹¤. 즉, ì�´ê±´ Input/Output ì—� 대한 ì„ íƒ�사í•ì�´ë‹¤. í•„ìš”í• ë•Œ 공부하ìž�. (하지만, 보통 User-Friendly 한 프로그램들ì�€ 대부분 GUI ì�´ë‹¤.)
Windows ì—�서 GUI Programming ì�„ 하는 방법ì�€ 여러가지ì�´ë‹¤. 언어별로는 Python ì�˜ Tkinter, wxPython ì�´ ìžˆê³ , Java 로는 Swing ì�´ 있다. C++ 로는 MFC Framework 를 ì�´ìš©í•˜ê±°ë‚˜ Windows API, wxWindows 를 ì�´ìš©í• 수 있으며, MFC ì�˜ 경우 Visual Studio 와 ì—°ë�™ì�´ 잘 ë�˜ì–´ì„œ 프로그래ë°� 하기 편하다. C++ ì�˜ 다른 GUI Programming ì�„ 하기위한 툴로서는 Borland C++ Builder ê°€ 있다. (C++ 중급 ì�´ìƒ� 프로그래머들ì—�게서 ì˜¤ížˆë ¤ ë�” ì„ í˜¸ë�˜ëŠ” 툴)
가장 쉽게 GUI Programming � 배우는방법�� ���는건, Python �서� Tkinter Programming �는 Jython Interpreter �서 Swing Tutorial � �용하는것�다. (Jython 페�지� JythonTutorial 참조)
GUI Programming ì�„ 하면서 ì�µíž� 수 있는 소중한 ê°œë…�으로서 Event Driven Programming, Design 으로는 CompositePattern ì�´ 있다. 대부분ì�˜ GUI Framework 들ì�€ Event Driven Style ì�˜ 프로그래ë°� ë°©ì‹�ì�´ë©°, 대부분 CompositePattern ì�„ ì�´ìš©í•œë‹¤. Framework 들ì�˜ ë””ìž�ì�¸ ê°œë…�들ì�´ 비슷하므로, 하나ì�˜ GUI ê´€ë ¨ Framework ì—� ì�µìˆ™í•´ì§€ë©´ 다른 Framework ë�„ 쉽게 ì�µíž� 수 있다.
- ê°œì�¸ì � ì¶©ê³ : MFC 를 ì„ íƒ�했다면, Code Generator ê°€ 만들어주는 코드를 ì œëŒ€ë¡œ ì�´í•´í•˜ë�¼.; MFC 책으로는 Jeff Prosise ì�˜ ì±…ì�„ 추천. --1002
- ë‚´ ìƒ�ê°�ì—” ì�¼ë‹¨.. : 윈ë�„ìš° 컨트롤(VC 등ì�˜ 리소스 편집기ì—�서 ì œê³µ ë�˜ëŠ” ëª¨ë“ ì»¨íŠ¸ë¡¤ë“¤) ì�„ 다루는 법ì�„ ì™„ì „ížˆ 습ë“� 하ìž�. 리스트 컨트롤, 트리 컨트롤, íƒ ì»¨íŠ¸ë¡¤ 등ì�˜ ëª¨ë“ ì»¨íŠ¸ë¡¤ì�„ ìž�ìœ ìž�재로 ì›�하는 모양(비트맵) 으로 바꿔서 ì‚¬ìš©í• ìˆ˜ 있ì�„때 까지 하ìž�. ì™„ì „ížˆ 습ë“�하면 ì–´ë–¤ 프로그램ì�´ë“ 50% ì�´ìƒ� 개발 기간ì�´ 단축ë� 것ì�´ë‹¤. -- ê¹€ì •ìš±
MFC ¶
Windows API ¶
Direct X ¶
Network Programming ¶
Multi Thread Programming ¶
3D Programming ¶
Network Programming ¶
ëª¨ë“ í•™ìŠµê³¼ 마찬가지로 피드백 회수, 시간ì�„ 높ì�´ë©´ 효과ì �, 효율ì �ì�¸ 학습ì�´ ë�œë‹¤.
ì�´ë¥¼ 위해 Interactive Shellì�´ ì§€ì›�ë�˜ëŠ” ì�¸í„°í”„리터 언어(e.g. Python)와 패킷 스니í�¼(e.g. tcpdump, ethereal, etherpeek, ...), 웹 브ë�¼ìš°ì ¸, FTP, TELNET í�´ë�¼ì�´ì–¸íЏ 등ì�„ ì�´ìš©í• 수 있다.
안내 서ì �으로는 W. Richard Stevens나 Douglas E. Comerì�˜ ì±…ì�„ ë§Žì�´ 본다. 후ìž� 쪽ì�´ 조금 ë�” ê°œë…�ì �ì�´ê³ , ë�” 쉽다.
--JuNe
See Also HowToStudyXp, HowToReadIt, HowToStudyDataStructureAndAlgorithms, HowToStudyDesignPatterns, HowToStudyRefactoring









