Akashic Records

Is Component? 본문

오래된글/소프트웨어공학

Is Component?

Andrew's Akashic Records 2018. 4. 19. 13:42
728x90

Is Component?

  • “독립적인 배포의 단위” -> 프로그램의 배포해서 유저가 사용할 수 있도록 하는 것과 마찬가지고, 컴포넌트 역시 배포해서 다른 유저가 사용할 수 있다는 의미다.

  • 컴포넌트는 프로그램의 한 요소이긴 하지만 완전한 전체 프로그램은 아니다. 따라서 동일 한 기능을 원하는 곳이 있다면 언제든지 재활용할 수 있다.

  • 컴포넌트는 인터페이스를 외부에 알리고 다른 컴포넌트들은 이 인터페이스를 통해 컴포넌트를 이용하게 된다.

  • 컴포넌트를 이용함으로써 얻을 수 있는 장점?

i. 소프트웨어 재활용성 증가

ii. 언어 또는 플래폼 독립성

iii. 개발 생산성 증가

iv. 유지 보수성 증가

v. 특정 부분별 컴파일

vi. 소스 코드의 보호

vii. 비즈니스 변화에 대한 신속한 대응


  • 컴포넌트를 사용함으로써 발생할 수 있는 문제점?

i. 개발 절차에서 철저한 계획이 필요함에 따라 비용이 증가

ii. 첫 프로젝트에서는 개발 생산성 저하

iii. 컴포넌트 기술에 대한 개발자 교육의 필요성

iv. 소프트웨어 전체에 대한 이해력 감소

v. 아키텍처에 따른 호환성 감소


설계가 필요한 컴포넌트

“재사용되지 못하는 컴포넌트를 개발하는 것은 컴포넌트화하지 않는 것만 못하다.” 프로젝트는 사용자의 요구 사항에 의해 만들어진다. 요구 사항에서 공통되는 것들이 첫번째로 컴포넌트화해야 할 대상이 된다. 사용자에게 받은 요구 사항 중에서 공통 요소를 컴포넌트화 했다면, 다른 애플리케이션에서 공유될 수 없는 요소를 컴포넌트로 만들지 말지는 프로젝트 생산성을 고려해서 선택한다.


728x90
Comments