전에 운영자모임에서 한 번 얘기했던 문제인데... 최근 여러가지 계기가 있어서 한 번 공론화를 시도해 볼까 합니다.
일본 오기전 운영자 모임에서 제가 그동안 개발해 오던 프라퍼티에디터나 이전 회사에서 개발과정에서 만들었던 VC++를 위한 VCL 미니멀셋 등을 공개로 진행하고 싶다는 의사를 밝힌적이 있습니다.
프라퍼티에디터는 기존에 만들어진 상용/비상용 컴포넌트들이 다수 존재합니다만... 정작 사용하려고 하면 몇가지 부족한 면들이 눈에 띄더군요. 여러가지 생각들이 있습니다만 그건 나중에 공개 프로젝트를 시작하면 천천히 밝혀 나가기로 하고...
제가 이전 회사에서 만들었던 VC++용 VCL미니멀셋은... 정식 명칭은 PXL이었습니다. 뭐 공식적으로는 Portable Crossplatform Library 였습니다만 비공식적으로는 Peperu's Crossplatform Library였죠.
구현범위는 VCL의 System, SysUtil 이정도였고... AnsiString의 Clone버전, TDateTime의 Clone버전이 그 주축이고 TList, TStringList, THashedStringList 정도 구현했습니다. 그리고 VCL에 없는 추가 클래스라이브러리... 한가지 독특?한것은 PXL은 BCB와 VC에서 동시에 사용가능한 그런 공용라이브러리가 아닌... BCB에서 컴파일할 경우 상당부분이 아예 컴파일 대상에서 빠져버리는.. 즉, VCL을 AnsiString이나 TDateTime을 그대로 쓰게 되고 VC에서 컴파일할땐 당연히 전체 기능이 다 컴파일되게 만든 부분입니다. BCB를 쓰면 PXL때문에 손해볼 것은 거의 없다는 얘기죠.
사실 PXL의 목표는 플랫폼 호환이 아닙니다. 표준 C++만 써서 프로그램을 개발할 때(STL없이) 가장 아쉬운 부분... 저는 스트링 객체더군요. 환장하는줄 알았습니다. 이런 부분을 커버하고싶다는 생각에서 출발한거였고 PXL이 어느정도 윤곽을 잡았을때 저는 아주 편해졌습니다. 회사에선 개발툴을 VC++를 쓰고 있었지만 저는 VCL의 훌륭한 자원들을 별 제약없이 다 쓸 수 있었거든요. 개발 자체도 그냥 빌더에서 개발했죠. (원래는 MFC의 CString등을 VCL에서 컴파일 할 수 있게 하려 했지만... CString은 정말 별 기능이 없더군요. -_-;;; 그거 쓴다고 받는 스트레스가 더 클 것 같아서...)
의외로 BCB를 즐겨쓰면서 VC++로 개발할 것을 강요받는 개발자들이나 Embeded 시스템을 개발하시는 분들이 가끔 공개 요청을 하시네요. 아주 가끔이긴 합니다만...
볼랜드포럼의 활성화에도 도움이 될 듯 하고 프라퍼티 에디터의 경우에는 컴포넌트 제작을 두려워하시는 분들께는 좋은 튜토리얼이 될 수 있을거라 봅니다.
또 한가지 계기는 저희 회사에서 이번에 버전컨트롤 시스템을 검토를 했는데... 최종적으로 SubVersion(SVN)으로 굳혀지고 있습니다. 저도 그덕에 이것저것 공개 소프트웨어들만 검토를 해 봤는데 확실히 SVN 괜찮더군요. 일단 설치도 간편하고(파일 쉐어링으로 할 경우엔 별도 서버 필요 없습니다) 서버 설치시 원격으로도 사용 가능하구요. Proxy도 지원하고 무엇보다도 쓰기가 너무 편하네요. 기존 CSV로 진행되던 많은 공개 프로젝트들이 SVN으로 전환되고 있기도 하구요.
이갑연님이 소개해주신 JEDI도 써 보긴 했는데 프로젝트 단위로 관리되는 것이 장점이기도 합니다만 단점이 되기도 한다는 느낌입니다. 제 개인적인 견해로는 상당히 번잡스럽다는 느낌이었습니다.
여튼 이런 일들을 겪으면서 든 생각이... 포럼의 FTP서버에 SVN서버를 설치해서 PXL의 공개버전을 만들면 어떨까... 입니다. PXL은 지난번에 다니던 회사에서 공개 허락을 받지 못했기 때문에(요청은 했지만 답은 없었습니다) 그때 구현한 구조를 바탕으로 새로 구현할 것을 생각하고 있습니다.
기존 PXL은 제가 꼭 필요한 부분만 대충 만든거라서 각종 소스파일 구조는 VCL과 상당부분이 다릅니다만... 새로 만드는것은 VCL의 소스파일구조와 유사한 구조로 해서 보다 사용이 쉽게 하고싶네요.
어차피 PXL의 많은 부분은 VCL의 코드를 C++로 바꾼 것이고... 새로 만든다면 저작권 문제도 별 신경쓸 필요 없을 듯 합니다. 오히려 볼랜드의 VCL소스 코드를 바꾼 부분이 문제가 되면 됐지...
여튼... 프로젝트 게시판 하나 신설하고 SVN 서버 설치하고 해서 프로젝트 천천히 진행해 나가면 좋겠다는 생각입니다. 꼭 제 프로젝트 아니더라도 다른 많은 분들도 뭔가 공유하고 싶은 것들이 있을것 같고... 여러분 생각은 어떠세요?
|
http://dasomnetwork.com/~leedw/mywiki/moin.cgi/TortoiseSVN#head-f756e0b94b9623c79e3139826e5d5ed6181746fe