한빛출판네트워크

IT/모바일

자유소프트웨어와 오픈소스 윈도우 개발도구들의 사례

한빛미디어

|

2007-03-05

by HANBIT

제공 : 한빛 네트워크
저자 : James Avery, Jim Holmes
역자 : 조성재
원문 : The Case for Freeware and Open Source Windows Tools

저희가 출판한 책인 Windows Developer Power Tools에는 개발자들이 개발도구를 Microsoft Visual Studio(와 고용주가 개발자들을 위해 제공하는 도구들)로 제한한 경우를 담고 있습니다. 그런 엉뚱한 이유로 개발자는 편리하고, 자유롭게 사용할 수 있는 도구들을 쓰지 않습니다.

몇몇 소프트웨어 개발자들에게는 모든 곳에 존재하는 그런 자유소프트웨어와 오픈소스 소프트웨어(FOSS)를 이해할 수 없습니다. 그들은 “도대체 목적이 뭐에요?” 라고 묻습니다. “왜 돈도 못 받는 것을 제작하는데 시간을 소요하려고 하죠?” 납득할 만한 질문이며, 몇몇 사람들은 자유/오픈소스소프트웨어 제안자들이 던져주는 답변에도 만족하지 못할 것입니다. 상업적인 소프트웨어는 이미 그 자리를 확보하고 있지만, FOSS 도구들의 세계는 무섭게도 그것을 쓰지 않을 수 없게 하고 있습니다.

그런 이유 중 첫 번째로, FOSS는 여러분이 더 찾지 않으려고 할 정도의 도구들, 프레임워크들, 유틸리티들, 위젯들을 제공합니다. 여러분들은 바로 실행시킬 수 있는 완벽한 프레임워크인 엔터프라이즈 라이브러리와 모노에서부터 아주 자잘한 작업들만 하지만 아주 잘 돌아가도록 하는 작은 도구들인 Unlocker나 Cropper까지 모두 찾을 수 있습니다.

두 번째로 여러분이 찾으려고 하는 상업적인 도구들만큼이나 강력한 NHibernate, Nunit 그리고 DotNetNuke 와 같은 커다란 프로젝트에 대해 메일링 리스트들, 온라인 포럼들, 블로그들이 널려있습니다. 나머지 일은 여러분이 애쓰고 있는 문제에 대해 다른 누군가 해결해 놓은 것을 검색엔진에 시간을 좀 들여서 여러분이 찾던 답을 얻거나, 적어도 그와 관련된 사이트나 전문가들을 찾는 것입니다. 오픈소스 프로젝트의 이점은 개발자들이 문제점을 직면했을 때, 대부분의 상업적인 솔루션처럼 포럼에서 회피책(Workaround)을 올리는 것이 아닌, 실제로 이 문제를 해결할 패치를 자주 올릴 수 있다는 것입니다.

세 번째로, 덧없게도 여러분이 보통 상업적인 소프트웨어에서는 찾을 수 없었던, FOSS 도구들에 대한 열정이 있습니다. 이 열정으로 프로젝트 팀은 그들의 결과물을 개선하고, 사용자의 피드백을 반영하며, 그들의 도구들을 더 나은 것으로 만들 아이디어를 제안합니다. 저는 SubText blogging 엔진의 수석 개발자인 Phil Haack이나 TestDriven.NET의 개발자인 Jamie Cansdale보다 의욕적인 사람들을 만나 본 적이 없습니다. 이 개발자들은 그들의 시간과 노력을 이 도구들에 쏟습니다. 왜냐하면 그들은 소프트웨어 작성을 좋아하고, 그들이 그들의 도구로 만들어 낼 수 있는 무언가를 믿기 때문입니다.

네 번째로 여러분들은 여러분들의 팀에 대한 충분한 라이센스를 갖고 있는지 더 이상 걱정하지 않을 것이라는 점입니다. 우리들 중 2명이 프로젝트에 훌륭한 상업적인 도구들을 찾았을 때 대부분 그것을 사용하지 못하는 경우가 부지기수였습니다. 왜냐하면 전체 팀에 대한 다중 라이센스를 구입해야 했기 때문이었죠. 지금 우리는 눈에 띄게 대부분 FOSS 도구들을 사용합니다. 우리가 선택한 어떠한 도구들이라도 우리 팀 모두에게 제공할 수 있다고 확신할 수 있습니다.

마지막으로 오픈소스 도구들은 소스코드를 탐구하는 데 아주 좋습니다. 왜냐하면 그것들은 공개되어 있기 때문에, Charlie Poole, Ward Cunningham, 혹은 Ron Jeffries와 같은 업계의 리더들이 그들의 마법을 어떻게 썼는지 볼 수 있습니다. 그것은 여러분들의 지식과 여러분들이 가진 소스를 개선하는데 도움이 될 수 있는 아주 놀랄만한 자원입니다.

아직까지도 제가 Visual Studio를 이미 사용하면서, 왜 다른 것들이 필요한지 많은 개발자분들이 궁금해 할 것입니다. 아주 좋은 질문입니다. 어떤 새로운 도구로, 가령 그것이 오픈소스 도구이거나 Visual Studio 이거나 관계없이, 결과물을 얻는데 시간과 노력을 들인 이후라면 특별히 더 좋습니다. 그런 시간과 노력이 관리자들과 팀 리더들과 개발자들을 고민시키는 비용/이득 타협입니다. 그리고 특별히 Visual Studio Team System 2005 (VSTS)는 그 문제에 대해 다양한 요소들의 집합을 가지고 있습니다.

