카테고리 없음

컴포넌트 기술 CBD SOA

김코식 2022. 12. 6. 01:26

컴포넌트 기술이란 ? 


컴포넌트 

 

외부에 제공하는 인터페이스와 외부에 요구하는 인터페이스를 가지는 소프트웨어 단위

제공 및 요구 인터페이스가 간단하고 사양이 명시되어 있는 소프트웨어의 단위

컴포넌트 기반 프로그래밍을 하면 마치 레고 블록처럼 이미 만들어진 컴포넌들을 조합하여 화면을 구성

 

컴포넌트 개념의 유래

하드웨이의 경우 각각 독립된 기능을 가진 모듈을 서로 조합하여 하나의 제품으로 만드는데

이러한 제품읠의 부품의 문제가 생기면 해당 부품만 다른 부품으로 바꿔도 제품은 문제가 없다

하지만

소프트웨어의 경우 각각의 모듈들이 독립적으로 개발되지 않 다른 모듈과 호환을 생각하지 않고 개발되는 경우가 많기 때문에 재사용을 어렵게하고 유지보수 비용이 크게 증가한다

이를 해결하기 위해 나온 기술이 컴포넌트 기술이다.

 

CBD

- 유저 인터페이스를 제외한 시스템 전체를 컴포넌트로 구성하는 시스템의 개발

생산성, 품질을 높이고 유지보수 비용을 최소화시킨다

 

객체지향과 비슷한데?

 

객체 지향과 CBD의 차이점

1. 소스 코드 형태의 재사용 vs 바이너리 파일 형태의 재사용

*바이너리 파일 형태 // 0과 1을 이용한 2진수 데이터만으로 이루어진 파일

2. 클래스와 컴포넌트

(객체의 재사용 = 클래스의 재사용)

클래스(분석, 설계에 대한 모델링 결과물) = 논리적 측면의 재사용

컴포넌트 (프로그램 된 결과물) = 물리적 측면의 재사용

3. 개발 vs 조립

객체지향은 재사용을 통한 효과적인 개발에 초점

CBD방법론은 개발보단 조립에 초점

 

객체지향 방법은 단일언어로 개발하고 수시로 모듈을 수정하여 재컴파일해야하는 불편함이 있다

SOA (서비스 지향 아키텍처)

네트워크에서 공통의 통신 언어를 사용하는 서비스 인터페이스를 활용하여 소프트웨어 구성 요소를 다시 사용할수 있게 만드는 소프트웨어 설계 유형

????????????

  • 서비스라는 소프트웨어 구성 요소를 사용하는 소프트웨어  개발 방식
  • 플랫폼과 언어를 넘나들며 서로 통신가능
  • 개발자는 서로다른 시스템의 서비스를 재사용 하거나 독립적인 여러 서비스를 결합해 복잡한 태스크 수행

 

기존의 애플리케이션의 기능들을 비지니스적인 의미를 가지는 기능 단위로 묶어

(ex)직원 정보 서비스 , 계좌이체 서비스등

서비스로 구현하고 이 서비스 들을 이용해 어플리케이션을 구성하는 개발 아키텍쳐

SOA 의 이점

출시 기간 단축 

- 새로 코드를 작성하고 통합을 수행하는 것 보다 SOA를 사용하여 훨씬 빠르게 애플리케이션 개발 가능

 

효율적인 유지보수

- 하나로 묶여진 큰 코드 블록보다 작은 서비스를 생성, 업데이트, 디버그 하는것이 훨씬 쉽다.

 

컴포넌트 개발- CBD  vs 서비스 개발- SOA 

컴포넌트와 서비스의 차이?

컴포넌트 - 몇개의 제공하는 인터페이스를 보관하고 유지하는 소프트웨어의 단위

서비스 -  그 컴포넌트가 제공하는 인터페이스

 

 

 

 


 

참고 자료

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jssong2003&logNo=120058376942 

https://aws.amazon.com/ko/what-is/service-oriented-architecture/

https://hanamon.kr/%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8-component%EB%9E%80/