본문 바로가기

잡담

CBD개발 방법론으로 개발하여 망해버린 프로젝트

CBD(Component Based Development)개발 방법론은 컴포넌트 기반 개발. 시스템을 하나의 일체형으로 구축하지 않고 마치 레고 블록처럼 하나하나씩 요소별로 부품화하여 구축이라고 한다.

시스템을 레고 블럭처럼 하나씩 부품화해서 구축한다고 하니 듣기만 해서는 그럴싸하게 보인다.

하지만 SI프로젝트 수행사에서 CBD개발 방식으로 프로젝트를 수행했는데 프로젝트는 망했다...

 

 

 

프로젝트 수행사에서 개발자들을 불러서 교육을 할 때 CBD개발을 한다는 이야기를 듣고 CBD? 그게 어떻게 개발하는거지?라는 생각을 했다. 잘 모르다보니 걱정스럽기도 했는데 막상 교육을 듣고나니 전혀 유익하지 않은 개발 방법이라고 생각이 들었다 아니 오히려 더 불편해진거 아닌가?라는 생각이 들었다. 그리고 그 생각은 맞았다.

 

 

 

개발 방법

개발방법은 다음과 같았다.

예를 들어서 클래스1->클래스2->클래스3 방식으로 호출을 한다고 가정하자

패키지에 클래스1, 클래스2, 클래스3 파일을 생성한다.

클래스1에서 클래스 2를 호출해야 한다. 이때 클래스1을 마우스 오른쪽 버튼으로 클릭해서 속성? 비슷한 것이 있는데

그 창을 열고 클래스2를 끌어다가 그 창에 넣는다.

그럼 클래스1 소스에 클래스2를 호출하는 코드가 생성된다.

이제 클래스2에서 클래스3을 호출해야한다. 이때도 마찬가지로 클래스2를 마우스 오른쪽으로 클릭한 뒤 속성 창을 열고

패키지 창에 있는 클래스3 파일을 끌어다가 옮긴다.

그럼 클래스2에서 클래스3을 호출하는 소스코드가 생성이 된다.

이 방식이 왜 이렇게 쓸모가 없었다고 느꼇냐면

클래스1에서 클래스2를 호출할 때 일반적으로 개발을 한다면

class class1{

    class2 cls2 = new class2();

    cls2.service();

}

이렇게 소스코드로 작성하면 그만이다. 개발자라면 누구나 알고 있다.

근데 굳이 클래스를 오른쪽으로 클릭해서 속성을 들어간 뒤에 마우스로 끌어다 놓는 등 불편한 행위를 해야한다.

심지어 소스코드를 작성하는 방식으로는 다른 클래스를 호출 할 수 없게 막아놨다.

 

 

 

클래스 호출은 개발자가 작성을 못하지만 비즈니스 로직은 개발자가 작성해야하는 구조

소스코드로 다른 클래스를 호출 할 수 없게 되어있는데

비즈니스 로직은 직접 코딩을 해야하는 어이없는 구조다.

말만 CBD개발 방법이지 쓸데없는 짓을 해놓았다.

 

 

 

타 업무팀에서 개발한 클래스를 호출 할 수 없는 구조

CBD개발에서는 타업무에서 작성한 클래스를 호출 할 수 없게 만들어놨다.

그래서 타업무팀에서 만든 클래스를 호출하려면 타업무팀에게 요청을 해야하고

그 클래스 담당자가 또 마우스 오른쪽 클릭으로해서 어떤 클래스 파일에서는 이 클래스를 호출 할 수 있다고 체크를 해줘야 사용이 가능하다.

 

 

 

엄청난 번거로움

소스코드를 읽어가는 도중에

클래스A에서 클래스B를 호출해야하는데 미스로 인해 클래스C를 호출하고 있었고

클래스C를 클래스B로 바꿔야한다고 하자.

일반적으로는 

class classA{

//    classC clsC = new classC(); 주석

      classB clsB = new classB();

}

이렇게 소스코드를 바로 수정하면 그만이다.

근데 CBD개발방법에서는 또 클래스 파일을 마우스 오른쪽으로 클릭해서

마우스로 클래스C를 밖으로 끄집어내고 클래스B를 다시 끌어다가 놓아야한다.

상당히 귀찮고 시간이 뺏기는 작업이다. 거기다가 타업무팀의 소스파일을 잘못 호출했을 때는 더 귀찮아진다.

또 다시 타업무팀 담당자에게 쪽지를 보내서 권한을 받는 등 작업을 해야한다.

가끔 타업무팀의 개발자가 휴가를 갔거나 하는 상황도 있는데 이럴 경우 개발에 손도 못대고

가만히 있어야하는 상황이 발생한다. 엄청난 시간 낭비다.

 

 

 

결론

CBD개발 방법으로 성공했다고 홍보하는 회사들이 있다.

내가 참여했던 프로젝트 수행사의 경우도  CBD개발 방법으로 성공했다고 홍보했던 회사였는데

아마 CBD개발 방법을 적용하지 않아도 성공했을 프로젝트였을 것이다.

나는 프로젝트 초반에 이렇게 개발하면 개고생만하고 끝날 것 같아 프로젝트에 투입되고 얼마 안있다가 나왔는데

프로젝트에 남아있던 지인의 이야기로는 프로젝트 단가의 1/4이나 되는 금액이 적자였다고 한다.

1000억이면 250억이나 적자를 본 셈이다.