Visual Basic 6의 컨트롤을 .NET에서 사용할 때... 예:WinSock Programming Reloaded!

비주얼 베이직을 쓸 때 가장 편리한 것 중에 하나는 소켓 통신(Winsock)입니다. 몇 줄만 짜면 원하는 통신이 이루어지므로, 잠깐 테스트해볼 때 너무나 좋습니다.

물론, 요즘에는 잘 필요하지 않지만^^

비주얼 베이직이 .NET으로 넘어오면서 시스템 상에서 소켓을 지원하게 되었습니다.(Imports System.Net.Sockets) 하지만, 편리함도 무시할 수 없고 계속 사용할 것도 아니기 때문에, 과거에 VB6에 쓰던 윈속을 쓰고 싶었습니다.

첫번째 문제는 “프로젝트” -> “참조추가”를 통해서, 어떻게든 구한 VB6.0 SP5용 MSWINSCK.OCX을 등록을 해도 [디자인]을 할 때 좌측의 “도구 상자”의 “일반”항목에는 아무런 컨트롤이 안생긴다는 것입니다!!!

이것은 유투브에 동영상도 나와있듯이, 비주얼 베이직 2008의 “도구”메뉴에서 “도구 상자 항목 선택”을 클릭한 후, “COM 구성 요소” 탭을 누른 후, “Microsoft WinSock Control, version 6.0″을 체크 표시해주면 됩니다.

두번째 문제는 비주얼 베이직6와 달라진 부분인데 간단하므로, 아래에 샘플 코드로 대체합니다^^ 나머지는 비슷합니다.

Private Sub AxWinsock1_ConnectionRequest(ByVal sender As Object, ByVal e As AxMSWinsockLib.DMSWinsockControlEvents_ConnectionRequestEvent) Handles  AxWinsock1.ConnectionRequest
    AxWinsock1.Close()
    AxWinsock1.Accept(e.requestID) ' VB6와 달리 e.을 덧붙여 준다. 
End Sub

Private Sub AxWinsock1_DataArrival(ByVal sender As Object, ByVal e As AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEvent) Handles AxWinsock1.DataArrival
    Dim byteData() As Byte
    Dim strData As String
    byteData = Nothing ' Warning을 없애기 위하여... 
    AxWinsock1.GetData(byteData)
    strData = System.Text.Encoding.ASCII.GetString(byteData)  ' MSDN참조
End Sub

* 추가: 아래에 댓글을 달아주신 것처럼, VB6의 Winsock을 굳이 위와 같이 쓰는 것은 좋은 선택이 아니라는데 동의합니다. VB6에 있었는데 .NET에는 더 이상 지원되지 않는 것이어서 어쩔 수 없이 쓰는 거라면 이야기가 다르겠지만 말이지요. 원래는 그런 이유 때문에 작성한 글인데, Winsock을 예로 든 것은 적절하지 않았다는 생각이 듭니다^^ 

과천 문원동의 만조에서 우연히 만난 저렴한 와인 와인


과천 남쪽 복잡한 인터체인지(?)를 네비게이션의 안내를 받아 통과하면 문원동의 한적한 샤브샤브 쌈밥집 만조를 만나게 됩니다. 

가끔 가족 모임을 하는 곳인데, 지난번에 들렀을 때 와인이 3만원으로 써 있길래 뭐가 있나 와인 보관 선반에 가보았습니다. 

일단 몇 가지 없었지만, DE MARTINO는 많이 들어보고 전에 마셔본 거 같아서 주문했습니다. 나중에 알아보니 347 Vineyards는 마트에서 12,000원 가량 하는 것이었습니다. 어쨌든 와인을 가끔 마시는 입장에서 식당에서 3만원은 매우 저렴한 편에 속하지요. 

사실 기대는 하지 않았는데, 역시 칠레산 답게 향이 상당히 매력적이었습니다. 블라인드 테스트하면 값 싼 와인이라고 이야기하지 않을 만한 수준이었지요. -> 솔직히 요즘은 와인을 잘 안마셔서 뭐든 맛있다는^^

와인잔은 좀 작아서 깼지만^^, 한 모듬 입에 머금고 나서의 느낌은 남들 표현에 바디감이 느껴진다는 딱 그거였습니다. 얼마 전에 몽페라 2009년산을 이마트에서 3만원에 사서 마셨는데(지금은 4만원), 품종과 나라도 다르지만 가격이 몽페라의 반값이라고는 믿어지지 않는 맛이었습니다. 

