CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): valken (:이쁜왕자:)
날 짜 (Date): 2010년 04월 23일 (금) 오후 03시 04분 07초
제 목(Title): Re: 웬수같은 코더들.


 
저희 회사에서는 소스 관리가 몇년째 고민인데, 
워낙에 많은 시스템을 만들다 보니, 뭘 해도 어렵더군요.

거의 차이가 없는 형제급 모델(A1, A2) 은 하나의 최종 바이너리를
공유해서 쓰되 차이점은 런타임중에 모델을 감지해서
구분하는 방법을 씁니다. 

조금 차이가 있는 사촌급 모델(B)은 같은 소스를 ifdef 으로 구분한 뒤,
서로 빌드를 달리해서 사용합니다.

차이가 많은 사돈의 팔촌급 모델(C)은 소스를 완전히 분리해서
서로 따로 관리합니다.

이렇다고는 해도 메인이 되는 원본 소스는 다 같은데서 나온거죠.

이런 상황에서, A1 에서 발생한 버그를 수정하면,
당연히 A2 도 자동으로 고쳐집니다.
B 역시 소스는 동일하니깐, 추후 자동으로 패치된다고 보면 됩니다.
하지만, C 의 경우는 따로 고쳐 주어야죠.

실제로는 잘 안고쳐져서, 버그가 이 장비 저 장비로 옮겨다니는듯한 양상을 
보입니다. A1 에서 버그가 리포트되어 고쳐 놨더니, 똑같은 버그가
C 에서 발생하는 식이죠.

그럼, 하나의 소스로 관리가 되는 B 의 경우는 좀 나으냐? 라고 하면
이 역시 문제가 많죠. 수많은 중첩 ifdef 으로 소스가 넝마가 되어 있죠.

그나마 코딩을 이쁘게 하는 사람이 만져 놓으면 모를까,
일단 되게만!! 고쳐 놓기 급급한 상황이 많으니, 
자연스레 욕이 나오는 코딩이 되어 있는 경우가 많죠.


여튼 지금 상황은 A1,A2 에는 불필요하고 B 에만 필요해서
ifdef 로 도배한채로 추가된 기능이 하나 있는데,
이 기능이 C 에도 필요해서 옮겨 넣는 작업을 하는 중입니다.

문제는 C 역시 딴길로 달려간지 오래되었다 보니,
많이 달라져서 그냥 잘라 붙이기도 어려운 상황이고,
앞의 예제처럼 눈에 잘 안들어오는 ifdef 으로 되어 있다보니,
입안에서 욕이 맴돌 따름입니다.
 


   "웬 초콜릿? 제가 원했던 건 뻥튀기 쬐끔과 의류예요." "얘야, 왜 또 불평?"
                          -> 자음 19개와 모음 21개를 모두 사용하는 pangram
- 이쁜왕자 -
- Valken the SEXy THief~~ ^_* -

[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.