마이크로서비스 설계에 있어서 서비스 분해와 데이터베이스 설계는 까다로운 주제입니다. 특히 도메인 주도 설계, 어그리거트 설계, 이벤트 스토밍과 같은 실천법들을 이해하고 적용하는데는 전문적인 지식과 경험이 필요합니다.
MSA Easy는 이러한 전문 지식을 학습한 AI를 통한 서비스 자동 분해 기능과 세부 도메인 모델 설계 자동화를 위한 기능을 추가하여 설계자가 쉽게 큰 문제 영역의 요구사항을 "Bounded Context"라는 단위로 분해하고, 세부 문제 영역별 도메인 모델을 "Aggregate"라는 기법으로 다시 분해한 후 이를 재통합할 수 있는 기능을 추가하였습니다.
이로써 실무자들은 방대한 분량의 요구사항을 자연어로 입력하여 서비스 분해 후보들과 분해된 서비스 각각의 데이터 설계도를 얻을 수 있고 이에 대하여 피드백을 주어 수정하거나 직접 생성된 모델을 수정하여 애플리케이션 골격 코드를 곧바로 얻어낼 수 있습니다.
일반적인 AI 기반 개발은 여러 문제를 포함한 대규모 도메인에 적용될 때 종종 비효율적입니다.
문제 영역을 분리하고 특정 서브 도메인에 집중함으로써, 대형 언어 모델(LLM) 기반의 자동 생성이 이러한 명확히 정의된 영역 내에서 더 나은 성능을 발휘하며, 특히 코드 정확도가 개선됩니다. 문제 도메인을 분리하는 것은 LLM이 고객의 요구사항을 더 효과적으로 이해하는 데 도움이 됩니다.
위에 언급된 자동화된 서비스 설계 및 데이터베이스 설계 기능에 의하여 기본 생성된 코드를 실질적 비즈니스 로직을 부여하여 상세한 Given-When-Then 서술을 주입하여 이를 통과하도록 설계된 "피드백-루프"로 동작하면서 서비스 코드를 완성합니다.
마이크로서비스간 연동을 이벤트 수신/발신으로 처리하면 가장 유연성이 높은 아키텍처를 구성할 수 있습니다. 하지만 이러한 이벤트 기반 마이크로서비스의 실행 상태를 모니터링 하는 것은 쉽지 않습니다. 카프카 등 실제 이벤트 로그에 접근하여 마이크로서비스의 진행 상태를 추정하여 이해해야 했습니다.
오래된 레거시 시스템은 데이터베이스와 긴밀하게 연결되어 있어, 최신 클라우드 환경으로 전환하거나 마이크로서비스 도입에 큰 제약이 있습니다. 특히 최신 개발 도구들과 연동이 어렵고 자동화된 개발-배포 과정을 적용하기 힘들어, 시스템 유지보수와 개선에 많은 비용이 발생합니다.
레거시 모더나이저는 복잡한 데이터베이스 프로그램(PL/SQL)을 AI가 분석하여 현대적인 Java 프로그램으로 자동 변환하고, 변환된 프로그램이 제대로 작동하는지 검증합니다. 데이터베이스에 특화된 PL/SQL만의 독특한 데이터 처리 방식을 Java의 표준적인 처리 방식으로 자동 변환하여, 클라우드 네이티브 환경에서도 안정적으로 동작하도록 지원합니다.
변환된 Java 코드는 자동으로 생성된 테스트 케이스로 원본 PL/SQL 코드와 동일한 비즈니스 로직을 수행하는지 검증되며, 프로그램의 품질과 향후 유지보수성과 확장성도 함께 확인됩니다. 이를 통해 기업은 기존 시스템을 안전하게 최신화하고, 클라우드 환경으로의 전환을 더욱 쉽게 진행할 수 있습니다.