뭐 항상 그렇지만, 비싼 와인이 아니어서 그런지(편견일 수도) 좀 오래 놔두고 끝으로 갈 수록 약간 약해지기는 하지만, 그거야 빨리 마셔버리면 해결되는 것!^^ 



남이섬 옹달샘 펜션 사진찍기

겨울이라 다소 좀 을씨년스러웠음^^, 추웠지만 바베큐 맛있게 먹으며 착하고 좋은 사람들과 재미있게 놀다온 곳~~~ 홈페이지의 사진은 여름에 가서 검증해야할 듯 ㅋ

위치는 남이섬 쪽은 아니고 산속이며 큰 길에서는 다소 멀리 떨어져 있고, 가는 도중에 펜션이 정말 많더군요.


어제부터 트위터를 달군 119 전화 사건을 보며 드는 생각들 잡념속으로

트위터에서는 거의 일방적으로 김문수지사의 잘못을 지적하고 있는 상태입니다. 일부 균형잡힌 시각도 있지만, 일단 비웃고 욕하는 사람이 더 많은 듯하네요. -> 저도 이 참에 잘 되었다 싶어 비웃고 욕하는 쪽이지만^^

이 와중에도 역시 늘 트위터를 풍요롭게 해주는 미국에서 CEO를 하고 있는 임정욱씨가 트위터에서 소개해준 http://codenarbonne.wordpress.com/2011/12/28/governorki/ 글이 공감이 많이 갑니다. 카추사로 복무하다가 비슷한 사례를 겪은 이야기인데요. 미군과 한국군의 대응 방식을 비교해주는 내용입니다. 

힘없이 좌천된 분도 사과의 글을 올린 상태라, 이제 김문수지사도 잘못한 부분을 인정하고 인사조처에 대한 타당성을 다시 생각해 준다면 가장 좋은 솔루션일 거 같네요. -> 트위터에서 노회찬씨의 의견도 김문수지사가 잘못을 바로잡아야한다고 했지요.

저는 이 문제를 보며 다음 사항들이 떠오르네요...

"50~60년대생 부모 밑에서 자란 지금 젊은 세대들 vs. 기성세대들의 인식차이가 많이 크다."

- 전후 교육의 내용을 들여다보면 전통 한국식은 아니었고 도리어 서양식이라해야 맞지요. 가정 교육의 내용에서도 두 세대 간에는 엄청난 차이가 있는 것은 당연한 것이고, 서로 어느 정도까지는 차이를 인정해주어야할 것입니다. 

"구시대의 권위 의식이 자리 잡을 곳이 점점 줄어든다."

- 과거에는 나이와 직급으로 누를 수 있었는데, 이제는 안되서 패닉 상태에 빠지는 구세대... 하지만, 위 참조 사이트의 미군처럼 합리적이고 논리적으로 사고하는 체계는 낯설고 평소 습관이 아니니... 

어쨌든 서로 어이없는 상황에 빠져서 정상적인 대화를 하지 못한 것은 공동으로 책임을 져야할 것이지, 어느 일방이 좌천되는 것은 옳지 못해 보입니다. 

=> 이미 아시겠지만, 김지사 일부 잘못 인정하고 원대 복귀시켰다고 하네요. 불필요한 논란이 종식된 듯...

런던심포니(LSO) 요셉 크리프스 베토벤 교향곡 전집 $5.99 다시 클래식음악으로

http://itunes.apple.com/us/album/beethoven-the-complete-symphony/id288461963

아이튠스에서 왜 이 앨범의 가격을 $5.99로 판매하는 이유는 모르겠지만(아마존에서도 같은 가격), 부담이 없고 평들도 나쁘지 않아서 구입을 했습니다. 

SkyHD를 보다가 유니텔클래식에서 베토벤 교향곡7번에 대해서 크리스티안 틸레만이라는 지휘자와 대담하면서 들려주는 것에 이끌려서 아이튠스에서 검색을 하다가 발견했는데, 결론은 잘 샀다는 것~~~ 

