달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
2008. 3. 8. 10:58

Visual Basic 2008을 접하고... 좋아하는 것2008. 3. 8. 10:58

내가 비쥬얼 베이직을 처음으로 접하게 된것은 1995년경 이었던것 같다. 그때 버전은 VB 4.0 이었는데, 한참 프로그래밍의 재미에 빠져서, NC(Noton Commander)와 NCD같은 프로그램을 만들려고, 자료구조와 비디오 제어 라이브러리를 열심히 공부하고 있는 중에, 같이 프로젝트 하고 있던 일민 (오늘날 우리는 이 사람을 Toby 라고 부르고 있다) 이가 어느날 놀라운 것을 보여 주었다.
 창을 하나 열더니, 아이콘 3개를 화면에 끌어다 놓고, 코드 3줄 정도를 추가 하니, NCD와 비슷한 형태의 프로그램이 뚝딱하고 만들어 지는 것이었다. 충격적이었다.

그날 나는 C/C++로 진행하던 나만의 프로젝트를 그만 두었다. 그리고 새학기에 다른과에서 VB 수업을 듣고 공부하기 시작했다. 그때는 VB 5.0이 었는데, 속도에 많은 개선이 일어났다.
C++ 컴파일로로 실행 코드도 작성해주고, 그러나 스트링 함수들의 속도는 여전히 느렸지만, 직접 윈도우 API들을 정의하고 사용할 수 있어서 적절히 배합을 하면 큰 불편은 없었던 때였다. 한 가지 더 기억나는 것은 MS에서는 인터넷 관련 OCX와 기능들을 추가 하기 시작했는데, 당시에 처음으로 ActiveX Dll을 VB에서 생성할 수 있도록 해 주었다. 실제로는 COM 오브젝트 Dll이었다. 그리고 나서 1998년에는 VB 6.0이 출시가 되었는데, 내가 알기로는 아직까지도 많은 프로젝트에서 현재 사용되고 있다. VB 6.0은 안정성이 강화되었고, Apatment Thread를 지원하게 되었다. 실제로 VB에서는 그 전까지 Thread를 직접 만들수 없을 뿐더러, 필요하면 C로 정의한 API를 이용해서 제어하는 방법이 정석적이었다. (사실 통신 프로그램 또는 실시간 제어를 요하는 프로젝트가 아니면 별 필요를 못 느꼈었다.)

VB 6.0은 정말 장수한 개발 툴이다. 근 10년 이상 사랑 받고 있다. 어떤 개발자는 .Not으로 옮겨 가기도 했고, Java로 옮겨서 새로운 환경에서 개발 하기도 하지만, 여전히 기존에 개발된 시스템을 유지 보수하고 있기도 하고, 추가 개발을 진행하기도 한다.

VB에서 .Net로 옮겨 갈때, 정말 방대한 클래스 라이브러리와 쉽게 Thread를 사용할 수 있다는 장점이 사용할 만한 큰 이유였었고, 그 때까지의 VB를 사용했던 개발자에게 꼭 필요한 것들을 갖추어 졌다고 생각했다. 그러나 MS에서 정말 간과했던 것은 모든 개발자들이 OOP를 원한 것은 아니라는 것이었다. VB를 원하는 사람들에게는 생산성과 효율성이 었다.
 .Net Framework의 클래스들을 새로 배워야 하고, 이전에 작성한 코드들은 새로운 프로그래밍 문법에 맞추어서 변화해야 하는데, 문법 역시 새로 시작할 그리고 배워야할 할 도전의 대상이 되었다. 이는 결국 많은 VB 프로그래머들을 떠나 보내는 계기가 되었다. 자바 진영은 호재였었지요.

나는 Visual Studio의 새 버전이 출시되면, 새로 설치해서 사용해 보곤 한다. VS 2005는 속도 상으로 2003버전보다는 나았다. 아마도 XP SP2에 기본 컴포넌트들이 설치되어 있어서 이고, CLR들이 최적화 되어 있어서 이다.
VS2005에서 가장 큰 변화는 Visual Basic의 변신이다. 마치 예전 VB 6로의 회귀를 보는 듯 했다. VB6에서 사용하던 함수들을 클래스 선언없이 바로 불러 사용할 수 있었다. (Satistic로 이미 정의되어 있어서) 이제 MS가 다시 VB에 대해 관심을 가지고 있다는 생각이 들었다. 정말 많을 함수들을 잊어 버렸지만, 생각나는 함수들은 모두 쉽게 사용히 가능했었다. (LBound, UBount, CStr(), Len() 등 의 함수들 Redim도 되던데...)

거의 90%정도는 기존에 알고 있던 함수들을 재 사용할 수 있을 거라는 생각이 든다.

