데이터베이스 마이그레이션은 늘 모두가 필요하다고 말하지만 누구도 선뜻 맡고 싶어 하지 않는 프로젝트였습니다. 도구는 파편화되어 있고, 실패를 허용할 여지는 없습니다. 팀은 추출 스크립트, 변환 도구, 배포 파이프라인, 검증 작업 등 데이터 마이그레이션 도구를 이어 붙이는 데 몇 주를 쓰고, 이후에도 몇 주 동안 제대로 했는지 확신하지 못합니다.
Snowflake는 Snowflake AIM으로 이러한 방식을 바꾸고자 했습니다. AIM은 Snowflake CoCo CLI의 스킬로 시작해 이후 CoCo Desktop에 도입되었습니다. 10월 20일, AIM 전용 인터페이스를 갖춘 Snowflake AIM 애플리케이션이 퍼블릭 프리뷰로 출시되었습니다.
AIM 애플리케이션은 마이그레이션 엔지니어에게 다음과 같은 새로운 이점을 제공합니다.
- 설정도 사전 지식도 필요 없음: 표준 CoCo CLI와 Snowflake CLI만 준비되어 있다면 애플리케이션을 열고 바로 시작할 수 있습니다. 설치해야 할 SCAI CLI도, 구성해야 할 IDE도, 외워야 할 터미널 명령도 없습니다. 종속성은 첫 실행 시 자동으로 설치됩니다. 애플리케이션 업데이트가 필요하면 애플리케이션 안에서 바로 업데이트를 클릭하면 됩니다.
- 전 과정에 걸친 단계별 안내: 마이그레이션의 올바른 순서를 미리 알고 있을 필요가 없습니다. 애플리케이션이 소스 데이터베이스 연결부터 Snowflake에서의 검증된 배포까지 모든 단계를 안내합니다.
- 마이그레이션 중심 UX: 관련 없는 IDE나 개발 기능에 방해받지 않습니다. 전체 인터페이스가 마이그레이션 라이프사이클을 중심으로 구성되어 있습니다. 필요한 것은 모두 보이고, 필요하지 않은 것은 방해가 되지 않습니다.
- 중단 후에도 유지되는 프로젝트 상태: 애플리케이션을 닫았다가 며칠 또는 몇 주 뒤에 다시 열어도 됩니다. 에이전트는 마지막으로 멈춘 지점에서 그대로 이어서 작업합니다. 다시 맥락을 파악하느라 시간을 쓰거나, 진행 상황을 잃거나, ‘어디까지 했더라?’ 하고 되짚을 필요가 없습니다.
- AI 수정 기능을 더한 결정론적 변환: 기본 변환에는 5년간 검증된 Snowflake의 결정론적 코드 변환 엔진이 제공하는 안정성을 활용하고, AI가 문제를 설명하고 수정안을 제안하며 테스트를 생성해 부족한 부분을 보완합니다. 모든 수정 사항은 재사용 가능한 규칙이 될 수 있으며, 각 규칙은 프로젝트 내 유사한 모든 오브젝트에 적용될 수 있어 작업이 진행될수록 마이그레이션이 더 지능적으로 개선됩니다. 그 결과 팀은 같은 패턴을 200번씩 반복해서 수정하는 일을 피할 수 있습니다.
- 자동화된 테스트 및 검증: 소스 측 기준값, 소스와 대상 간 비교, 자동화된 수정 루프를 제공합니다. 데이터 검증과 코드 테스트를 별도의 작업으로 처리하기 때문에 무엇을 확인하고 있는지 항상 명확하게 파악할 수 있습니다.
- 다중 사용자 협업: 여러 팀원이 중복 작업 없이 동일한 프로젝트에서 동시에 작업할 수 있습니다.
- CoCo의 모든 기능 활용: 고급 사용자는 사용자 지정 규칙, MCP 도구, 사용자 지정 스킬, 배포 웨이브 조정 등 에이전틱 플랫폼 전체 기능에 접근할 수 있습니다. 단계별 안내는 작업 속도를 높여 주는 길잡이일 뿐, 사용자의 선택을 제한하지 않습니다.
- 광범위한 플랫폼 지원: SQL Server, Redshift, Oracle, Teradata, PostgreSQL을 기본 지원하며, Snowflake AIM은 15개 이상의 SQL 방언과 SSIS 및 Informatica의 ETL 변환을 지원합니다.
마이그레이션 엔진은 그대로, 사용 경험은 새롭게
내부적으로는 핵심 엔진이 그대로 유지됩니다. 이 엔진은 동일한 결정론적 코드 변환, 종속성을 인식하는 배포 웨이브, 그리고 결정론적 검증과 AI 기반 검증을 모두 아우르는 고급 에이전틱 테스트 및 수정 루프를 구동해 마이그레이션 프로젝트가 진행될수록 더 지능적으로 개선되도록 합니다. 달라진 것은 그 엔진에 접근하는 방식입니다.
AIM 애플리케이션은 오직 마이그레이션 프로젝트를 위해 설계된 독립형 데스크톱 애플리케이션입니다. 애플리케이션을 열고 소스 데이터베이스를 지정하면, IDE를 구성하거나 터미널을 조작할 필요 없이 안내형 워크플로우가 각 단계를 이끌어 줍니다.
이미 CoCo CLI와 CoCo Desktop에서 작업하고 있다면 두 환경 모두 AIM을 활용하기에 여전히 뛰어난 인터페이스입니다. 이 애플리케이션은 마이그레이션 워크플로우에 초점을 맞춰 설계된 세 번째 선택지입니다. AIM 애플리케이션을 사용하면 마이그레이션 엔지니어는 AIM 에이전트로부터 어떤 지원을 받을 수 있는지 항상 명확히 알 수 있습니다. AIM 에이전트는 각 단계의 설정을 안내하고, 프로젝트 상태를 한눈에 보여 주며, AI를 보완하기 위해 사람의 판단이 필요한 지점도 정확히 표시합니다. 마이그레이션을 주도하는 엔지니어는 순서대로 정리된 모든 단계를 확인하고, 필요할 때 자유롭게 일시 중지하거나 재개할 수 있습니다. 작업 상태도 계속 추적됩니다. 마이그레이션이 본업이 아닌데 프로젝트를 넘겨받은 DBA나 데이터 엔지니어에게는 빈 프롬프트가 아니라 체계적인 구조가 제공됩니다. 마이그레이션 엔지니어는 기반 에이전틱 루프를 통해 규칙을 사용자 지정하고, 수정 패턴을 작성하며, 웨이브 순서를 바꾸고, 테스트 사례를 구축하는 등 전체 제어권을 유지합니다. 동시에 프로젝트 이해관계자는 로그 파일을 뒤지지 않고도 진행 상황, 오브젝트 수, 검증 결과를 즉시 확인할 수 있습니다.