MW600 블루투스에 MD시절의 소니 번들 이어폰으로 들어서 정확하지는 않지만, 녹음은 나무랄 데가 없어 보입니다. 위키피디아를 보니까 Josef Krips는 1950-1954년에 런던심포니를 맡았다고 하는데, 이 베토벤 교향곡 전집은 1960년대 초반에 녹음된 거 같습니다. 

어렸을 때 베토벤 교향곡을 처음 접할 때 주로 LONDON SYMPHONY ORCHESTRA의 것을 들었기 때문인지, 3번부터 듣기 시작하는데 왠지 낯설지 않고 익숙한 느낌을 주었습니다. 오래 되어 기억이 나지 않지만, 아마 아바도나 프레빈 정도의 음반이었을 듯... 개인적인 편견이겠지만, 왠지 베토벤 교향곡을 LSO가 연주하면 원본에 충실하고 엄격할 거 같은 느낌이 들고 역시나 꽤 진지했을 거 같은 베토벤의 스타일에 맞지 않나 싶습니다. 

일할 때 가끔 차이콥스키의 교향곡 4-6번을 연달아 틀어놓기도 하는데, 이제 베토벤의 교향곡을 1-9번을 들으려면 좀 길게 일해야할 듯? ㅋㅋㅋ 



나는 꼼수다를 듣다 보니까... 마음 편하게 살자

영업하시는 분께서 만날 때마다 침이 마르도록(?) 거론하신 "나는 꼼수다"를 지난 주말에야 처음으로 들어 보았습니다. 
  • 홍준표 한나라당 대표가 나왔다고 하길래 그 언저리의 몇 개 에피소드를 들었습니다. 첫 회도 들었고, 이번 주에 나온 것도 들었습니다. 
딴지일보의 우월한(?) 논조는 전에 한창 유행일 때 몇 번 듣기는 했지만, 이번에 나꼼수를 들어보니까 "출연자들이 참 대단한 사람들이구나..."라는 생각이 들었습니다. 
  • 안철수박사의 "상식"이 통하지 않는 사회인데다가, 권력과 돈 앞에서는 간과 쓸개도 자랑스럽게 꺼내놓는 시기에 살고 있는데, 이 정도의 방송이 아닌 방송을 한다는 것은 보통 사람들이라면 상상할 수 없는 도전이라 하겠습니다. 
  • 한번 더 놀라운 것은 단순히 불의에 대한 "분노"의 표출이 아니라, 그것을 희화시키고 재미있게 은유하여 "진실을 지나치게 직시함으로써 야기되는 스트레스"를 날리면서도 목적을 달성하고 있다는 것입니다. 이들은 이미 고수인 것입니다.
트위터로 한방 먹은 정치권이 이제는 팟캐스트라는 복병을 만나서 대책을 부심해야 하는 처지에 놓이게 되었네요. 
  • 그 서비스 업체가 국내였다면 벌써 게임이 종료되었을텐데, 이들이 존경하고 사랑해 마지 않는(?) 미국에서 만든 서비스라 좀 당황스러울 거 같습니다. 
사실 너무 진지하게 목숨 걸고 싸우는 것은 오래 하기 어렵습니다. 아마 평생을 그래야할 것인데, 그러다보면 피곤해지고 나이들면 자연스레 보수의 싹이 트므로 어차피 그러지도 못하겠지요. 어쨌든 나꼼수로부터 다음 사항을 배웁니다. 
  • 웃으면서 싸워도 이길 수 있다. 
  • 살아가다보면 정치에 무관심해지기 쉬우므로, 트위터에 관심을 갖자. 
어쨌든, 너무 지나치게 멀리 가버리고 있는 현 사회가 이번 나꼼수로 약간의 브레이크를 걸 수 있다면 좋겠다는 생각입니다. 

경마장 풍경 사진찍기

니콘 쿨픽스 8200은 포켓 크기의 디지탈 카메라이지만, 14배 줌을 지원합니다. 경마장에서 말이 달리는 모습을 찍어보았습니다.






웹앱 개발용 프레임워크 센차 터치를 써보고... Programming Reloaded!

애플의 아이폰을 위해 Xcode 개발툴에 Objective-C를 알아야 하고, 안드로이드 개발을 위해 이클립스 개발툴에 Java를 알아야 합니다. 

