워크로드 별 접근 방식
개요
Microsoft 워크로드는 다양한 유형과 특성을 가지고 있으며, 각 워크로드 유형에 따라 클라우드 네이티브 현대화 접근 방식이 달라집니다. 이 문서에서는 주요 Microsoft 워크로드 유형별 특징과 현대화 접근 방식을 설명합니다.
서버 애플리케이션
Windows Server 및 IIS 기반 웹 서비스
특징:
- Windows Server OS에 종속적인 구성 요소 포함
- IIS 웹 서버 기능과 깊이 통합된 애플리케이션
- Web Farm, Application Request Routing 등 IIS 고유 기능 사용
접근 방식:
- 리호스팅(Lift & Shift): Windows 컨테이너를 활용하여 최소한의 변경으로 컨테이너화
- 리플랫포밍: .NET 애플리케이션의 경우 Kestrel 웹 서버로 전환
- 리팩토링: ASP.NET Core로 완전히 재작성하여 크로스 플랫폼 지원
NT 서비스
특징:
- Windows 서비스 컨트롤 관리자(SCM)에 의해 관리되는 백그라운드 프로세스
- 시스템 계정이나 특정 사용자 권한으로 실행
- Windows 이벤트 로그 사용
접근 방식:
- 코드 수정 없는 현대화: ServiceMonitor를 활용한 Windows 컨테이너 리호스팅
- 코드 수정을 통한 현대화: 콘솔 애플리케이션으로 전환하여 컨테이너 생명주기에 맞게 조정
- 서비스 런처 래핑: NSSM 등으로 래핑된 서비스는 원본 실행 파일을 직접 컨테이너화
데이터베이스
SQL Server
특징:
- Windows 인증 사용 가능
- 파일 시스템과의 긴밀한 통합(백업, BCP 등)
- 저장 프로시저, 트리거 등의 T-SQL 코드
접근 방식:
- 관리형 서비스: Azure SQL Database, Amazon RDS 등으로 마이그레이션
- 컨테이너화: Linux 컨테이너 상의 SQL Server로 전환
- 데이터베이스 플랫폼 전환: PostgreSQL 등 오픈소스 RDBMS로 스키마 및 코드 변환
Access DB
특징:
- 파일 기반 데이터베이스
- 종종 VBA 매크로와 결합
- 클라이언트-서버 구조 없음
접근 방식:
- SQL Server 마이그레이션: SSMA(SQL Server Migration Assistant) 활용
- 웹 애플리케이션 전환: 데이터를 클라우드 DB로 이전하고 웹 인터페이스 구현
- SaaS 솔루션 적용: 데이터를 Power Apps 등 현대적 로우코드 플랫폼으로 이전
웹 애플리케이션
클래식 ASP
특징:
- VBScript 또는 JScript 사용
- COM 컴포넌트 종속성
- 서버 측 렌더링 중심
접근 방식:
- Windows 컨테이너 리호스팅: 코드 변경 없이 Windows 컨테이너로 이전
- Razor Web Pages 재개발: 유사한 페이지 중심 모델을 사용하는 .NET 기술로 재개발
- 현대적 웹 프레임워크 전환: ASP.NET Core MVC나 SPA+API 구조로 완전 재설계
ASP.NET Web Forms
특징:
- 상태 관리를 위한 ViewState 사용
- 컴포넌트 기반 개발 모델
- 이벤트 기반 프로그래밍 모델
접근 방식:
- Blazor 서버로 전환: 비슷한 컴포넌트 모델과 이벤트 기반 패러다임 유지
- ASP.NET Core MVC로 전환: 현대적 MVC 패턴 적용, 단계적 마이그레이션 가능
- 마이크로프론트엔드 전환: 점진적으로 React, Angular 등의 현대적 프레임워크로 전환
ASP.NET MVC
특징:
- 모델-뷰-컨트롤러 패턴 준수
- Razor 뷰 엔진 사용
- 라우팅 기반 URL 구조
접근 방식:
- ASP.NET Core MVC로 점진적 마이그레이션: 유사한 구조를 활용하여 코드 이식
- Windows 컨테이너 리호스팅 후 점진적 현대화: 기존 코드를 컨테이너화한 후 점진적으로 교체
- 마이크로서비스 분해: 대규모 MVC 애플리케이션을 작은 서비스로 분할
ASP.NET XML Web Service (WSDL)
특징:
- SOAP 기반 웹 서비스
- WSDL을 통한 서비스 기술
- 강력한 타입 시스템
접근 방식:
- ASP.NET Web API로 전환: RESTful API로 재구현
- SOAP 및 REST 병행: 기존 SOAP 서비스를 유지하면서 새로운 기능은 REST로 구현
- gRPC 고려: 성능이 중요한 마이크로서비스 간 통신에는 gRPC로 전환
데스크톱 애플리케이션
Windows Forms
특징:
- 빠른 RAD(Rapid Application Development) 지향
- 풍부한 UI 컨트롤
- 이벤트 기반 프로그래밍 모델
접근 방식:
- .NET Core Windows Forms로 전환: 호환성이 높은 .NET Core 버전으로 마이그레이션
- 웹 애플리케이션으로 전환: 브라우저 기반 UI로 재구현하여 플랫폼 제약 해소
- 하이브리드 접근: 핵심 비즈니스 로직은 크로스 플랫폼 라이브러리로 분리, UI는 상황에 맞게 선택
WPF (Windows Presentation Foundation)
특징:
- XAML 기반 UI 정의
- 풍부한 그래픽 및 애니메이션 기능
- 데이터 바인딩 중심 개발
접근 방식:
- .NET Core WPF로 전환: 호환성이 높은 .NET Core 버전으로 마이그레이션
- XAML 기반 크로스 플랫폼 전환: .NET MAUI 등을 활용하여 다양한 플랫폼 지원
- 웹 기술 기반 데스크톱 앱: Electron, WebView2 등을 활용한 웹 기술 기반 데스크톱 앱 개발
협업 플랫폼
SharePoint
특징:
- 문서 관리 및 협업 기능
- 워크플로우 및 비즈니스 프로세스 자동화
- 사용자 지정 웹 파트 및 애플리케이션
접근 방식:
- SharePoint Online으로 이전: 클라우드 기반 SharePoint 서비스로 마이그레이션
- SPFx(SharePoint Framework) 활용: 현대적 웹 기술 기반의 확장 개발
- 마이크로서비스와의 통합: SharePoint를 프론트엔드로 활용하고 백엔드는 마이크로서비스로 구현
Exchange Server
특징:
- 이메일, 일정, 연락처 등의 기능 제공
- Active Directory와의 긴밀한 통합
- PowerShell을 통한 자동화
접근 방식:
- Exchange Online으로 이전: Microsoft 365의 일부로 클라우드 이메일 서비스 활용
- 하이브리드 배포: 온프레미스와 클라우드 환경의 공존 전략
- API 기반 통합: Microsoft Graph API를 통한 현대적 애플리케이션과의 통합
접근 방식 선택 시 고려사항
워크로드별 현대화 접근 방식을 선택할 때 다음 요소를 고려하세요:
- 비즈니스 가치: 현대화로 얻을 수 있는 비즈니스 가치와 우선순위
- 위험 요소: 각 접근 방식에 따른 기술적 위험과 비즈니스 연속성 위험
- 팀 역량: 조직의 기술적 역량과 새로운 기술 습득 가능성
- 타임라인: 현대화를 위해 허용된 시간과 단계적 접근 가능성
- 비용: 각 접근 방식에 따른 개발, 운영, 라이선스 비용
다음 단계
워크로드 유형과 특성을 이해했다면, 보다 구체적인 현대화 레시피와 단계별 가이드는 시나리오 별 쿡북 섹션에서 확인할 수 있습니다.