AIM 애플리케이션의 주요 기능
이 애플리케이션은 Snowflake로의 마이그레이션을 여섯 단계로 안내합니다.
- 연결: 소스 데이터베이스에 대한 연결을 설정합니다.
- 초기화: 필요한 기본 구조를 갖춘 로컬 마이그레이션 프로젝트를 생성합니다.
- 등록: 소스에서 데이터 정의 언어(DDL) 구문과 저장 프로시저를 추출하거나 기존 .sql 파일을 가져옵니다.
- 변환: 결정론적 코드 변환 엔진을 통해 소스 SQL을 Snowflake SQL로 변환합니다.
- 평가: 전체 데이터 계보와 마이그레이션 계획을 담은 대화형 보고서를 생성하며, 여러 전문 보고서가 이를 뒷받침합니다.
- 마이그레이션: 코드를 배포하고, 데이터를 이동한 뒤, 결과를 검증합니다. 대부분의 작업은 이 단계에서 이루어집니다.
- AI 기반 테스트 및 반복 수정: 결정론적 처리로 해결할 수 없는 부분은 AI 지원 수정 기능이 처리합니다. AIM은 테스트 사례와 합성 데이터를 생성하고, 변환된 코드를 실행해 정확성을 확인하며, AI가 문제를 수정합니다.
마이그레이션 단계의 세부 작업
1~5단계는 본격적인 작업을 위한 기반을 마련합니다. 6단계는 네 가지 작업 흐름을 다루며, 각 작업 흐름은 고유한 로직, 검증, 수정 루프를 갖습니다. 에이전트는 이 모든 작업을 조율하되 서로 구분해서 관리합니다. 실패 방식이 각각 다를 수 있기 때문입니다.
검증 및 수정 루프는 더 깊이 살펴볼 필요가 있습니다. 별도로 검증해야 할 세 가지 영역
행이 올바르게 적재되었는지 확인하는 일은 저장 프로시저가 소스에서 반환하던 것과 같은 값을 반환하는지 확인하는 일과 다르며, 변환된 ETL 로직이 동일한 결과를 생성하는지 확인하는 일과도 다릅니다. 애플리케이션은 이들을 별도로 처리합니다.
데이터베이스 코드 테스트는 저장 프로시저, 함수, 뷰를 대상으로 합니다. 에이전트는 실제 쿼리 로그를 활용하거나 AI로 테스트 사례와 합성 데이터를 생성해 소스 측 기준값을 확보합니다. 실제 로그를 활용하려면 EXEC 또는 CALL 문의 CSV 로그가 있어야 합니다. 이러한 테스트 사례와 합성 데이터를 생성할 때는 전문화된 하위 에이전트가 비즈니스 로직 경로, 데이터 기반 시나리오, NULL, 경계값, 데이터 타입의 한계와 같은 엣지 케이스를 다룹니다. 그런 다음 변환된 코드를 Snowflake에서 실행하고, 출력값을 기준값과 비교합니다. 실패가 발생하면 수정 루프가 시작됩니다. 근본 원인을 진단하고 변환된 SQL을 수정한 뒤 재배포와 재테스트를 수행합니다. 이 일련의 과정은 출력값이 일치하거나 사용자가 다음 단계로 진행하기로 결정할 때까지 반복됩니다.
ETL 테스트는 변환된 dbt 모델 또는 저장 프로시저가 원본 SSIS 패키지나 Informatica 워크플로우와 동등한 결과를 생성하는지 확인합니다. 에이전트는 각 ETL 코드 단위를 맡아 단계별 안정화 엔진으로 처리하고, 출력이 올바르게 나올 때까지 수정과 처리를 반복합니다. ETL 변환은 서로 연결되어 이어지므로, 에이전트는 모델 간 종속성을 추적해 하위 단위를 다시 테스트하기 전에 상위 수정 사항이 먼저 전파되도록 합니다.