각종 모바일 OS를 지원하는 통합 개발툴에 대한 다양한 시도가 이루어져 왔습니다. 특히 폰갭이라는 것은 아이폰 등의 카메라나 센서 등에 대한 제어를 할 수 있는 Wrapper를 제공해 주고 있습니다. 

웹앱을 만들기 위해 폰갭에 덧붙여서 웹앱 개발용 프레임워크를 찾아보게 되는데, 여러 가지 생각 끝에 jQuery Mobile과 Sencha Touch 중에서 하나를 고르게 되었고, 센차 터치를 이용해서 개발을 해보았습니다. 

결론부터 이야기하자면, 매력적이긴 하지만 그렇게 쉽기만 한 것은 아니라는 것입니다. 

물론 Sencha Touch가 제공하는 다양한 UI요소와 기능들은 훌륭한 것이고, 자바스크립트를 알고 있다면 언어에 대한 장벽은 낮은 편입니다. HTML에서 제공하는 기본 기능보다는 Ext JS언어를 통해 제공되는 UI요소 및 설계 구조를 따라서 개발하여야 하는데, 이것이 좀 간단하지는 않더군요. 

개략적인 내용은 책의 한 챕터 정도 기사 몇개 혹은 센차터치 홈페이지에서 제공하는 동영상강의와 강좌로 익힐 수 있지만, 구체적으로 구현하면서 생기는 의문점은 구글 신의 도움을 얻어야 하더군요. 물론 대부분의 해답은 센차 홈페이의 블로그 등으로 검색됩니다.  

컨트롤들을 내 마음대로 제어가 되지 않을 때에는(몰라서이지만) 그냥 네이티브 아이폰 앱으로 개발할 걸...하는 후회가 자주 나옵니다. 만약 국내에 Ext JS와 센차터치에 대해 참고할만한 좋은 서적이 하나 있다면 그나마 부담이 줄어들 수 있겠지요. Sencha Touch In Action이라는 책이 가을에 미국에서 나올 거 같으니까 그러면 좀 더 도움이 될 수도...  국내에 나온 Ext JS관련 번역된 책은 사실 센차 터치에 참고하기에는 조금 구성이 좋지 않다는 생각입니다. 좀 산만하다고나할까? 그보다는 번역서가 아직 없지만 Ext JS in Action이라는 책이 비록 3.0기반이긴 하지만 개념을 잡는데는 더 도움이 될 것 같습니다. 

이제는 센차 터치용으로 extension을 만드는 쪽까지 좀 더 공부해둔다면, 간단한 개발에 드는 시간은 줄어들 거 같다는 생각이 듭니다. Ext JS의 PC 브라우저 버전은 상당히 미려한 UI를 제공하고 있더군요. 구글의  GWT도 만만치 않은 발전을 이루고 있으니 어찌 될지 두고봐아겠지만 말이지요. 

어쨌든 HTML, HTML5, 웹서버 관련 지식들이 부족하여 많은 시간을 들여서 공부하게 되었는데, 앞으로 어떤 웹앱 프레임워크가 그 세를 확장해 나갈 지 지켜볼 일입니다. 

주역강의 - 읽어보아도 좋고 어렵지 않은 책을 읽자

주역강의

서대원 저
을유문화사 | 2008년 01월

 

주말이면 행선지를 정하지 않고 KTX막차를 타고 어디든 가서 가져간 책을 행복하게 읽고 온다는 화장품 제조 사업을 하는 어떤 분이 추천해주길래 구입해 두었다가 읽고 있습니다. 총 600페이지 가량 되는데, 이제 200여페이지 읽었네요.

주역이라고 하면 그냥 점술가들이나 보는 책이 아닌가 생각해서 별 관심을 가지지 않았습니다. 저자도 말하지만 주역은 그것 이상의 지혜가 담긴 추천할만한 내용을 담고 있더군요. 

저자는 '좋아서' 주역에 대해 오래 연구해온 사람입니다. 학문적인 접근이었다면 이 책을 읽기 쉽게 만들지 않았겠지요. 저자가 비록 이 분야의 박사도 아니고 교수도 아니지만, 수십년 간 고민한 결과라면 그에 못지 않은 성과를 내는 것은 자명한 이치로 생각할 수 있는데, 역시나 읽는 동안 해석의 깊이가 느껴집니다. 

