CBD 1장.pptx
CBD 1장 대본.docx

CBD 개발방법론 1장 발표를 맡게 된 박은진입니다. 발표 시작 하겠습니다.

목차입니다. 컴포넌트란 무엇이고 컴포넌트를 사용할 때의 이점과 컴포넌트를 기반으로
소프트웨어 개발을 지향하는 CBD의 개요에 대해 발표를 진행하겠습니다.

컴포넌트는 전체 시스템을 구성하는 하나의 구성요소 이고 인터페이스를 통해서만 소프트웨어
시스템을 구성하는 다른 컴포넌트와 커뮤니케이션을 할 수 있습니다. CBD 개발 방법론에서는
컴포넌트를 ‘독립적인 서비스를 제공하는 소프트웨어 모듈’로 간략히 정의하고 있는데, 컴포넌트라는 개념은 소프트웨어 보다 하드웨어에서 먼저 도입되었습니다. 예를 들어 컴퓨터를 구입한다고
할 때, 하나의 완제품으로 구입하는 것이 아닌 컴퓨터를 구성하는 부품을 각각 구입하여 조립해서 사용할 수도 있습니다. 즉, 컴퓨터를 만들 때 처음부터 시작하는 것이 아니라, 이미 만들어진
부품을 단순히 조립하기만 한다는 것인데, 이러한 부품이 컴포넌트인 것입니다.

CBD에서 이러한 컴포넌트를 사용할 때 미리 구현되어 있는 컴포넌트를 재사용해 조립함으로써
쉽고, 값싸게 소프트웨어 시스템을 구축할 수 있습니다.

컴포넌트를 만들기 위해서는 고려해야할 사항들이 있는데, 느슨한 결합도와 입자와의 관계입니다.
여기서 느슨한 결합도는 원래 재사용성을 커다란 특징으로 하고 있는 객체지향 개념의 클래스를
빗대어 말할 수 있는데, 그림과 같이 클래스는 클래스 사이에 종속성이 강하기 때문에 사용자의
요구사항이 바뀌어 수정을 하려면 큰 프로젝트 같은 경우에는 문제가 생길 수 있습니다. 이를
해결하기 위해 인터페이스를 통해 클래스 사이에 느슨한 결합도를 만들 수 있습니다.

그리고 입자라는 것은 인터페이스가 제공하는 기능의 양으로 측정할 수 있습니다.
클라이언트와 서버가 서로 다른 머신에서 실행되는 분산 객체 환경의 경우에 입자가
작을수록 각 메서드 호출 때마다 네트워크를 타므로 네트워크 Traffic이 많이 발생하는데
CBD에서는 상대적인 반대개념으로 큰 입자라고 하는 개념을 사용합니다. 여기 그림을
보면 작은 컴포넌트는 그 만큼 더 자주 재사용될 수 있지만, 노력을 절약시켜 주지는
못하기 때문에 그다지 비용 효율성이 뛰어나지 못합니다. 이에 비해 미리 구축된
애플리케이션 패키지를 의미하는 가장 커다란 유형의 컴포넌트는 최선의 경제성을
제공해 줄지는 몰라도 비즈니스의 요구사항과 일치하는 것을 찾아내기가 쉽지 않고
변화에 대해 그다지 유연성을 갖지 못합니다. 이러한 비유연성은 컴포넌트를 사용하고자
하는 이점을 잃어버린다는 것을 의미하기 때문에 컴포넌트의 입자의 크기는 유연성
사이의 타협에서 결정되어야 하며 이것은 비즈니스에 따라 달라집니다.

다음은 CBD개요에 대해 설명 드리겠습니다. CBD는 Component Based Development의 약자로
컴포넌트을 기반으로 소프트웨어 시스템을 개발하는 방법입니다. CBD는 사용자의 끊임없는
요구에 신속하고 유연하게 대처하는 것을 목표로 하고 느슨한 결합도와 큰 입자를 합쳐놓은 장점
을 가지고 있습니다.

이러한 CBD에는 두 가지 형태의 개발 방법이 있는데 하나는 완전한 소프트웨어 시스템을 만드는
것이 아닌 다른 소프트웨어 시스템에 포함될 부품을 만드는 것. 즉, 컴포넌트 자체를 개발하는
Component Development이고 다른 하나는 이미 개발된 컴포넌트들을 조립하여 비즈니스 요구사항을
충족시키는 소프트웨어 시스템을 개발하는 Component Based Software Development가 있습니다.

컴포넌트 개발(CD)는 재사용을 주된 목적으로 만들어야 하기 때문에 해당 업무 도메인에 대한 분석이
매우 중요합니다. 예를 들어, 학교 도메인에 필요한 컴포넌트를 개발한다고 할 때, 특정 학교에만 초점
을 맞추어 개발된다면 다른 학교에서 해당 컴포넌트에 대한 재사용성이 떨어질 것 입니다. 그보다는 여
러 다양한 학교 소프트웨어 시스템에 공통적으로 필요한 기능을 가진 컴포넌트를 개발해야 재사용성이
높아지게 되고 이 때 비로소 컴포넌트 기반 개발 방법이 효과를 발휘할 수 있습니다. 컴포넌트 기반 소
프트웨어 개발(CBSD)은 이미 구축되어 있는 컴포넌트를 사용하여 소프트웨어 시스템을 개발하기 때문
에 개발 시간을 단축시킬 뿐만 아니라 필요한 인력이나 비용의 절감효과를 가져올 수 있습니다.

위의 내용을 종합해서 CBD는 개발할 소프트웨어에 유연하게 재사용 할 수 있을 뿐만 아니라, 느슨한 결합도와 큰 입자의 특징을 가지고 있기 때문에 대체성이라는 큰 장점을 가지고 있습니다. 또한 컴포넌트는 독립적인 기능을 포함하고 있기 때문에 관리하기가 용이하고 사용자의 요구사항의 변화를 안정적이고 신속하게 대응할 수 있습니다.

이상으로 CBD개발방법론 발표를 마치겠습니다.