새로 회사에 입사해서 서드파티 컴포넌트를 무분별하게 사용한 전임자의 소스를 들여다보게 되면 보통 기겁을 하게 되죠. 어디 손을 댈 방법이 없는 소스가 많습니다. 도대체 출처가 어딘지, 대체 컴포넌트가 뭔지도 알 수 없는 서드파티 컴포넌트로 도배질한 소스를 보게 되면, 웬만큼 대규모 프로젝트 소스라고 해도 차라리 새로 개발하는 게 나을 수도 있습니다.
이런 경험을 한 분들이 주로 서드파티 컴포넌트에 대해 강한 거부감을 가지는 경우가 많은 것 같습니다. 하지만 이런 경우 서드파티의 원죄가 아니라, 전임자의 원죄입니다. 프로젝트에 사용한 컴포넌트 자체의 소스를 프로젝트 소스와 마찬가지로 유지/관리하고 그 출처 등도 대략적으로 코멘트라도 해놓으면 그런 문제는 생기지 않습니다. (사용한 컴포넌트가 초허접이어서 도저히 쓸 넘이 못되는 경우를 제외하면 말이죠)
컴포넌트 구조는 C++빌더/델파이의 최대의 강점들 중 하나인 만큼 서드파티라고 해서 무조건 피하고 보자는 것은 그런 뛰어난 기능을 반 이상 빼먹고 쓰겠다는 것인만큼 아까운 일이죠.
서드파티 컴포넌트를 무조건 피하기보다는, 해당 컴포넌트들에 대해 개발자가 통제권을 가지는 게 중요하다고 생각합니다. 그렇다고 통제를 한다고 해서 소스를 다 이해해야 한다는 뜻은 아닙니다. 적어도 새 버전의 개발툴에서 다시 컴파일해서 설치할 수는 있어야 하고요. 컴포넌트 라이브러리를 설치하고 사용할 별도의 디렉토리들을 만들어두고 원칙을 유지하는 것이 좋습니다. 또 기왕이면 각 버전별 오브젝트 라이브러리를 별도로 관리할 수 있으면 더 좋습니다.
저희같은 경우 지금 프로젝트에서 여섯가지 서드파티 컴포넌트 패키지를 사용하는데, 미들웨어, 레포트, UI, 암호화, 그리드, 그리고 제 개인 컴포넌트 라이브러리입니다. 물론 제 개인 라이브러리는 제가 직접 만든 거니까 완전히 다 알고 있는 소스입니다만, 그 외의 서드파티 컴포넌트들 중에서는 제가 대충이라도 파악하고 있는 것은 두가지 뿐입니다.
하지만 제가 소스를 전혀 들여다보지 않은 다른 라이브러리들도 개발툴의 버전별 빌드 배치 스크립트를 별도로 만들어서 언제든 새 개발툴에 대응할 수 있습니다. 또 흔히 사용되는 인디의 경우에도 개발툴에 디폴트로 설치된 버전을 삭제하고 제가 일부 소스를 수정한 버전을 별도의 디렉토리에 설치해서 사용하고 있습니다. (사실 다른 컴포넌트들도 조금씩은 수정해서 쓰고 있죠)
프로젝트에 급하게 필요한 기능 때문에 어디 서드파티 컴포넌트를 갖다 썼다면, 급할 때는 대충 썼더라도 시간이 좀 여유가 있을 때 해당 컴포넌트를 정리하는 작업이 필요합니다. 계속 유지할 디렉토리를 지정해주고, 오브젝트와 최종 bpl 패키지는 어느 위치에 있는지를 봐두고, 기왕이면 자신의 통제된 디렉토리에 같이 저장되도록 해두는 것이 좋습니다.
그리고 사용하면서 발견한, 헬프 등 기본 문서에는 없는 중요한 내용들은 자신만의 문서로 간략히라도 메모를 해두는 것이 좋습니다. 서드파티 컴포넌트의 경우 당연히 기본 VCL에 비해서는 사용자가 적기 때문에 아무래도 버그의 가능성도 조금은 더 높고 문서도 부실할 수 있으니까요.
이렇게 잘 정리해둔 컴포넌트 라이브러리는 자신만의 자산이 됩니다. 마치 자신의 C++빌더, 델파이의 표준 VCL을 확장한 것과 조금도 다르지 않습니다. 표준 컴포넌트만 사용하는 다른 개발자들보다 더 강력한 개발툴을 사용하는 셈입니다.
만약 너무너무 바빠서 정리해둘 시간이 없다면, 좀 심하게 말해서 그 개발자는 스스로 제품 혹은 자산을 생산하고 있는 것이 아니라 쓰레기를 생산하고 있다고 말할 수 있습니다. 시스템이 날아가서 새로 설치해야 하거나 혹은 후임자에게 인계해야 할 경우, 개발툴의 버전이 올라가서 사소한 변경이 생긴 경우에 제대로 환경을 구축할 수 없다면, 그걸 제품이나 자산이라고 할 수 있겠습니까.
이런 사소한 걸 뭐하러 챙기냐 하고 생각하실 분도 있으시겠지만, 초급 개발자와 중/고급 개발자, 그리고 프로페셔널과 아마추어의 차이는 화려한 팁이나 신기술이 아니라 이런 세세한 준비들에서 시작한다고 생각합니다.
루루 님이 쓰신 글 :
: 씨빌더 97 트라이얼버젼 부터 사용해왔는데욤..
:
: 진짜 돌것습니다 누가 시원답변좀주세요.
:
: 씨빌더 진짜 C발 붙이고 싶네요 ㅠ. ㅠ
:
: 씨빌더 오로지 생산성땀시 사용했거던요.. 델파이가 더좋치만 파스칼 읽는수준 뿐이라서요.
:
: 근데 그생산성이라는게 죽입니다...
:
: 이거 프로그램 개발시간보다... 콤포넌트 붙이는 시간이 더걸리원 ㅠ.ㅠ
:
: 근5년만에 업한거 같아서 올해 2007 나왔길래 큰맘먹고 하나 샀는데..
:
: 기존 컴포넌트 다못부치것요 ㅠ.ㅠ 엉엉....
:
: 이거너무 실력없어서 그런지원....
:
: 아 넘어려워요 빌더!!! 누가좀갈쳐주세요..ㅠ.ㅠ
:
: 이렇케 어려운걸 무리없이 잘부쳐 사용하시는 고수분들 좀갈쳐주세요...
:
: 저처럼 머리나쁜사람 어려워서 못쓰것어요 ㅠ.ㅠ
:
: 진짜 스팀오르네요...
|
여기 저기 컴포넌트를 찾아봐도 뭐가 좋은지 잘 모르겠어요.
지금도 구매해 놓고 사용안하는 컴포넌트들이 많이 있습니다. ㅜ.ㅜ