Session 2Visual C++ 2008을 이용한 debugging과Crash Dump Analysis 노하우 2008
(신경준 MVP / 안철수 연구소)
많은 개발자들이 User Mode Code를 작성하고 있습니다. 그러나 실제 개발 단계와 유지 보수 단계에서 debugging에 어려움을 겪는 경우가 많습니다. Visual C++ 2008를 이용하여 이러한 어려움을 극복하기 위한 debugging & crash dump analysis 노하우를 알아봅시다
영상처리 분야에 깊게 몸담고 있는 사람 중 한명으로서, 미래 진로에 대해 많은 고민을 하고, 주변 분들에게 물어보고, 검색 하면서 주워모은 지식으로 여러분들께 도움이 되고자, 또 같은 라인에 몸담고 계시는 분들에게 꿈과 희망을 심어드리고자 이 글을 작성하게 되었습니다. 잘못된 정보 수정이나 추가 내용은 언제든지 댓글 달아주시기 바랍니다.
Last updated : 2006.9.23
ps. 영상처리 쪽으로 진출하려는 후배들에게 좋은 자료가 될 수 있도록 현업에 계시는 분들도 많은 참여 부탁드립니다.
1. 삼성전자 삼성전자 DM 사업부에서 영상처리 전문 인력을 뽑는데 H.264 를 능가하는 Super AV 코덱을 개발하고 있습니다.
MPEG, 영상압축, 스트리밍 분야 공부하시는 분들에게 추천.
2. 보안 업체들 지문인식, 감시카메라 등과 같은 벤처 및 중소기업 업체들이 인력을 뽑는다고 종종 공시가 오곤 합니다. 많이들 가는 것 같습니다.
특징점 추출(Feature Extraction), 생체인식 분야 분들에게 추천.
3. 이미지 코드 인식 모듈 개발 업체들 아 이콘랩, 칼라집 과 같은 이미지코드(2D 바코드) 인식 모듈 개발 업체인데, SKT, LGT, KTF 등으로 휴대폰 업체에 주로 인식 모듈 납품하고 있습니다. 칼라집은 일본에서 성공하여 대도시 중심지의 전광판에 뜨기도 하고 TV 홈쇼핑 방송 하단에도 칼라코드가 송출되고 있습니다. 아이콘랩의 코드는 국내에서 쿠폰북 등에서 자주 볼 수 있습니다.
바코드 코드 인식, 칼라 코드의 경우 색상 분류(Color Classification) 관련 분야 분들에게 추천.
4. 메이저급 디지털 카메라 업체들 캐 녹 익서스, 소닉 사이버샷, 후지 파인픽스, 니콘 쿨픽스, 카시오 엑스슬림, 코닥 이지쉐어, 산요 작티, 코니카미놀타, 삼성 케녹스, 펜탁스 옵티오.. 유명한 업체들만 나열해도 굉장히 많네요. 이와 같은 업체들이 영상처리 인력을 아마도 가장 많이 필요로 하지 않을까 싶습니다.ISO 감도가 높아짐에 따라 노이즈가 생기는 문제를 각자 특유의 알고리즘으로 해결하고 있고CCD, CMOS 로 찍은 이미지도 그대로 저장하는 것이 아닌 화질 개선 처리를 통해 각자 고유의 특색을 보여주고 있습니다.서로 각자의 축적된 노하우라 공개도 잘 안한다고 하네요. 축적된 노하우라.. 엄청난 포스가 느껴지지 않습니까..?또 몇몇 디지털 카메라에는 얼굴 자동 초점 기능이 있는데 얼굴인식 모듈까지 들어가 있다는 얘기겠지요.영상처리 하는 사람들이 가서 할일들이 무진장 많아 보입니다.
모든 분들에게 추천. 주분야는 영상개선 쪽이겠지요.
5. 모니터 업체들 LCD 모니터 및 텔레비전 업체에서 화질개선 영상처리 인력을 필요로 합니다.LG 가 백색 가전으로 유명하죠. 엘지는 엑스캔버스, 삼성은 파브.
영상개선 분야 분들에게 추천.
6. 사진 관리 툴 개발 업체들 별 로 많진 않지만 유명한 몇군데 업체가 있지요.일단 구글 피카사(Picasa.com), 웹 2.0 으로 유명한 리야(riya.com)와 국내의 올라웍스(Olaworks.com) 등이 있는데 리야랑 올라웍스가 현재 얼굴인식 모듈이 들어가 있어서 사진을 얼굴로 찾아 검색하는 기능을 가지고 있습니다 리야는 웹기반, 올라웍스는 클라이언트 기반입니다. 구글 피카사 역시 조만간에 얼굴인식 혹은 그 이상의 기능을 가지고 나올 것으로 추측과 기대를 해 봅니다. 플리커(Flickr.com)도 사진 쪽으로 유명하지만 아직 아무런 소식이 없네요.
얼굴인식, 물체인식, 영상검색, 내용기반 검색, 특징 추츨 분야 분들에게 추천.
7. 의료 영상 업체 저희 학교 대학원의 경우 Database 방에서 오히려 적극적으로 이 분야에 뛰어들었더군요.
X-ray 나 MRI 촬영 등을 통해 얻은 사진을 의사고 보고 판단하면 의사도 사람인지라 조금씩 오차가 있기 때문에 영상처리를 하여 특징을 추출, 사전의 DB 를 검색하여 확실하게 판단된 병명들과 매칭하여 판단하는 그런 시스템혹은 MRI 촬영 사진을 3D 로 재구성 한다던지 이런 일들을 하더군요.
영상검색, 특징 추출, 매칭 분야 분들에게 추천.
8. 국방 연구소 정보가 많이 없어서 잘 모르겠습니다.
일 단 알고있는 바로는 영상처리 모듈을 직접 개발하는 것이 아니라이런 기술이 필요하다라고 위에서 결정나면 공개/비공개 입찰등을 통해서 수주주는 형태로만 알고 있습니다.국내의 경우 직접 개발하는 일은 거의 없다고 하던데, 좀더 정확하게 아시는 분 댓글 부탁드립니다.
9. 우주 영상처리 NASA 여긴 대체 어떻게, 또 누가 가나요..?
주변에 아는 사람이 없어서..
10. 로봇틱스 혼다 아시모(Honda Asimo), 소니 아이보(Sony Aibo), 소니 큐리오(Sony Qrio), 한국 카이스트 휴보(KAIST Hubo) 등이 로봇 분야의 대표적이며 영상처리가 핵심인력이 되는 곳이기도 합니다.
로봇의 눈이라는 가장 핵심적인 역할을 하는 부분이면서도, 다른 물리적인 제어, 재질, 배터리 부분들 역시 너무나 어렵기 때문에각각의 모든 분야 인력이 핵심이 되는 분야라고 할 수 있겠습니다.
케이스 바이 케이스이기 때문에 우리는 잡이 많을 수 밖에 없다. 즉 사람이 많이 필요하다.
이 말은 이쪽 분야에서는 어떤 문제를 풀기위해서는 문제를 파악하는 것이 젤 중요하다는 겁니다.
얼굴인식, 지문인식, 자동차 번호판 인식, 자동차 인식, 생체 인식, 문자인식, 반도체 공정에서 부품검사 등
모든것을 해본적은 없지만 수업시간에 대강 들은 내용만 가지고,
그리고 이쪽 분야에서 어떤 프로젝을 한번 끝내보셨다면 감이 대강 오실겁니다.
뭔가 일이 주어지면 요놈을 어떻게 해야하나 고민하셔야 합니다.
2. Feature 선택하기, 추출하기(Feature Extraction)
한국에서는 어떻게 표현하는지 모르겠습니다. 지문 분야에서는 특징점이라고도 부르는 것 같구요.
어떤 사물을 분간해 내기 위해서는 사물과 사물의 차이점을 알아야 합니다. 그 차이점을 가장 잘 나타내 줄수 있는것을
찾아야 하는게 그것을 Feature 라고 부르네요.
지문에서는 사람의 지문마다 있는 고유의 모양을 Feature라고 할 수도 있고, 얼굴인식에서는 잘 가공된
eigenface(eigenimage)의 값이 feature가 될수 있습니다.
Duda의 첫번째 예제는 salmon과 sea bass를 구분하는 예제입니다.
이 경우에는 우리는 색정보는 필요 없습니다. 그냥 고기의 크기만으로 쉽게 구분지어질 수 있기 때문에
컨베이어에서 사진을 찍은후에 크기를 잰후에 구분만 해주면 됩니다. 이 경우는 Feature가 image pixel의 length가 되겠습니다.
또 다른 예는, 색을 가지고 구분하는 간단한 프로젝을 한다면 R,G,B 칼라 스페이스가 Feature가 되고, 내 분야는 R,G,B로 구분이 안된다. H,S,V로 바꾸어서 보는게 더 좋다 하면 HSV가 되겠습니다. 난 다 필요없다, 흑백만으로 충분하다 하면 Gray 이미지가
Feature가 되겠구요. 이 개념이 넘 중요합니다.
또 추가하여 Feature Space를 Frequency 영역으로 넘어가면
보통 texture 검출에서 많이 쓴느데, FFT의 coefficient값이 Featrue가 될수도 있고
Wavelet의 각 Level당 coefficient값이 Featrue가 될수도 있습니다.
또한 그 Coefficient 중에서 대표점을 clustering을 이용하여 얻어내었다면 그점이 Feature가 될수 있구요.
Feature Extraction 자체도 하나의 연구분야가 되며 많은 알고리즘이 있습니다.
잘 선택된(또는 만들어진) feature space는 복잡한 알고리즘을 필요없게 합니다.
추가:
Feature의 dimension이 너무 많다. 그래서 feature 사이의 정보를 이용하여
필요없는 Feature를 줄이는 방법도 있습니다.
이것을 pre-processing 쯤에 들어가는데 이 방법이 PCA와 같은 방법입니다.
보통 3차원 이상의 데이터는 그림 그리기가 어려운데 이를 보여주기 위해서 PCA를 사용해도 됩니다,
그러면 중요한 데이터들은 보존되고 그림으로 볼 수가 있기 때문에 유용합니다.
3. 알고리즘 개발 (MATLAB)
저희는 OpenCV 동호회이긴 하지만
제가 직접 보고 경험한 대다수의 개발자들은 MATLAB에서 테스트를 합니다.
MATLAB을 공학툴입니다. Mathematica나 Maple 등도 들어보셨으리라고 생각됩니다.
이 세가지 툴을 모르신다면 대강 어떤 일을 하는지 웹사이트에서 찾아보시고
본인의 PC에 설치가 되어 있는데 잘 활용을 안한다 그러면 실행후 help혹은 demo 파일을 잠시 돌려보세요.
분명히 인터넷의 다른 문서에서 이 문제를 서술한 글이 있으리라 생각됩니다. 네이버 이용하지 마시고
구글로 찾으세요.
요즘은 전산과에서 조차도 알고리즘을 개발하는 분들은 MATLAB을 사용합니다.
이는 메모리 걱정도 없고, 이미 만들어진 많은 함수들 덕에(이 함수를 묶어 놓은 )
그를 기반으로 새로운 알고리즘 만들때에 시간을 많이 줄일 수 있기 때문입니다.
예를 들어 이미지 전체에 걸친 패턴매칭 알고리즘을 만든다고 할때 기본적으로 사용되는 for 루프는 4개 입니다.
for 루프 2개는 이미지의 height, width를 돌리는데 써야 하고
for i=1:1:height
for j=1:1:width
알고리즘
end
end
매칭할 패턴의 알고리즘을 그 안에 또 넣어야 하는데 또 2개의 for 루프가 필요하며
조건에 따라서 그 안에 if문이 복잡하게 들어갑니다.
적어도 4개의 for 루프문과 한개의 if문을 디버깅하고 값을 보려면 조심조심 하는수밖에 없습니다.
MATLAB에서는 이런 작업을 그나마 쉽게 할 수 있습니다.
이런 부분을 곧장 C에서 만들려면, 디버깅이 어려울 수도 있고 초보자는 논리적으로 무지하게 해멜 가능성이 큽니다.
갑자기 생각이 낫는데, MATLAB 홈페이지에서도 제가 지금 쓰고 있는 글과 같은
글을 본적이 있습니다. 케이스 설명으로 어떤 회사의 개발환경을 설명하는 것인데
최종 결과물은 소트프웨어지만 역시 '문제를 해결하는데는 MATLAB을 사용하여 요즘과 같이 개발시간 단축이
중요한 시점에서 다른 회사보다 빠르게 개발할 수 있었다.' 라는 글이였습니다.
대강의 문제 해결을 위해서라면 매트랩을 이용해서 알고리즘을 검증해 보세요.
곧장 OpenCV로 해결하려는 분은 C언어를 10년 이상하신 분한테나 어울리는 행동입니다.
OpenCV 자체에 대한 이해와 C언어적인 요소때문에 정작 중요한 문제 해결에 투자하는 시간을
많이 투자할 수 없습니다.
3-1 MATLAB Script
<MATLAB 간략소개>
매트랩은 실행파일이 안만들어지는 스크립트 언어(한줄씩 결과물을 볼 수 있음)라는 사실을 먼저 아세요.
고가의 매트랩이 설치되어 있는 PC가 아니고는 본인의 결과물을 확인해 볼 수 없습니다.
즉 자신의 결과물을 일반인에게 팔 수 없습니다. 하지만 학생버젼은 150불 정도밖에 안하구요,
학업을 위해서라면 암흑의 경로를 이용해도 쉽게 구할 수 있을 정도로 공학툴에서는 대중적인 소트프웨어 입니다.
매트랩은 책보다 그냥 헬프파일의 내용만 가지고 충분합니다.
MATLAB은 보통 배우는데 1주일이면 뒤집어 쓰고 하루 동안 헬프파일 읽고 따라하면 대강 느낌이
옵니다만(C에 비하면 무지하게 쉬움), 매트랩을 잘 활용하려면 역시 꾸준히 해도 늘 새로운 기능이 나오고 그렇습니다.
저도 틈틈히 메모와 다른사람 코드를 통해 배우고 있음.
우선 주어진 한장의 이미지를 가지고 스크립트를 만들어서 테스트 해보세요.
OpenCV에서 구현되는 대다수의 함수들이 Image Toolbox, Image Aquare Toolbox라는 이름으로 전부 구현되어 있습니다.
help 파일(영문)을 대강 읽어보면 사용법을 쉽게 알 수 있습니다.
따라서 이 함수들을 이용해서 주어진 문제를 해결하면 나중에 이를 OpenCV를 이용해서 해결할 수 있습니다.
매트랩에서 구현이 되었는데 OpenCV에서 구현이 안된 함수라면 MATLAB을 분석해서 openCV로 만들수도 있습니다.
대표적인 예가 histogrm에서 자동으로 Threshold value를 찾아주는 함수인데, 자주 쓰는건데 OpenCV에서 구현이 안되어 있습니다.
물론 야후에 가면 누가 만들어 놓은게 있지만... 여튼 이것도 매트랩 코드 보고 C로 만들어도 됩니다.
3-2 MATLAB Function
스트립트를 이용해서 문제를 해결했다면
이번에는 MATLAB Function을 만듭니다. (만드는 법은 help파일 참조)
입력과 출력이 있는 함수를 만든다음에 여러장의 사진으로 테스트 해봅니다.
다양한 테스트 이미지에서 자신이 만든 알고리즘을 검증을 하면서 필요한 부분을 보완합니다.
이때 머리 많이 돌아가고, 논문 거리가 될만한 아이디어가 떠올르기도 하고... 여튼 생각이 많아지고
다른 사람들과 순수 알고리즘에 대해서만 토론도 하게 되고 .. 뭐 그런 과정입니다.
하나의 문제를 해결하는데 부가 함수들을 많이 나누어서 재활용하는 루틴은 반듯이 함수화하는 습관을 길러야지
나중에 C로 만드는데도 효과적으로 할 수 있습니다.
3-3. 실제 데이터로 테스트(옵션).
이미지 한장이 입력인 경우에는 문제가 없지만
캠으로 반은 데이터를 처리하거나 초당 30프레임의 데이터를 처리해야 하는 어플리케이션의 경우에는
실시간급의 테스트를 반듯이 해봐야 합니다.
Iamge Acauring Toolbox를 보면 USB 캠데이터를 실시간을 쉽게 받아올 수 있고
코덱이 한정되어 있지만 AVI파일도 읽을 수 있습니다.
저 같은 경우는 테스트 환경 특성상 데이터를 테입으로 녹화한후에 그것을 AVI로 바꾸고
그것을 조그맣게 1분짜리 동영상으로 쪼개서 테스트 해봅니다.
MATLAB은 C에 비해서는 속도가 현저하게 낮기 때문에 프로세싱 시간이 좀 걸리고
프로그래밍 스킬이 부족하시면 속도가 많이 늦을 수도 있습니다. (아시는 분은 아는 이야기)
4. OpenCV에서 만들기
실제 프로젝을 하다보면 초보자와 경험자와는 시간의 분배가 많이 다를수 있습니다. 당연히 경험의 차이인데
초보자는
OpenCV의 인스톨부터, 하드웨어 인터페이스 문제,Linux를 사용한다면 Linux 자체를 배우기, PC 문제 등
별의별 자질구레한 문제까지 다 해결을 해야하기 때문에 정작 알고리즘 개발과 같은 부분에서는
시간을 많이 투자하지 못하는 경우가 생깁니다. 메모리 누수를 막을려고 투자한 시간이 알고리즘 개발에
걸리는 시간보다 더 많다면 효율이 많이 떨어지는 것이겠지요.
경험자는
대부분 그런 문제에 대해서 해결방법을 알기 때문에 좀더 근본적인 부분에 시간을 많이 투자를 할 수 있습니다.
또한 디버깅도 매우 현명하게 합니다. 여기에서 개발 시간차이가 꽤 날 수 있습니다.
따라서 게시판에 올라오는 글들을 보면, 처음에 많은 시행착오를 겪으시는 분들이
상당히 계시다는 것을 알 수 있는데, 이런 동호회를 통해서 그런 착오는 좀 줄이시고
그 경험을 나누면 다른 분들이 많이 도움을 받을 수 있을겁니다.
또한 그 경험은 사실 꼭 필요한 과정입니다. 없이 지나가는 것은 아닌것 같습니다.
그 자체로도 배우는게 많이 있습니다. 궁극적으로는 개발 자체에 시간을 투자할 정도의 스킬을 갖추셔야 할겁니다.
자질구레한 문제는 다 해결되었다는 가정하에
MATLAB으로 만든 여러 함수들을 OpenCV의 메뉴얼을 보면서 활용하시면 됩니다.
중간 중간의 결과물을 윈도우로 볼 수도 있고, 저장해서 이미지 뷰어 프로그램을 이용하여
확대해서 보면서 최종 소프트웨어를 만드시면 됩니다.
사실 별것 아닌 이야기를 사족을 많이 넣다보니까 길어졌는데
1. 주어진 문제를 어떻게 풀지 생각하고
2. 문제에 가장 적합한 Feature를 결정하고
3. MATLAB으로 알고리즘을 개발, 테스트 한 후에
4. OpenCV로 최종 결과물을 만들면 됩니다.
이 방법이 대부분의 비젼 개발자들이 주로 쓰는 방법이며
1. MATLAB에 대한 이해
2. C/C++ 언어에 대한 이해
3. OpenCV에 대한 이해가 갖추어 져야 합니다.
젊은 공학도에게는 커다란 청사진이, 다른 사람의 개발환경이 궁금하셨던 분들에게는
약간의 정보 공유가 되었으면 하는 바램입니다.
이 문서는 계속 수정, 보완됩니다.
역시 댓글로 자신의 노하우를 나누는 것 환영하며
저자신도 부족한 부분을 채우는데 많이 도움이 될 듯 합니다.
또한 잘못을 지적해 주셔도 되고, 구제적으로 언급되지 않은 문서에 대한 링크를 알려주기면 감사하겠습니다.
http://www.tmaxwindow.co.kr 350명의 개발자가 5년만에 저걸 전부 개발했다고? MS 오피스개발자만 해도 350명이 넘을 텐데?
오픈소스에 관심갖고 좀 사용해보면 티맥스에서 시연한 프로그램들은 짜집기로도 충분히 만들수 있다는걸 알수 있다.
리눅스 기반에 ReactOS의 소스로 2000 api 호환성을 갖게 하고 mplayer돌리고 크롬(Webkit)분석해서 브라우저 만들어
놓고 파이어폭스의 IE-tab기능 넣어놓고선 ActiveX시연하면 끝이네.디자이너가 더 많이 투입된건 아닌지...ㅡ.ㅡ;
부디 망신 당하지 말고 당당히 밝히고 오픈소스를 사용해서 좀더 발전된 기술들을 보여주시길...
리눅스 진영에서 윈도우와 같은 환경,호환성을 지원하기 위한 프로젝트는 많다. Wine,ReactOS,린도우, 가상화 기술들..
MS가 린도우를 고소해서 이름조차 바꾼일이 있었는데 UI가 윈도우와 너무 흡사한걸 MS가 그냥 넘어갈까?
Windows7
에서 기존의 소프트웨어의 호환성을 테스트할 수 있는 ACT(Application Compatibility Toolkit) 5.5
버전을 통해서 기존의 소프트웨어들과 호환성을 체크하고 해결 방안을 찾아가는 과정을 알려드립니다.
김영욱
에반젤리스트
Windows 7에서 UAC 기반 애플리케이션 개발
200-300
이
세션에서는 Windows XP 에서 Windows 7로 애플리케이션 마이그레이션 할 때 반드시 해야 할 사항 중에 특히 UAC
기반의 애플리케이션을 개발에 대한 가이드라인을 제시하는 데 초점을 맞춘 세션입니다. 각각 UAC와 Standard User
모드에 대한 개념을 설명하고, ISV 및 LOB 솔루션을 개발할 때 애플리케이션 상에서 UAC를 추가하는 개발 방법을 직접
데모로 보여준다.
서진호
에반젤리스트
5/20
Silverlight 3 향상된 기능과 새로운 도약
200
19:00-21:30
지금까지 알려진 Silverlight 3의 새로운 기능을 하나 하나 예제를 통해 살펴보고 향상된 기능이 우리에게 제시할 새로운 비전과 도전에 대하여 생각해 보도록 하겠습니다.
이도한
Silverlight 2로 유명 인터넷 영화예매 솔루션 따라잡기
200
국
내 최고의 Silverlight 개발 경력자와 함께 Silverlight 2에서 MVVM Pattern, Command
Pattern, LINQ to XML, Data Binding을 활용하여 인터넷 영화예매 솔루션을 구현해 봅니다.
이길복
5/27
전사적 클라이언트 서비스의 통합
300
19:00-21:30
WCF(Windows
Communication Foundation)을 이용하여 WPF, Silverlight, HTML, AJAX, ASP.NET 을
포함한 다양한 기술 기반의 클라이언트 애플리케이션을 포괄하는 서비스의 개발 노하우를 전합니다. 코드 재사용과 개발 프로세스
합리화, 외부 서버와의 통신이나 도메인간의 통신 등에서 발생할 수 있는 문제점들의 해결방안을 제시합니다.
유경상
A제조기업 생산공정 관리 솔루션 구축 사례를 통해 본 WCF 통신을 도입한 WPF 애플리케이션 구현 사례
200
WPF/WCF 도입사례
국내 대기업의 공정/물류관련 시스템을 WPF와 WCF를 이용해서 성공적으로 적용한 사례를 소개하고 적용과정에서 나타난 여러가지 팁과 경험을 공유합니다.
1. 프로젝트 배경및 개요
2. WPF
대규모 BOA에서의 화면 전환및 메모리관리
업무용 어플리케이션의 UX
윈도우 비주얼 커스터마이징
공용 컨트롤 커스터마이징
WCF와 WPF 비주얼 컴포넌트의 연결
3. WCF
다중 서버간 연결및 릴레이
서비스 비동기
클라이언트 비동기
예외처리
송기수
김창민
(WCF 개발)
정진희
(WPF 디자인)
6/3
ASP.NET 4.0 : What's Next?
200
19:00-21:00
DomainDataSource
와 Dynamic Data의 사용, 향상된 FormView와 ListView Control, CliendID의 변경 기능 및
SEO를 위한 라우팅 기법 등 ASP.NET 4.0에서 새로워지는 기능들에 대해서 소개합니다.
서동진
Open Source Framework 동향 및 사례
200
개
발 표준화와 생산성 향상을 위해 Framework 도입에 대한 필요성은 인정하면서도 그간 .NET에서 Open Source
Framework의 사용 사례를 찾기는 쉽지 않았습니다. 그러나 최근 Open Source의 성숙도(Maturity)가 높아지고
기업들의 합리적인 비용 지출에 대한 고민이 많아지면서 Open Source가 다시 주목 받고 있습니다. 이 세션에서는
.NET에서 접할 수 있는 Open Source Framework을 소개하고 자신이 속한 조직에서 알맞는 Framework를
선택하는 방법을 제시합니다.
최만석
6/10
.NET Framework와 Visual Studio : 현재와 미래 1, 2
200
19:00-21:30
2000
년 발표된 닷넷이 이제 10살되는 시점, Windows 7 시대의 개발 프레임웍으로 닷넷과 Visual Studio의 새롭게
변신한 기능과 개별 기능들을 CTP 버전을 통해 미리 만나 볼 수 있는 시간 입니다. C#과 F#, C++ 그리고 Visual
Studio 확장 기능인 MEF, 모델링 등을 새로운 통합개발환경에서 볼 수 있는 시간입니다.
VSTS2010
Team Blog
운영진
Visual Studio 2008로 Windows Mobile 6.5 애플리케이션 개발
100
최
근 발표된 Windows Mobile 6.5의 사용자 인터페이스 및 모바일 웹 브라우징에 대한 새로운 특징을 알아봅니다. 또한
Visual Studio 2008 로 모바일 웹 사이트, 메시업/위젯 또는 장치 기반의 애플리케이션을 개발하는 방법을 데모로
보여주며, 향후 모바일 마켓 플레이스 배포 및 인증 절차에 대해서도 설명할 예정입니다.
서진호
에반젤리스트
6/17
Silverlight와 WPF 도입 사례 (A 리조트 예약/발권 시스템에 도입된 SL과 WPF)
200
19:00-21:30
Silverlight
와 WPF를 비즈니스 요구사항에 맞추어 multi-headed 형태로 개발한 사례를 소개합니다. 특히 발권 시스템 및 POS
단말 등 다양한 시나리오에 적용된 WPF애플리케이션의 경우 XAML의 장점을 활용하여 UI 모듈화 및 재사용성을 높여 향후 UI
추가 및 확장시 유연하게 대처할 수 있는 방법을 제시해 주고 있는 사례를 직접 프로젝트를 진행한 개발자를 통해 들어봅니다.
아울러 이러한 장점을 효과적으로 살리기 위해 필요한 UI 개발 도구인 Expression Blend의 template을 활용하는
노하우도 얻으실 수 있습니다.
- FileUpload를 이미 많은 자료들이 있으니, 저는 간단하게 PhotoLight에서 다중 파일 처리에 대해 애기할게요. FileUpload
를 WCF를 이용해서 Stream를 나눠서 파일을 보냈고요, 다중 파일을 선택해서 보내다보니, WCF서비스에서는 올라오는 이미지
파일들이 어떤 그룹인지 알수가 없어 하나의 이미지파일을 보낼때 마다 그룹 키를 함께 보내서 지금 올라오는 이미지들이 키를
중심으로 하나의 그룹이라는 것을 정의해 줬어요. 이 부분은 소스를 보면 알수 있을 거예요. 이렇게 올라온 이미지 파일을
DeepZoom파일로 변환해서 저장하기도 해요.
- Viewer에서는 WCF를 이용해서 해당 키를 호출해 주면요.
해당 WCF서비스에서는 DBServe에게 해당 데이터를 요청하고, 받은 데이터를 토대로 DataClass를 생성해서
PhotoLight에서 넘겨주게 되는 구조이죠. 이렇게해서 PhotoLight에서는 해당 데이터를 토대로 하나하나
이미지를 호출하게 됩니다. 기능들을 간단하게 슬라이드와 한장씩 보기, 딥줌보기가 있고요. 퍼가기 기능도 지원합니다. ^^
세미나날 퍼가기 기능을 테스트 한다가 안되서 약간 당황스러웠습니다^^;;집에와서 확인해 보니 제가 마지막에 소스를 고치면서
퍼가기 부분은 예전소스 그대로 놨더라고요. 이런이런...저도 인간인지라...^^;;;
UO에 올라온 클로임님 글을 보고 몇가지 에러처리를 하고 VC6에서 폴더로 정리좀 했다.
99%라고 찾기 하면 수정한 코드는 표시해놨음.(컴파일시 출력창에 보이며 더블클릭으로 이동할수 있다.)
원본 소스코드는 VC6,7.1, Dev C++로 컴파일할 수 있게 해놨고 VC8이상에서 사용하기 위해선 몇가지 처리를 해야된다.
stdafx를 보면 몇가지 warring을 막는처리를 했고 time을 강제로 32비로 처리하게 해놨다.
VC8이상부턴 time이 64비트로 처리되는데(참조) 기존소스에서 무심코 넘어갔단 어이없는 버그가 발생한다.
자료구조(DataType)관련이 좀 많다.
AutoIt_Script ,AutoIt_ScriptFile에 대부분의 구현이 있고 AutoIt_App로 Autoit본체 관련 윈도우처리(참고로 여기에 tray처리가 있다) 등을 했다.
qmath관련 전역함수는 수학관련 라이브러리이고 대부분 어셈으로 처리됨.
Util_가 붙은 전역함수는 각종 유틸함수.(Util_UNICODEtoANSI같은 함수)