데이터베이스 DDL 배포
테이블, 뷰, 저장 프로시저, 함수, 시퀀스는 종속성 순서에 따라 웨이브 단위로 배포됩니다. 평가 단계에서 이미 오브젝트 간 관계를 매핑하고 그룹을 나누어, 다른 오브젝트가 의존하는 선행 오브젝트부터 배포되도록 합니다. 각 오브젝트는 개별적으로 배포되며, 실패는 즉시 드러납니다. 뷰가 의존하는 함수가 테스트를 통과하지 못해 컴파일되지 않는 경우, 에이전트는 해당 뷰를 보류했다가 종속성이 해결되면 다시 시도합니다. 즉, 순환 종속성은 금요일 밤에 수작업으로 풀어야 하는 문제가 아니라 평가 단계에서 정리됩니다.

ETL 파이프라인 마이그레이션
SSIS 패키지와 Informatica 워크플로우는 운영 방식과 기존 툴체인에 따라 Snowflake의 dbt 프로젝트 또는 SQL 저장 프로시저 중 하나의 Snowflake 네이티브 대상으로 변환됩니다. Snowflake AIM은 제어 흐름, 데이터 흐름, 변환 로직을 구문 분석한 뒤 선택한 대상에 맞는 동등한 결과물을 생성합니다. 결정론적 변환 단계에서 변환을 완전히 처리하지 못하는 경우, AI 지원 수정 기능이 변환하지 못한 부분을 설명하고 수정안을 제시한 뒤 대화형으로 적용합니다. 변환된 ETL 단위는 이후 별도의 안정화 및 테스트 과정을 거칩니다.
보고서의 데이터 연결 대상 변경
Power BI 보고서를 시작으로 다운스트림 분석 자산의 데이터 연결 대상을 Snowflake로 변경할 수 있습니다. 에이전트는 연결 문자열, 데이터 소스 매핑, 마이그레이션된 데이터에서 각 보고서가 계속 올바르게 렌더링되는지에 대한 검증을 처리합니다. 비즈니스 사용자가 매일 아침 여는 보고서가 여전히 기존 시스템을 쿼리한다면, 데이터베이스와 파이프라인을 옮기는 것만으로는 한계가 있습니다.
과거 데이터 마이그레이션
데이터 이동은 오케스트레이터와 워커 아키텍처에서 실행됩니다. 오케스트레이터는 워크플로우 메타데이터를 관리하고 상태를 추적하며, 워커는 소스와 Snowflake 양쪽에 연결해 데이터를 이동합니다. 워커는 로컬 또는 Snowpark Container Services에서 실행되고 대용량 처리를 위해 수평 확장됩니다.
각 실행에서는 세 가지 수준의 검증이 자동으로 수행됩니다. 스키마 비교(L1)는 Snowflake의 테이블 구조가 소스와 일치하는지 확인합니다. 메트릭 비교(L2)는 행 수, 합계, 핵심 집계를 확인합니다. 행 수준 비교(L3)는 선택 사항이며, 정확한 동등성이 중요한 테이블에 사용됩니다.
파티션 키 선택, 시간 간격 데이터 처리 및 기타 플랫폼별 데이터 타입 매핑은 에이전트를 통해 구성됩니다. 에이전트는 소스에 맞는 주요 옵션을 안내하고 구성을 생성합니다.

