PMDEXIT 프로젝트 용어사전

ooCBD

Object-Oriented CBD · ooCBD

객체지향 기술과 컴포넌트 기반 개발을 결합한 방법론.

ooCBD란 무엇인가

ooCBD(Object-Oriented CBD)는 객체지향 기술과 컴포넌트 기반 개발(CBD)을 결합한 방법론이다. 객체지향이 데이터와 행위를 객체로 묶어 도메인을 표현하는 사고 틀이라면, CBD는 검증된 기능 단위를 독립된 부품으로 만들어 조립하듯 시스템을 구성하는 접근이다.

ooCBD는 이 둘을 이어, 객체로 분석·설계한 결과를 재사용 가능한 컴포넌트로 구현하는 데 초점을 둔다. 즉 객체 모델링의 표현력과 컴포넌트 조립의 생산성을 한 흐름 안에서 취하려는 시도다.

구현 단계의 방법론이지만 그 뿌리는 분석·설계의 객체 모델에 닿아 있다.

01객체 식별02책임 묶기03인터페이스 정의04컴포넌트 포장05조립·재사용
객체를 컴포넌트로 승격하는 흐름

객체에서 컴포넌트로

ooCBD의 핵심 동작은 객체를 컴포넌트로 승격시키는 데 있다. OO 모델링으로 식별한 객체들 중 응집된 책임을 공유하는 묶음을 골라, 외부에는 인터페이스만 노출하고 내부 구현은 감춘 부품으로 포장한다.

이렇게 만들어진 컴포넌트는 호출하는 쪽이 내부를 몰라도 계약된 인터페이스만으로 사용할 수 있다. 객체 단위가 너무 잘아 재사용 단위로 부적합할 때, 의미 있는 기능 덩어리로 다시 묶어 주는 단계가 바로 이 지점이다.

결국 객체 모델의 책임 경계가 컴포넌트의 부품 경계로 자연스럽게 옮겨 간다.

인터페이스 중심 설계

ooCBD에서 가장 중요한 산출물은 컴포넌트가 무엇을 제공하고 무엇을 요구하는지를 규정한 인터페이스다. 제공 인터페이스는 컴포넌트가 외부에 약속하는 기능이고, 요구 인터페이스는 그 컴포넌트가 동작하기 위해 다른 컴포넌트에 기대는 기능이다.

이 계약이 명확하면 컴포넌트를 만드는 팀과 쓰는 팀이 서로의 내부 구현을 기다리지 않고 병렬로 일할 수 있다. 또한 동일한 인터페이스를 만족하는 다른 구현으로 교체해도 시스템 전체가 흔들리지 않는다.

구현이 아니라 계약에 의존하게 만드는 것이 컴포넌트 재사용의 전제 조건이다.

인터페이스의미효과
제공 IF외부에 약속한 기능호출 측이 계약만으로 사용
요구 IF동작에 필요한 기능의존 컴포넌트 명시
교체성같은 IF 다른 구현시스템 영향 없이 교체
제공·요구 인터페이스 비교

재사용과 조립의 경제성

ooCBD가 노리는 실질적 효과는 검증된 부품의 반복 사용을 통한 개발 경제성이다. 한 번 만들어 검증한 컴포넌트를 여러 프로젝트와 여러 화면에서 재사용하면, 동일 기능을 매번 새로 구현하며 같은 결함을 반복하는 낭비를 줄일 수 있다.

다만 재사용은 공짜가 아니라, 인터페이스를 일반화하고 의존성을 정리하는 선행 투자를 요구한다. 처음부터 모든 것을 재사용 가능하게 만들려다 과도하게 추상화하면, 오히려 단순한 기능조차 복잡해진다.

재사용의 이익이 설계 비용을 넘어서는 지점을 가늠하는 판단이 방법론 적용의 관건이다.

CBD 방법론과의 관계

ooCBD는 CBD 방법론이라는 큰 흐름 안에서 객체지향을 구현 기술로 채택한 갈래로 이해할 수 있다. CBD가 부품화·조립·재사용이라는 원칙을 제시한다면, ooCBD는 그 부품을 객체와 클래스로 구체화하는 방법을 더한다.

따라서 분석·설계 단계에서 OO 모델링으로 그린 객체 구조가 견고할수록, 구현 단계의 컴포넌트 분할도 명료해진다. 반대로 객체 경계가 모호하면 컴포넌트 경계도 흐려져 부품 사이 결합이 늘어난다.

분석부터 구현까지 동일한 객체 개념이 관통하는 일관성이 이 방법론의 힘이다.

적용 시 유의점

ooCBD를 도입할 때 흔히 빠지는 함정은 컴포넌트를 잘게 나누는 것 자체를 목표로 삼는 것이다. 부품 수가 늘수록 조립과 버전 관리, 의존성 추적 비용이 함께 커지므로, 분할 단위는 재사용 가능성과 관리 비용 사이에서 균형을 잡아야 한다.

또한 인터페이스가 자주 바뀌면 그 컴포넌트에 의존하는 모든 쪽이 영향을 받으므로, 계약은 신중히 설계하고 안정적으로 유지해야 한다. 컴포넌트 내부는 자유롭게 고치되 외부 계약은 보수적으로 다루는 규율이 재사용을 지탱한다.

좋은 ooCBD 설계는 변경이 컴포넌트 내부에서 끝나도록 경계를 긋는 데서 완성된다.

관련 용어