물론, 다소 지루한 서문이나 같은 이야기의 반복 등이 조금 거슬리긴 하였지만, '주역' 자체의 함축된 단어들이 갖고 있는 통찰력과 핵심을 찌르는 문구, 시대를 아우를 수 있는 현실적인 처세에 대한 내용은 감탄을 자아내게 하였습니다. 과거 공자가 책의 끈이 닳아 세번을 다시 매어 읽었다는 이유를 조금이나마 추측해볼 수 있었습니다. 

사실 함축된 내용만큼 해석도 자기 멋대로일 가능성도 배제할 수 없는데, 없는 지식으로 반복해서 나오는 한자들을 볼 때, 저자가 근거없이 해설한 책은 아니라는 점은 확신할 수 있었습니다. 저자가 '주역'의 난해함을 더 난해하게 만드는 기존의 책들이 많다고 말하는 것을 보면, 얄팍한 지식으로 자기가 무슨 말을 하는지도 모르는 책도 많을거 같습니다. 

주역강의를 읽다보니까, 학교에서 가르쳐주지 않는 실제 삶에서의 무언가를 가르쳐주는 책이 이 책이 아닌가 하는 생각이 얼핏 스쳐갔습니다. 그만큼 고전이면서도 실용적인 내용을 담고 있다는 뜻이겠지요. 

어찌되었든 국민소득 2만달러에서부터 갈길을 찾지 못하고 방황하고 있는 우리 사회에 필요한 것은 기본부터 다시 갖추어 나가는 것인 것 같습니다. 지금처럼 모든 분야에 걸쳐서 탐욕이 기본적인 상식과 최소한의 양심조차 압도하고 있는 이유는 인문학적인 바탕없이 응용학문만 열심히 한 결과가 아닌가 싶습니다. 이러한 고전이 읽어버린 길을 찾는데 도움이 될 거라는 생각이 드네요.


맥용 TextMate에서 한글 깨짐 문제 -> 포기 Programming Reloaded!

맥에서 코딩용을 TextWrangler에 정이 안가서 유명한 TextMate를 써보고자 했더니, 한글이 겹쳐서 출력되는 문제가 해결이 안된 거 같습니다. 

구글링을 해보니까, 한글겹침을 해결하는 훌륭한 포스팅이 있어서, fontforge의 설치는 이 글을 참고로하여 따라해보았습니다. 

먼저, 맥에 X11이 설치되어 있어야 하고(유틸리티 밑에 X11 확인, 없으면 Mac OSX DVD에서 추가 설치), 

FontForge를 설치해야하는데, 우분투 설치 시 이용했던 apt-get과 비슷한 방식으로 할 수 있는데 Lion이 아니라면 터미널에서 "brew install fontforge"로 설치할 수 있다고 합니다. -> 저는 이 방식으로 했고 sudo어쩌구도 있다는...(http://openfontlibrary.org/wiki/index.php?title=How_to_install_FontForge&diff=20399&oldid=prev)

문제는 brew가 없다는 것인데, 그것은 이 글을 보고 설치가 되더군요. 설치는 Xcode도 필요한 듯하며, 컴파일/빌드하는 등 시간이 많이 소요됩니다. 

나눔폰트는 네이버에서 개별글꼴로 다운로드하여 /usr/local/bin에 복사했습니다. Monaco.dfont는 /system/library/fonts에 있더군요. 필요한 파일들을 편의상 /usr/local/bin에 모아놓고 실행을 했습니다. 

TextMate.ttf가 만들어졌고, 다시 아까 그 글을 참조하여 맥용 d폰트로 변환하였습니다.(X11에서 fontforge를 실행하여, TextMate.ttf를 연 후, Generate font를 하는 것입니다.) 

그러나 알 수 없는 오류가 발생하여, 저장은 되지만 맥 서체관리자에서 등록하지 말라고 하였음. 일단 포기...  

=> 그냥 TextWrangler에 만족하기로(?) 했습니다. 텍스트랭글러에서 불만이었던 파일마다 창이 뜨는 것을 막는 방법은 파일을 열 때, 파일까지 선택하지 않고 폴더를 선택한 상태에서 Open을 하면 좌측에 파일 목록이 나오게 되어 안락하게 사용이 가능하였습니다^^

1 2 3 4 5 6 7 8 9 10 다음