장기 마이그레이션 프로젝트를 위한 설계
프로젝트를 시작한 뒤 수 주 동안 계속 진행할 수 있으며, 여러 사용자가 마이그레이션 상태를 공유하면서 함께 작업할 수 있습니다. 에이전트는 프로젝트 상태를 읽고, 추출, 변환, 배포 기록을 그대로 보존한 채 중단한 지점에서 정확히 다시 시작합니다. 수백 개의 오브젝트를 수 주에 걸쳐 마이그레이션할 때, 이러한 기능은 포스트잇에 의존하는 대신 프로젝트를 체계적으로 관리할 수 있게 해 줍니다.
여러 사람이 같은 프로젝트에서 동시에 작업할 수 있습니다. 에이전트는 Git 리포지토리 통합을 사용해 각 사용자가 맡은 코드 단위를 추적하므로, 작업이 중복되지 않고 누락되는 항목도 없습니다.
지원 플랫폼
| 주요 기능 | 플랫폼 |
|---|---|
| 직접 연결 및 엔드투엔드 마이그레이션 | SQL Server, Amazon Redshift, Oracle, Teradata, PostgreSQL |
| Snowflake AIM을 통한 결정론적 코드 변환 | Azure Synapse, Netezza, Vertica, Google BigQuery, Databricks SQL, Apache Spark™ SQL, IBM DB2, Hive, Greenplum, Sybase IQ |
| ETL 마이그레이션 | SSIS 패키지 및 Informatica 워크플로우를 dbt 프로젝트 또는 SQL 저장 프로시저로 변환 |
| BI 데이터 연결 대상 변경 | Power BI |
새로운 소스 커넥터, 더 심층적인 ETL 지원, 더 폭넓은 BI 통합으로 지원 범위는 계속 확대되고 있습니다. 아직 플랫폼이 목록에 없다면 최신 설명서를 확인하세요.
저희는 처음부터 자율성과 속도를 최우선으로 삼았습니다. 조직은 더 이상 전문 엔지니어링 인력을 소모하거나 예상치 못한 복잡한 문제로 지연되는 데이터 마이그레이션을 감당할 수 없습니다. 그래서 팀이 위험이나 번거로움 없이 데이터를 곧바로 실무에 활용할 수 있도록, 직관적인 셀프서비스 환경을 구축했습니다.
Venky Ganti
Senior Director for Migration Product Management, Snowflake
데이터 마이그레이션의 다음 단계
마이그레이션은 오랫동안 현대화에 따르는 부담이었습니다. 몇 달에 걸쳐 숙련된 엔지니어의 시간과 역량을 소모하면서도 확신보다는 불안을 키우는 고된 작업이었습니다. 시작하려면 전문성이 필요했고, 검증 결과는 결국 믿고 넘어가야 했습니다.
이 애플리케이션은 그런 운영 방식에서 벗어나기 위한 중요한 진전입니다. 체계적인 절차와 자동화, 작업 맥락을 유지하는 지능형 기능이 수작업 조율의 상당 부분을 대체합니다. 그 결과 Snowflake에서 간소화된 데이터 기반을 더 빠르게 마련할 수 있습니다.
또한 더 명확한 역할 분담을 제시합니다. 이 애플리케이션은 가장 일반적인 마이그레이션을 엔드투엔드로 처리하도록 설계되어, Snowflake 파트너가 전문성이 가장 필요한 영역에 집중할 수 있게 합니다. 플랫폼 전환에 따른 변화 관리, 복잡한 사용자 지정 로직과 특수한 소스 토폴로지, 엄격한 규제 제약이 얽힌 고난도 환경 등이 여기에 해당합니다.
워크로드가 테이블, 뷰, 저장 프로시저, 함수, ETL 파이프라인 또는 다운스트림 BI 보고서 중 무엇이든, AIM이 조율을 맡아 팀은 실제 판단이 필요한 영역에 판단력을 집중할 수 있습니다.
시작하기
마이그레이션은 여전히 올바르게 수행되어야 합니다. 이제 마이그레이션을 올바르게 수행할 수 있도록 전용 애플리케이션이 마련되었습니다. Snowflake AIM 애플리케이션을 다운로드하고 소스 데이터베이스를 지정하세요. 에이전트가 종속성을 설치하고 프로젝트를 설정한 뒤 각 단계를 안내합니다. 질문이 있거나 지원이 필요한 경우 aim-support@snowflake.com로 문의하세요.
계획 수립에 도움이 필요하신가요? 기반을 마련하고 실행 가능한 마이그레이션 계획을 개발할 수 있도록 Snowflake 팀과 파트너가 함께 지원하는 Snowflake LiftOff 마이그레이션 워크숍을 살펴보세요.

