.NET 현대화

레거시 .NET을 앞으로, 비즈니스를 멈추지 않고

그 애플리케이션은 여전히 비즈니스를 돌리고 있습니다. 바로 그래서 아무도 손대고 싶어 하지 않습니다. 저희는 WebForms, WCF, VB.NET, .NET Framework 시스템을 한 조각씩 최신 .NET으로 옮기며, 기존 쪽에 남은 것이 없을 때까지 기존 시스템과 새 시스템을 나란히 운영합니다.

이런 상황이라면 잘 찾아오셨습니다

  • WebForms나 WCF 애플리케이션이 여전히 비즈니스의 핵심 부분을 담당하고 있고, 이를 만든 사람들은 이미 떠났습니다.
  • 현대화 견적을 받을 때마다 로드맵을 멈춰야 하는, 감당할 수 없는 전면 재작성안이 돌아왔습니다.
  • 애플리케이션이 다른 곳에서는 실행되지 않아 Windows Server와 IIS에 묶여 있습니다.
  • 보안 및 컴플라이언스 검토에서 지원이 종료된 프레임워크 버전이 계속 지적됩니다.

저희의 현대화 방식

매번 같은 방식입니다. 저희가 본 것 중 끝까지 완료된 방식은 이것뿐이기 때문입니다.

조사가 아닌 경험으로 진단

아래 목록의 모든 스택으로 프로덕션 코드를 작성해 왔기 때문에, 진단은 비용을 들여야 하는 조사 단계가 아니라 이미 가진 경험을 꺼내는 일입니다.

빌드부터 정비

SDK 스타일 프로젝트, 멀티 타기팅된 공유 라이브러리, 스스로 돌아가는 파이프라인. 마이그레이션이 끝나기 전부터 효과를 내고, 이후의 모든 작업을 반복 가능하게 만듭니다.

한 번에 갈아엎지 않고, 스트랭글러로

새 스택을 기존 스택 옆에 세웁니다. 조각들은 같은 URL 뒤에서 하나씩 옮겨지며, 각각 되돌릴 수 있는 경로를 갖습니다.

고객사 팀이 마무리할 수 있도록

각 조각은 패턴으로 문서화됩니다. 목표는 이후 조각을 고객사 개발자가 직접 진행하고 저희는 리뷰를 맡는 것입니다.

범위가 확정된 시작 패키지

관리자가 바로 승인할 수 있는 첫 단계

모든 프로젝트는 아래 패키지 중 하나로 시작할 수 있습니다. 각 패키지에는 이름이 있고, 착수 전에 문서로 확정되는 범위가 있습니다. 따라서 첫 결정은 작은 결정이 되며, 더 큰 작업을 맡기시기 전에 저희의 일하는 방식을 먼저 확인하실 수 있습니다.

2주

현대화 진단

솔루션의 모든 프로젝트, 의존성, 호스팅 전제를 이전 후의 모습과 대응시키고, 한 단계씩 예산을 집행할 수 있는 스트랭글러(strangler) 계획으로 비용을 산정합니다.

포함 사항

  • 프로젝트, 패키지, 서드파티 컨트롤, COM 인터롭 목록화
  • 기계적으로 이식되는 부분, 실제로 재작성해야 하는 부분, 남기지 말아야 할 부분 구분
  • 위험도 순으로 정리한 단계별 마이그레이션 계획과 견적
  • 비용을 부담하는 의사결정자를 위한 결과 설명

얻게 되는 결과

예산 승인에 바로 가져가실 수 있는, 비용이 산정된 단계별 계획 — 저희에게 작업을 맡기시든 아니든 고객사의 자산으로 남습니다.

이 패키지 문의하기
3주

빌드 및 파이프라인 현대화

SDK 스타일 프로젝트, 최신 패키지 관리, 스스로 돌아가는 CI 파이프라인. 화려하지는 않지만 이후의 모든 단계를 반복 가능하게 만드는 작업입니다.

포함 사항

  • 레거시 csproj 및 packages.config 변환
  • 이전에 대비한 공유 라이브러리 멀티 타기팅
  • 모든 변경 사항에 대한 CI 빌드 및 테스트
  • 적합한 경우 컨테이너 기반 빌드 및 배포

얻게 되는 결과

어디서나 동일하게 빌드되고 마이그레이션을 바로 시작할 수 있는 솔루션 — 마이그레이션 전부터 효과를 냅니다.

이 패키지 문의하기
6~8주

첫 번째 조각 마이그레이션

애플리케이션의 경계가 분명한 한 부분을 최신 .NET으로 옮겨, 같은 URL 뒤에서 기존 시스템과 나란히 운영하며 프로덕션에서 검증합니다.

포함 사항

  • 가치와 분리 용이성을 기준으로 선정한 이전 대상
  • 기존 스택 옆에 새 스택 구축
  • 롤백이 가능한 조각 단위 트래픽 전환
  • 고객사 팀이 반복할 수 있도록 패턴 문서화

얻게 되는 결과

실제 사용자가 새 시스템을 쓰는 상태로 고객사 시스템에서 검증된 스트랭글러 패턴, 그리고 나머지 작업에 대한 실측 기반 견적.

이 패키지 문의하기

모든 패키지는 범위를 확인한 후 고정 가격으로 견적을 드리며, 확정된 가격은 변하지 않습니다. 작업이 예상보다 길어지더라도 그것은 고객사가 아니라 저희가 감당할 몫입니다.

자주 묻는 질문

WebForms 애플리케이션을 다시 작성해야 하나요?

마크업은 그렇습니다. 페이지 수명 주기와 ViewState는 최신 .NET에 대응되는 것이 없기 때문입니다. 하지만 그 아래의 비즈니스 로직은 대개 다시 작성할 필요가 없으며, 둘을 분리하는 것이 작업의 대부분입니다. 그래서 진단이 먼저입니다.

WCF 서비스의 기존 호출자를 그대로 유지할 수 있나요?

대부분 가능합니다. 호출자가 변경할 수 없는 외부 업체인 경우, CoreWCF로 SOAP 계약을 유지한 채 그 뒤의 모든 것을 최신 .NET으로 옮길 수 있습니다.

.NET Framework 마이그레이션은 얼마나 걸리나요?

코드베이스의 크기보다 데이터 계층과 서드파티 의존성에 훨씬 더 크게 좌우됩니다. 2주간의 진단은 바로 그 질문에 추측이 아닌 단계별 견적으로 답하기 위한 것입니다.

VB.NET 작업도 하시나요?

네. 프로덕션 VB.NET을 출시해 왔으며, 현재 팀의 누구도 열어 보고 싶어 하지 않는 부분까지 포함해 읽고, 이식하고, 래핑해 드립니다.

아직 .NET Framework에서 운영 중이십니까?

애플리케이션이 무엇을 하고 어떤 환경에서 실행되는지 알려 주십시오. 이전에 실제로 무엇이 필요한지, 그리고 첫 번째 조각은 무엇이어야 하는지 말씀드리겠습니다.