VB를 사랑하는 나에게는 정말 다시 사용해 볼만한 언어라는 생각이 들었다.
그리고 몇주 전에 간단한 진단 툴을 개발할 일이 있어서, 회사에서 VS 2008을 설치하고, C# 대신 VB를 사용하기로 했다. 일주일만에 개발해야 하는 건데, 실제 들어간 시간은 2~3일 정도 밖에 되지 않았다. (회사 분위기상 개발에 집중하기 어렵다.) StatusStrip, DataGridView, Treeview등 MSDN 찾는 시간이 꽤 걸렸다. 이전에 내가 알고 있는 것과는 매우 상이하고 복잡한 클래스들의 집합체였다. 익숙하지 않아서 이겠지만, VS 2005에는 예제들을 쉽게 찾을 수 있었는데 VB 2008버전에서는 쉽게 찾기 어려웠다. (아마도 내가 설치한 버전이 RTM 버전이어서 일수도 있구....)
Eclipse에서 사용하던 코딩에 도움이 되는 수많은 단축키와 기능들을 예상했던 나는 쉽게 그러한 기능들을 찾아 보기도 어려웠다. 어딘가에 정의되었을 기능들인데 쉽게 찾자 못하고 있다고 생각중이다. 그 중 하나는 Object Browser 말고 현재 내가 작성하고 있는 클래스의 정의된 함수와 Property를 보고 싶은데, 클래스 다이어그램을 만드는 방법만 제공하고 있는지 궁굼하다.

간단한 프로제트를 진행하면서, 다시 한번 Visual Basic 2008을 학습하고 푼 마음이 일어났다. 왜냐면 이는 내가 가장 좋아하는 언어였으니까...
그래서, 간간히 학습한 내용을 글로 올릴 계획이다. 내가 어디에 있던지 정리한 내용을 바로 찾을 수 있도록...

벌써 3월인데, 올해는 배워야 할 것도 공부할 것도 많다.
나를 VB의 세계로 이끈 일민(Toby)는 이달 중순에 호주로 간다고 한다. 이제 갓 100일 지난 그의 아들과 아내와 함께...
잘 살고 연락 자주하길 바란다.
 
:
Posted by 행복상자

[도서 추천] Ruby on Rails(초고속 웹 개발의 시작)

레일즈를 접하는 사람들 대부분이 웹개발에 종사하는 사람들일 것이다.
그리고 Ruby를 공부하기 시작하는 사람들도 RoR(Ruby on Rails)에 관심을 갖게된다.
이는, 레일즈는 웹을 위한 프레임워크이며, 루비를 위한 프레임 워크이기 때문이다.

현재, 한국에서 판매되는 Ruby on Rails관련 책들은 원서 및 번역서등 그 수는 점점 많아지고 있지만, 레일즈를 처음 시작하는 사람들에게는 Bruce A. Tate와 Curt Hibbs의 책 Ruby on Rails: Up and Running이 가장 적합한 안내서 일 것 같다. 국내에서는 한빛 출판사에서 번역되어 판매되고 있다.



책은 Ruby on Rails를 잘 모르는 Beginnner가 읽어도 쉽게 프레임워크를 이해할 수 있도록 간단한 예제와 설명위주로 진행된다. 아마도 처음 시작하는 사람이 Ruby를 모르더라도, Ruby의 내장 웹서버로 돌아가는 데모는 반 나절 만에 작성할 수 있을 것이다.
예제를 쫒아 가다 보면, 레일즈 프레임워크와 Active Record에 대해서 익숙해질 것이다.
그리고 스케폴딩과 뷰의 개념에 익숙해지면, Rails의 시작단계를 벋어나서 자신만의 Application을 작성할 수 있는 단계에 서 있는 자신의 모습을 보게 될것이다.
Ruby on Rails 프레임워크는 내부에 Test를 지원하기 위한 자동화된 테스트(루비의 Test::Unit)를 포함하고 있다. 책의 마지막장에는 신뢰성있고 질 좋은 프로그램을 만들수 있도록 테스트 자동화에 대해서 설명하고 있다.








:
Posted by 행복상자
2007. 11. 26. 23:27

좋은 코드에 대한 나의 생각 공부하는 것2007. 11. 26. 23:27

좋은 코드에 대한 나의 생각

내가 개발자의 길로 들어선 이후로, 내가 봐도 제법 괜찮다고 하는 코드를 짠것은 쾌 오래전의 일인듯하다.  내가 공들여서 개발할 코드라도, 약 2개월만 다른 프로젝트를 하다보면, 내 것인지 아니면 동료의 것인지 한 눈에 알아보기 힘들다.
평소에는 본인의 코드를 보고 자화자찬하는 사람은 드물것이다.
정말 오래전의 일인데, 나는 내가 짠 코드를 보고, 감탄했던 적이 있었다. 어느날 내가 우연찮게 봤던 코드였는데, 군더거기 하나 없는 코드였고, 구조도 복잡하지 않았다. 이렇게 코드의 구조를 가져갈 수 있다니 하고 감탄했었다. 지금 생각하면 참 남사스럽고 부끄럽다.

일반적으로 사람들은 자신에게는 무척 관대하지만, 이것이 내것인지 남의 것인지 구분이 안되는 상황에서는 객관적인다. 그런데 나는 내 코드인지도 모르고 누군지 모르지만 참 잘짰다고 속으로 생각한 것이었다. 그리고는 소스 코드가 내가 몇달전에 작성한 것을 알고는 참 멋적기도 했지만 기분이 좋았다. 나르시즘에 빠진것인지도 모른다. 요즘말로는 환자다.
하지만, 좋은 코드는 사람을 행복하게도 해준다.

