금일(2008년 1월 6일) 한국 마이크로소프트에서 주관하는 "Visual C++ 2008의 멀티쓰레딩 디버깅 소개" 라는 세미나를 다녀왔습니다. MS에서 사용하고 있는 포스코 센터 건물이 다니고 있는 회사 바로 길 건너편이라 가깝다고 생각했는데 일요일에 세미나를 한다는 복병이 …
세미나 내용을 간단히 요약하자면,
- 멀티스레딩 응용이 중요해진 이유에 대한 설명; GDC 등을 통해 익히 들은 내용이라 그다지 새로운 내용은 없었습니다
- 메모리 접근에 대한 소개 (간략하게)
- 스래드 생성, 종료, 동기화에 관련된 이슈들. (추가적으로 TerminateThread나 EnterCriticalSection 함수의 pitfall에 대해 간략히 다뤘음)
- 스레드 동기화 객체에 대한 설명 – Mutex, mutex를 이용한 스레드 스로틀링, Event, Wait 류의 함수에 대한 설명.
- STL 컨테이너와 MFC 컬렉션에 대한 설명 – 우리가 흔히 말하는 integer-like 접근방법들만 안전하다는 설명
- 스레딩 일반적인 이슈들 – 스레드 수, 풀링, 메모리 관련, OS 특성(…을 알아야한다는 설명)
- VC++ 2008의 멀티스레드 응용 디버깅 특징 (데모)
- VC++ 2008의 프로파일링 기능에 대한 데모 (불행히도 해당 기능은 Team Suite쯤 되야 사용할 수 있지만)
정도인데.
일단 시간이 굉장히 빡빡해서 원래 예정 시간보다 30분정도 더 진행되었지만 좀 더 천천히/자세히 짚고 넘어갈만한 부분들을 후다닥 지나간 느낌. 초급 이슈에 할당된 시간도 좀 길었고 -_-a
VC++ 2008에서 새로 등장한 멀티스레딩 이슈는 다행히도 집컴에도 설치된 VC++ 2008 Express Edition에서도 시험해 볼 수 있었는데,
Editor 안에서 스레드 컨텍스트를 쉽게 볼 수 있다.
간단히 말해서, 에디터에서 각 스레드들이 코드 어디에서 실행되고 있는지 보여준다.
스레드에 이름을 붙일 수 있다.
물론 디버거에서의 얘기고, 안 그래도 모두 하고들 있던 일 아닌가[……..]. 물론 디버거 기능이 되었으니 좀 더 편하긴 할듯하다.
관심있는 스레드와 그렇지 않은 스레드를 구분할 수 있다.
스레드 디버깅 윈도우 왼쪽에 아웃룩 깃발 같은게 추가되었고(…) 깃발이 켜진 스레드들만 디버깅하는 기능이 추가되었다.
이 세 가지가 데모로 봤던 시연 장면이다. 그런데 이것만으로 딱히 2008이 땡길 이유가 있는지 모르겠다. 편하긴 하겠지만 저게 그렇게까지 중요한 기능으로 안보인단 말이지. 일단 VS 2003, 2005에서 스레드 디버깅이 이전 버젼들보다 월등히 편해진 상태라는 면도 크고;
MS에서는 C++ 네이티브 코드 자체에 대한 지원이 확실히 줄었다는 것을 느껴서 좀 서글펐달까. 내용도 다양하긴했지만 충실했다고 하기엔 뭔가 부족했고, 아쉬움이 남는 세미나였다.
ps. 질문에 답을 하나 했더니 V3 2007 플래티넘 팩키지를 하나 받았는데, 이미 집에서 쓰고 있는 물건이다. 누가 염가에 좀 업어가줘[…]
세미나 참석해 주셔서 감사합니다.
레인님 블로그에 올리신 글을 읽고 초절정 내공을 소유하신 고수분이란것 알수 있었습니다.
다음에는 좀더 알찬 세미나가 되도록 노력하겠습니다.
항상 행복하세요
앗 저는 길가에 차이는 잡어(…)입니다;
시간만 좀 넉넉했으면 좀 더 좋았을 것 같은 세미나였어요 ^^;;;