본문 바로가기
공부/소프트웨어공학

[소프트웨어공학] 조직, 사람, 컴퓨터 시스템2 (레거시 시스템)

by 사당동호랭이 2023. 7. 21.

 2.4 레거시 시스템

 복잡한 시스템을 개발하는 데 드는 시간과 노력 때문에, 컴퓨터 기반 대형 시스템은 오랫동안 사용한다. 예를 들어, 군사 시스템은 20년 수명으로 설계되었으며, 항공 관제 시스템은 1960년대와 1970년대에 개발한 소프트웨어와 운영 프로세스에 아직도 의존하고 있다. 몇 년 동안 사용해 온 중요한 비즈니스 시스템을 버리는 것은 비용이 많이 들고 위험하다. 그러한 시스템은 새로운 요구사항을 추가하고 새로운 기계에서 사용 할 수 있도록 변경하여 수명을 연장한다.

 레거시 시스템은 과거의 구식 기술을 사용하여 개발된 사회-기술적, 컴퓨터 기반 시스템이다.  이러한 시스테믄 하드웨어와 소프트웨어뿐만 아니라 레거시 소프트웨어에 의존하기 때문에 변경이 어려운 구식의 프로세스와 절차를 포함한다. 이러한 시스템의 한 부분을 변경하면 다른 부품을 필연적으로 변경해야 한다.

 레거시 시스템은 중요한 비즈니스 시스템인 경우가 많다. 그것을 대체하기에는 너무 위험하기 때문에 계속 사용해 왔다. 예를 들어, 대부분의 은행에서 고객 계정 시스템은 가장 초기 시스템 중의 하나이다. 조직의 정책과 절차가 그 시스템에 의존해 왔다. 만약 은행이 고객 계정 소프트웨어를 뜯어내고 다시 시작했다면, 대체 시스템이 제대로 동작하지 않았을 경우 심각한 사업상의 위험을 드러내게 된다. 더욱이 기존의 절차를 변경해야 하고 그것은 결국 조직의 직원과 은행 감리의 어려움이 된다.

 

 1. 시스템 하드웨어 : 많은 경우에 있어서 레거시 시스템은 유지비용이 비싸고 현재의 IT 구매 정책으로는 해결할 수 없는 더 이상 생산되지 않는 메인프레임 하드웨어에서 사용된다.

 2. 지원 소프트웨어 : 레거시 시스템은 하드웨어 생산자에 의해서 제공된 운영체제와 유틸리티부터 시스템 개발에 사용된 컴파일러까지 다양한 지원 소프트웨어에 의존한다. 이러한 것들은 구식이며 더 이상 원래 생산자에 의해 지원되지 않는다.

 3. 응용 소프트웨어 : 비즈니스 서비스를 제공하는 응용 시스템은 서로 다른 시간에 개발된 여러 개의 프로그램으로 구성되어 있다. 때로 레거시 시스템이라는 말은 전체 시스템보다는 이러한 응용 소프트웨어 시스템을 의미한다.

 4. 응용 데이터 : 이것은 응용 시스템에 의해서 처리된 데이터이다. 막대한 양의 데이터가 시스템의 시작부터 쌓여 왔다. 이 데이터는 일관성이 없으며 여러 파일에 중복되어 있다.

 5. 비지니스비즈니스 프로세스 : 이것은 어떠한 비즈니스 목적을 달성하기 위해서 사용된 프로세스를 의미한다. 보험 회사에서의 비즈니스 프로세스 예는 보험 정책을 새로 만드는 것이고, 생산 공장에서는 제품의 주문과 관련된 생산 공정을 수립하는 것이다. 비즈니스 프로세스는 레거시 시스템을 기반으로 설계되고 그것이 제공하는 기능에 의해 제약을 받는다.

 6. 비즈니스 정책과 규칙 : 비즈니스가 어떻게 실행되고 제약을 두는지에 관한 정의이다. 레거시 응용 시스템의 사용은 이 정책과 규칙에 삽입되어 사용된다.

 레거시 시스템의 컴포넌트를 보는 다른 대안은 계층으로 생각하는 것이다. 각 계층은 그 밑에 있는 계층과 인터페이스에 의존한다. 만약 인터페이스가 유지되면, 인접한 계층에 영향을 주지 않고 현재의 계층을 수정할 수 있다. 

 실제로 이러한 단순한 캡슐화는 드물고, 시스템의 한 계층을 변경하면 변경된 수준의 아래위 계층에 즉각적인 변경을 요구할 수 있다. 그 이유는 다음과 같다. 

사회-기술적 시스템

 

 

 1. 시스템에서 한 계층의 변경은 새로운 기능을 추가하는 경우가 있으며 시스템에 있는 상위 계층은 그 기능을 사용할 수 있어야 한다. 예를 들어, 지원 소프트웨어 계층에 추가된 새로운 데이터베이스는 웹 브라우저를 통해서 데이터에 접근할 수 있는 기능을 포함한다면, 비즈니스 정책은 이 기능을 이용할 수 있도록 변경되어야 한다.

 2. 소프트웨어를 변경하면 시스템의 속도가 늦어지고 시스템의 성능을 높이기 위해서 새로운 하드웨어가 필요하다. 새로운 하드웨어에 의해 성능을 높인다는 것은 과거에는 불가능했던 변경이 가능해진다는 것을 의미할 수도 있다.

 3. 하드웨어, 특히 새로운 유형의 하드웨어로의 변경이 제안되면, 인터페이스를 유지하는 것이 어렵다. 예를 들어, 만약 회사가 메인프레임에서 클라이언트/서버 시스템으로 변경하면 다른 운영체제를 사용해야 하고 따라서 응용 소프트웨어도 많이 수정해야 한다.