내가 현재의 직장에 입사한 후로 여러가지 다양한 프로젝트을 했지만, 결코 많은 시간을 투자하지는 못하고 좋은 코드도 많이 만들어 내지 못했다. 그러나 좋은 코드를 만들고자 하는 욕심은 누구보다 많다. 내가 생각하는 좋은 코드는 사실 다른 개발자들이 생각하는 것의 범주를 뛰어 넘지는 못한다. 왜냐하면, 나의 능력 밖의 코드는 만들어 내지 못한다. 다른 개발자를 설득하기에는 아직 힘이 부족하다. 사실 문인들을 글로 말하지만, 개발자는 코드로 말한다.
하지만,

1. 좋은 코드는 읽기에 불편함이 없어야하고
2. 내용을 전달함에 난해해야 하지 않으며,
3. 그 구조가 간결해야 한다.
4. 그리고 변경에 민첩하게 반응 할 수 있어야 한다.

좋은 코드를 생성하는 방법은 여러가지가 있지만, 나는 리펙토링을 좋아하는 편이다. 같은 목적을 가진 코드에 변화를 주면서 조금씩 조금씩 코드가 좋아지는 것을 보면 기분이 새롭다. 이것은 나를 만족시키는 방법이고 나를 위한 것이지만, 내 혼을 한땀 한땀 새겨 넣는 이 행위는 장인의 마음과 다르지 않다.

'공부하는 것' 카테고리의 다른 글

ASP.NET, ASP.NET MVC, ASP.NET Dynamic Data  (0) 2008.10.03
Silverlight 2 Release Candidate Now Available  (0) 2008.09.28
Kent Beck의 Test-Driven Development by Example  (0) 2008.07.06
ASP.NET MVC의 Roadmap  (0) 2008.04.21
Hello, OSGi  (0) 2008.04.13
:
Posted by 행복상자
Secret and Hidden Places at Google Earth
  (: 구글 어스 위의 숨겨진 비밀 장소들 )

Google Earth를 한번이라도 사용해 보았다면, 무척 흥미로운 프로그램이라고 생각했을 것이다. Google Earth로 부터 바라본 지구의 모습이 마치 우주에서 내려다 보는 전지적 관점과도 같아 이곳 저곳을 호기심 어린 눈빛으로 바라보고 그 아래 조밀하게 연결되어 있는 길과 빌딩과 그리고 자연의 모습을 즐기면서 지구에 대한 흥미와 호기심을 불러 일으킨다
.


 

이 동영상은 지난 3월에 유튜브에 올라온 것으로 미스터리 서클, 나치 빌딩, 벌거벗은 독일인 여성을 포함한 총 22개의 비밀 장소들을 담고 있으며, 인터넷상에 가장 많이 돌아다니는 구글 어스 영상중 하나이다.
특히 배경음악이 재미를 더해 주는 요소이다. 잠깐의 휴식을 필요할때 보면 좋다.


좌표는 다음과 같다.
01. Google Pool: 37
°25'20.41"N 122° 5'6.00"W
02. Airplane: 50
°12'47.26"N 8°
52'7.31"E
03. Tent: 28
°29'43.15"N 81°
34'50.07"W
04. Indian 1: 6
°42'51.37"N 42°
11'42.82"E
05. Black Line & Fire on ice: 69
° 3'7.72"N 41°
8'29.66"W
06. BAR: 39
°49'21.77"N 3°
28'44.50"W
07. Star: 37
°24'1.66"N 116°
51'58.85"W
08. Pyramid: 37
°37'38.49"N 116°
50'26.44"W
09. Eddie Fuck: 53
°32'18.35"N 1°
20'44.17"W
10. Nude Dutch People: 52
° 4'43.34"N 4°
19'58.12"E
11. Nude German Woman: 52
°30'31.46"N 13°
20'6.90"E
12. English Crop Circle: 53
°31'54.33"N 1°
21'24.93"W
13. Firefox-Logo: 45
° 7'25.87"N 123°
6'48.97"W
14. Nazi-Building: 32
°40'33.83"N 117°
9'28.36"W
15. Reversed Ship: 35
° 9'18.21"N 129°
8'51.37"E
16. Bomber: 52
°20'10.98"N 0°
11'43.17"W
17. Indian 2 (with i-pod): 50
° 0'38.19"N 110°
6'48.31"W
18. Donut Store: 25
°57'0.25"N 97°
8'50.29"W
19. Giant of Tarapaca: 19
°56'56.86"S 69°
38'1.81"W
20. Italian Crop Circle: 44
°40'52.79"N 10°
19'6.39"E
21. Radar Station: 18
°20'39.01"N 66°
45'8.79"W
22. Sailing/Pirate Ship: 33
°51'13.07"S 151°13'59.47"E

 

:
Posted by 행복상자