한 가지 답은 VSTS는 개발자들이 그들의 프로그램을 제작하고 테스트하는 것처럼 개발자들이 원하는 모든 것을 하지는 않는다는 것입니다. 게다가 몇몇 개발자들은 VSTS를 통해서는 불가능한 방법으로 몇몇 특정한 작업을 수행할 수 있는 유연성을 얻길 원합니다.

많은 FOSS 도구들이 VSTS의 구성요소로 모자른 부분을 채워주기 위해 제작되어 왔습니다. 여러분은 VSTS 에서 여러분의 소스에 관한 의존성 정보를 얻을 수 없지만, 여러분의 시스템 관계에 대한 자세한 리포트를 생성하는 NDepend를 사용할 수 있습니다. 여러분은 많은 양의 데이터를 복잡한 방법으로 통과시켜야 할 필요가 있을 때, VSTS로는 pair-wise 테스팅을 사용할 수 없습니다. 그러나 자동적으로 데이터를 생성하고, 여러분이 공급하기 원하는 만큼의 양을 극적으로 자르기 위해 MbUnit 을 사용할 수 있습니다. VSTS는 특정 파일을 잠근 프로세스가 무엇인지 여러분에게 알려주도록 할 수 없습니다. 그러나 Process Explorer 나 Unlocker는 무엇이 파일을 쓰지 못하도록 막고 있는지 찾을 수 있습니다.

그리하여 모든 사람이 VSTS만을 쓰지는 않습니다. 비록 그것이 환상적인 개발 환경이지만, 무척 비싼데다, 자원도 많이 먹고, 작은 개발을 위해 사용하기엔 너무 비대하기 때문입니다. 그리고 심지어 VSTS 사용자들도 부득이하게 맞닥뜨릴 문제들에 대한 답변을 해줄 수 있는 채널이 지원되길 원합니다. 오픈 소스와 자유소프트웨어 도구들은 취미로 개발을 하는 개발자와 업무에 여유가 없는 작은 개발 회사. 특별히 색다른 것을 원하는 개발자들에게 믿을 수 없는 성능을 제공합니다. 게다가 잘 알려진 더 큰 개발팀들도 그들의 소프트웨어 개발 주기에 중요한 가치를 줄 수 있는 FOSS 도구들을 찾기도 합니다.

그러므로 우리는 여러분이 유용한 무언가를 찾기를 권장합니다. 저희의 책이나 Windows Developer Power Tools 웹사이트로 시작하십시오. 다른 유용한 곳으로 Scott Hanselman의 Ultimate Tools ListMike Gunderloy의 사이트가 있습니다. 비록 소스포지CodePlex, Microsoft의 개발 커뮤니티 사이트에서 풍부한 활동을 하고 있는 Mike의 눈에 띄지 않는 새로운 도구들은 거의 없지만, 두 군데를 모두 방문하는 것이 좋습니다.

여러분이 시작하는데 도움이 되도록, 저희가 자주 사용하는 유명한 다섯 도구들을 어디에서 찾을 수 있는지와 함께 (무작위로) 소개합니다.
  • MbUnit은 고급 유닛 테스팅 프레임워크입니다. 이 프로그램은 자동 데이터베이스 롤백, pair-wise 테스팅, row-based 테스팅과 같은 Nunit과 Visual Studio Team System 테스트 프레임워크를 뛰어넘는 기능들을 제공합니다.
  • Subversion은 우리의 책을 쓰는데 사용한 소스제어 시스템입니다. Subversion 은 많은 상용 소프트웨어보다 월등히 뛰어난 이음새 없는 소스 제어를 제공하며 (Subversion이 무료가 된 이후부터) SourceSafe 만을 사용해야 하는 타당한 이유를 부정합니다.
  • Nhibernate는 Object-Relation Mapper 입니다. 이것은 여러분의 작업 객체를 획득하고 여러분의 데이터베이스에 그것을 연결합니다. 수년 동안 우리가 써왔던 잉여 데이터 접근 코드를 제거함으로써 결점과 개발시간을 줄여줍니다.
  • TestDriven.NET은 Visual Studio의 추가모듈입니다. 이것은 여러분들에게 IDE 내에서 어떠한 유닛 테스팅 프레임워크에 관해서라도 테스트를 실행할 수 있는 기능을 제공합니다. 여러분은 또한 여러분의 테스트를 빠르게 디버깅할 수 있으며, 적용된 결과를 얻는 것, 그 이상의 것들을 할 수 있습니다.
  • SlickRun은 여러분이 Microsoft에서 윈도우즈에 같이 설치하기 원했던 명령어 프롬프트입니다. 여러분은 명령어와 응용프로그램들을 실행하는 매크로를 생성할 수 있습니다. 예를 들어, 여러분은 야후 홈페이지로 연결된 인터넷 익스플로러와 아웃룩, 비주얼 스튜디오를 실행하는 "morning"이라는 매크로를 생성할 수 있을 것입니다.

저자 James Avery는 지난 7년 동안 Microsoft 기술들로 프로그래밍을 했으며 .NET 두번째 베타 릴리즈 버전 이후부터 .NET으로 개발해왔습니다.
저자 Jim Holmes는 네트워크 관리, 시스템 분석, Perl, Java, C++ 그리고 .NET 으로의 소프트웨어 개발 등을 포함하여 25년 가까이 IT 산업 분야의 경력을 가지고 있습니다.

역자 조성재님은 현재 오픈소스 데스크탑 환경인 Kool Desktop Environment (KDE) 프로젝트의 한국어 번역 코디네이터와 한국팀의 대표로 활동하고 있습니다.
TAG :
댓글 입력