리엔지니어링 패턴의 7장마이그레이션 전략은 레거시 시스템에서 새 시스템으로의 전환을 위한 주요 방법과 고려 사항을 다룬다. 레거시 시스템의 마이그레이션은 단순히 리엔지니어링하고 배포하는 것 이상의 전략적 과정이다. 이 과정은 전형적인 대규모 워터폴 프로젝트로 처리되는 함정을 피하기 위해 신중한 계획이 필요하다. 키 메시지는 사용자의 신뢰와 협력을 얻기 위해 점진적인 변경과 통합을 통해 한 번에 전체를 개편하는 대신 점진적이고 고통 없는 마이그레이션 절차의 필요성을 강조한다.

 

주요 패턴은 다음과 같다.

  1. 사용자 참여시키기: 이 패턴은 사용자를 리엔지니어링 과정 전반에 걸쳐 깊이 참여시켜 변경 사항의 수용을 극대화하는 데 초점을 맞춘다. 사용자의 정기적인 피드백과 참여는 새 시스템이 호의적으로 받아들여지고 성공적으로 통합될 가능성을 높인다.
  2. 자신감 구축하기: 이 패턴은 정기적으로 가치 있는 결과를 보여줌으로써 이해 관계자와 사용자들 사이에서 프로젝트가 성공적으로 진행되고 있음을 확신시키는 데 목적이 있다. 단기적인 성공을 보여줌으로써 모든 당사자의 신뢰를 유지한다.
  3. 시스템 점진적 마이그레이션하기: 이른바 "치킨 리틀"로 알려진 이 패턴은 큰 변화와 관련된 위험을 피하기 위해 점진적 마이그레이션을 지지한다. 마이그레이션 과정을 관리 가능하고 리스크가 낮은 작은 부분으로 나누어 점진적으로 처리할 것을 제안한다.
  4. 목표 솔루션 프로토타입하기: 프로토타입을 사용하여 새로운 아키텍처 결정과 기술적 리스크를 테스트한다. 프로토타입은 개념을 검증하고 마이그레이션의 리스크를 줄이는 데 도움이 된다.
  5. 실행 버전 항상 보유하기: 지속적인 통합과 테스팅을 위해 항상 작동하는 시스템 버전을 유지하는 것이 중요하다. 이 패턴은 마이그레이션 과정 전반에 걸쳐 시스템의 안정성을 유지하도록 한다.
  6. 변경할 때마다 회귀 테스트하기: 새로운 변경 사항이 기존 기능을 손상시키지 않도록 보장하여 시스템의 안정성을 유지한다.
  7. 뉴 타운으로 가는 브리지 만들기: 데이터 브리지를 생성하여 레거시 시스템에서 새 시스템으로 데이터를 점진적으로 이전하면서 두 시스템을 병렬로 운영할 수 있다. 이 단계별 접근 방식은 중단을 최소화하고 데이터 무결성을 유지한다.
  8. 올바른 인터페이스 제시하기: 레거시 컴포넌트를 새 인터페이스로 래핑하여 원하는 추상화를 반영하도록 한다. 이를 통해 새 시스템 아키텍처로의 부드러운 전환과 통합이 가능해진다.

각 패턴은 마이그레이션 과정에서 특정 도전을 해결하며, 위험을 최소화하고 레거시 시스템에서 새로운 효율적인 시스템으로의 성공적인 전환을 촉진하는 전략적 접근을 제공한다.

 

참고 문헌
[1] Serge Demeyer et al., "Object-oriented Reengineering Patterns"
[2] https://github.com/blcktgr73/OORP

+ Recent posts