AWS 기술 블로그

Amazon Q Developer를 이용한 일신비츠온의 이기종 데이터베이스 마이그레이션 사례

이기종 데이터베이스(Heterogeneous database) 마이그레이션(Migration)은 기업 IT 환경에서 반복적으로 발생하는 중요한 과제입니다. 기술 환경의 변화, 라이선스 비용 절감, 클라우드 네이티브 전환 등의 요구사항으로 인해 많은 조직들이 상용 데이터베이스에서 오픈소스 기반으로의 전환을 고려하고 있으며, 이러한 현대화 추세는 가속화되고 있습니다.

하지만 실제 마이그레이션 작업은 단순한 데이터 이전을 넘어선 복잡한 과제입니다. 스키마 구조의 차이, 저장 프로시저 및 사용자 정의 함수의 언어 불일치, 성능 보장, 운영 중단 최소화 등의 기술적 문제로 인해 여전히 높은 난이도의 과제로 여겨지고 있습니다. 이러한 상황에서, 전기산업 유통 전문 기업 일신비츠온은 짧은 PoC 기간 동안 Amazon Q Developer를 활용해 기존 Microsoft SQL Server(MSSQL) 기반의 레거시 시스템을 Amazon RDS for PostgreSQL (Babelfish 포함)로의 이전을 검증하고 전환 마일스톤을 완성함으로써, 마이그레이션에 소요되는 시간과 비용을 획기적으로 절감했습니다.

본 글에서는 일신비츠온이 AWS 파트너사인 이랜드이노플과 협력해 진행한 마이그레이션 프로젝트의 배경과 과제, AI 기반 개발 도구를 활용한 전환 전략, 그리고 프로젝트에서 얻은 실질적인 성과와 시사점을 자세히 소개해 드리고자 합니다.

일신비츠온과 이랜드 이노플

(주)일신비츠온은 1988년 전기자재상을 시작으로, 현재는 조명, 전기자재, MRO(기업 소모성 자재) 등 50만가지 상품을 취급하는 전기산업계의 1등 유통기업으로 성장했습니다. 전국 6대 도시에 하루 배송이 가능한 물류 시스템을 구축하고, ICT 기반의 전자발주 시스템과 친환경 LED 생산라인을 통해 디지털화와 지속가능성을 동시에 추구하고 있습니다. 온프레미스 환경에서 운영하던 MSSQL 기반의 레거시 시스템이 유지보수 비용 증가, 확장성 한계, 라이선스 리스크 등의 문제에 직면하게 되면서 오픈소스 기반의 PostgreSQL로 클라우드 마이그레이션을 추진하게 되었습니다.

이랜드이노플은 이랜드 그룹의 IT 비즈니스를 운영하며 축적한 실전 노하우를 바탕으로, 중소, 중견 기업에 최적화된 컨설팅 · 운영 · 기술 지원을 제공하고 있습니다. 이번 프로젝트에서도 사전 진단부터 목표 아키텍처 설계, 전환·검증, 운영 이관까지의 전체 이행 과정을 체계적으로 리딩하였고, Babelfish 기반의 T-SQL 호환성 전략과 Amazon Q Developer 기반의 코드 자동화 분석 · 변환 기술을 접목하여 일신비츠온의 데이터베이스 현대화 프로젝트를 성공적으로 지원하였습니다.

마이그레이션 과제와 기존 접근법의 한계

이기종 데이터베이스 마이그레이션은 서로 다른 종류의 데이터베이스 엔진 간에 데이터, 스키마 및 비즈니스 로직(예: 저장 프로시저, 함수 등)을 이전하는 과정을 말합니다. 이는 단순히 데이터를 복제하는 것이 아니라, SQL 문법 차이를 고려한 코드 변환, 비즈니스 로직(저장 프로시저, 함수 등)의 재작성, 애플리케이션의 의도된 동작 유지(semantic equivalence 보장)와 같은 고난이도 작업이 요구됩니다. 특히, 수만 개의 복잡한 쿼리는 수작업 변환 시 시간 및 인력 부담이 크고 오류 위험이 높습니다.

대부분의 기존 마이그레이션 방식은 규칙 기반 시스템을 사용하여 데이터를 변환합니다. 이러한 방식은 단순한 시나리오에는 적용 가능하지만, 복잡한 마이그레이션 작업에는 자동 변환 성공률이 떨어져 유연성의 한계를 보입니다. 애플리케이션 코드 내 임베디드 SQL 처리 과제 역시 남아 있으며, 수만 건 이상의 저장 프로시저와 복잡한 쿼리를 변환할 때 시간과 리소스 부담이 큰 상황입니다.

기존에 사용되던 대표적인 AWS 마이그레이션 도구로는 AWS Schema Conversion Tool(SCT)과 AWS Database Migration Service(DMS)가 있습니다. SCT는 원본 데이터베이스의 스키마를 대상 데이터베이스 형식으로 변환합니다. DMS는 원본과 대상 데이터베이스 간의 데이터 복제를 통해 데이터 마이그레이션을 수행합니다. 또한, Amazon Aurora PostgreSQL에서 지원하는 Babelfish는 PostgreSQL에서 MSSQL 프로토콜 호환 기능을 제공하여 전환 작업에 사용됩니다.

SCT, DMS 등 기존의 마이그레이션 도구들은 스키마 변환과 코드 변환의 자동화를 지원하여 실제 일신비츠온 전체 데이터베이스 객체 중 약 89%가 자동 또는 최소한의 변경으로 전환이 가능했습니다. 나머지 11%는 복잡한 트랜잭션 로직, 또는 특수한 T-SQL 패턴 등으로 인해 수작업 변환이 불가피하였고, 이로 인해 프로젝트 기간의 장기화와 예산 초과 위험이 상존하였습니다. 수동 작업 과정에서의 오류 발생 가능성 역시 무시할 수 없는 변수였습니다.

Amazon Q Developer를 활용한 접근

기존 마이그레이션 도구의 한계를 극복하기 위해 Amazon Q Developer를 도입하였습니다. Amazon Q Developer는 AI 기반의 에이전틱(Agentic) 코딩 도구로, 단순한 코드 변환을 넘어 코드의 맥락을 이해하고, 반복적인 빌드와 테스트를 자동화하며, 실시간으로 개발자와 상호작용할 수 있는 환경을 제공합니다. Visual Studio Code, IntelliJ 등 개발자들이 일상적으로 사용하는 IDE에 통합되어 작동하므로, 별도의 환경 전환이나 복잡한 추가 학습 없이도 바로 실무에 적용할 수 있다는 점이 큰 장점입니다.

특히, Amazon Q Developer는 메타데이터와 쿼리 실행 맥락을 동시에 인식하여, 기존 SCT나 Babelfish에서 수작업으로 변환해야 했던 복잡한 쿼리와 저장 프로시저를 더욱 정확하게 자동 변환합니다. 코드 리뷰, 빌드, 테스트, 오류 분석과 수정까지의 반복적 에이젠틱 루프(Agentic Loop)를 지원함으로써, 개발자가 기존 코드의 의도를 일일이 파악하거나 수작업으로 변환하는 부담을 크게 경감할 수 있었습니다.

PoC 프로젝트 상세 구현

프로젝트 구성 및 환경

본 프로젝트는 두 가지 이기종 데이터베이스로의 마이그레이션을 실험적으로 검증하는 방식으로 설계되었습니다. 하나는 기존 MSSQL에서 Amazon RDS for PostgreSQL로의 마이그레이션이며, 다른 하나는 MSSQL에서 Aurora PostgreSQL with Babelfish로의 T-SQL 호환성 기반 전환을 검토하였습니다. 전체 시스템의 테이블 구조와 저장 객체는 SCT 및 DMS를 통해 자동 변환과 데이터 이관을 진행하였고, 복잡한 쿼리 및 저장 프로시저는 Babelfish와 Amazon Q Developer가 단계별로 연계하여 처리하였습니다.

<그림1. 프로젝트 아키텍처>

마이그레이션 실행 과정

일신비츠온의 데이터베이스 마이그레이션은 1)변환과 2)이관의 두 단계로 이뤄졌습니다.

1) 데이터베이스 변환

변환 단계에서는 AWS DMS Schema Conversion(DMS SC)을 활용하여 스키마를 대상 데이터베이스에 맞게 변환하였고, 약 89% 객체를 자동 변환하는데 성공했습니다. 변환에 실패한 항목들은 Amazon Q Developer를 통해 변환하여, 결과적으로 총 96%의 객체를 자동 변환하여 PostgreSQL 데이터베이스에 적용하였습니다.

데이터베이스 변환은 데이터베이스를 데이터(Storage Object)와 코드(Code Object)의 두 가지 요소로 구분하여 체계적으로 접근하였습니다. 데이터 객체에는 테이블, 인덱스, 스키마, 기본값, 제약조건 등이 포함되고, 코드 객체에는 트리거, 뷰, 저장 프로시저, 함수 등이 해당합니다.

DMS SC는 웹 기반 UI를 통해 기존 MSSQL의 테이블, 인덱스, 제약조건 등 스토리지 객체를 PostgreSQL 스키마로 자동 변환하고, 데이터 이관까지 연속적으로 처리할 수 있는 기능을 제공합니다. 프로젝트 초기에는 AWS SCT도 검토하였으나, 설치형 도구 특성과 대규모 객체 분석 시 복잡해지는 워크플로우로 인해, DMS SC를 중심으로 작업을 진행하였습니다.

DMS SC 분석 결과
데이터 객체(Storage Object)
– 대상: 테이블·인덱스·스키마·기본값·제약조건 등 1,769개
– 자동 변환율: 100%
코드 객체(Code Object)
– 대상: 트리거·뷰·저장 프로시저·함수 등 643개
– DMS SC 자동/최소 수정 가능: 371개(58%)
– 전체 코드 라인 기준 자동 변환율: 99.2%

DMS 분석 결과, 전체 1,769개의 데이터 객체는 100% 자동 변환 가능하였으며, 643개의 코드 객체 중 371개(약 58%)는 자동 또는 최소 수정만으로 변환 가능했습니다. 전체 코드 라인 기준으로는 약 99.2%가 PostgreSQL로 자동 변환 가능한 것으로 분석되었습니다.

<그림2. 데이터베이스 저장 객체 변환 통계>

<그림3. 데이터베이스 코드 객체 변환 통계>

DMS SC를 통해 스키마 변환을 일괄적으로 수행하였으며, 약 89%의 데이터베이스 객체를 자동 변환하였습니다. 변환이 어려운 객체에 대해서는 상세 권장사항(Detailed Recommendations)을 제공하여 상세 분석이 가능했습니다. 변환에 실패한 스키마 항목은 대부분 DateTime 기본값 변환(189건), Clustered Index 미지원(16건) 등 비교적 단순한 형태로 분류되었습니다. 예를 들어, DateTime 기본값 변환의 경우 PostgreSQL의 표준 문법에 맞춰 자동 생성된 쿼리로 쉽게 대체하였습니다.

2) 데이터베이스 이관
이관 단계에서는 DMS를 통해 대상 데이터베이스에 맞게 데이터를 옮겼습니다. 데이터 이관 성공률은 100%로, 앞선 단계에서 사전 변환된 규칙에 맞게 이관하였습니다.

변환 과정에서 발견된 주요 이슈와 해결책

자동 변환 실패 항목 분석

변환되지 않은 코드 객체에 대해서는 DMS Action Items 탭을 활용하여 구체적인 이슈와 권장 조치를 식별할 수 있었습니다. 전체적으로 약 17,794건의 변환 작업 항목이 식별되었으며, 이 중 274개의 코드 객체는 수작업이 필요한 항목으로 분류되었고, 약 161건은 복잡도 높은 Complex 수준의 작업으로 분석되었습니다.

가장 많은 변환 실패가 발생한 부분은 저장 프로시저, 함수와 코드 객체에서 발생했으며, 비표준 T-SQL 문법, 대소문자 구분, 트랜잭션 처리, 문자열 변환 등의 복합적인 원인이 작용했습니다. 이러한 이슈는 개별적으로 처리할 경우 막대한 수작업과 오류 가능성을 동반합니다. 따라서 반복적으로 나타나는 유형별 대표 케이스를 분석하고, 이를 자동으로 일괄 적용하는 전략이 요구되었습니다.

Amazon Q Developer를 통한 해결

기존 도구에서 반복적으로 발생하는 코드 객체의 변환 실패를 해결하기 위해 Amazon Q Developer를 Visual Studio Code 환경에 설치하여 실질적 변환 작업에 활용하였습니다. Amazon Q Developer는 파일 및 폴더 단위로 SQL 객체를 스캔하고, 각종 오류 및 변환 실패 케이스를 식별한 후, 사용자가 지정한 대상 폴더 전체에 대해 반복적으로 쿼리 수정 및 리팩토링을 요청할 수 있었습니다.

실제 구현에서는,

1) 코드 내 반복 패턴(예: 날짜 기본값 처리, 집계 함수 변환, 오류 처리 구문 등)이 다수 발견되어, 대표적 오류 유형(예: 대소문자 구분, 데이터타입 변경, 트랜잭션 문법 등)이 발생한 저장 프로시저와 함수 중 일부를 샘플로 선택하여 Amazon Q Developer의 Chat 기능을 통해 PostgreSQL 호환 쿼리로 자동 변환을 요청하였습니다.
2) Visual Studio Code의 SQL 파일 뷰를 활용해 변환 대상 쿼리를 Active file로 띄운 뒤, Q Developer로 변환 결과를 즉시 반영하고 빌드 및 테스트를 반복하였습니다.
3) Amazon Q Developer의 파일·폴더 단위 접근을 통해 전체 저장 프로시저와 함수 폴더에 대해 ‘특정 오류를 일괄 고쳐달라’는 식의 프롬프트를 제출함으로써, 짧은 기간 내에 대량 변환을 완료할 수 있었습니다.

프롬프트 예시

당신은 이기종 데이터베이스 마이그레이션 전문가입니다.
특히, Microsoft SQL Server(MSSQL) 저장 프로시저, 함수 코드를 PostgreSQL 문법으로 변환하는 업무를 수행합니다.
입력 오류 형식:
<issue>
[오류 코드] – Severity [심각도] – [오류 메시지]
</issue>
지침:
<issue> … </issue> 태그 사이에 있는 자동 변환 실패 원인(오류 메시지)을 기반으로, 해당 오류를 해결할 수 있는 PostgreSQL 쿼리 또는 함수로 변환합니다. 
-	차이 최소화: 기존 로직과 변수명 유지, CamelCase  snake_case 변환
-	호환성 확보: ISDATE, DATENAME 등 미지원 함수는 표준 PostgreSQL 대체 함수로 교체, 트랜잭션 문법 및 오류 처리 패턴은 PL/pgSQL 예외 처리(EXCEPTION)로 변환
@dbo.프로시저이름
MSSQL에서 작성된 저장 프로시저를 PostgreSQL으로 변환합니다.
<issue>7811 – Severity CRITICAL – PostgreSQL doesn’t support the ISDATE (VARCHAR) function.</issue>

<그림4. Amazon Q Developer 변환 예시>

Amazon Q Developer 적용 결과

  • 최종 자동 변환율: 96%(기존 89%에서 7% 향상), 코드 객체 164개 추가 변환됨
  • 수작업 필요 객체: 4%로 대폭 감소
  • 전체 분석-수정-테스트 사이클: 기존 수일에서 수시간 내 완료

체계적 프롬프트 엔지니어링 및 고급 변환 전략

Amazon Q Developer의 효과적 활용을 위해 AWS 가이드라인에 따른 구조화된 프롬프트 엔지니어링 방법론을 적용하였습니다. 단순한 변환 요청이 아닌, 비즈니스 컨텍스트, 기술적 제약사항, 구체적 요구사항, 그리고 원하는 출력 형식을 명시한 체계적 접근을 통해 변환 정확도를 크게 향상시킬 수 있었습니다.

프롬프트 구조화 템플릿:

[비즈니스 컨텍스트]
- 프로젝트: MSSQL → PostgreSQL 이기종 데이터베이스 마이그레이션
- 성능 요구사항: 기존 쿼리 성능 유지 또는 개선
- 호환성 요구사항: PostgreSQL 14+ 표준 문법 준수
- 규모: 643개 코드 객체, 17,794건 변환 작업 항목

[기술적 세부사항]
- 원본: Microsoft SQL Server T-SQL
- 대상: PostgreSQL PL/pgSQL
- 제약사항: 기존 비즈니스 로직 보존, 데이터 타입 호환성
- 환경: AWS RDS for PostgreSQL

[구체적 요청]
- 작업: [특정 오류 유형] 해결을 위한 코드 변환
- 예상 결과: 문법적으로 올바른 PostgreSQL 함수/프로시저
- 특별 고려사항: 트랜잭션 무결성, 예외 처리 로직 보존

[출력 형식]
- 형식: 실행 가능한 PostgreSQL 코드
- 세부 수준: 주석 포함, 변경사항 설명
- 추가 요구사항: 성능 최적화 권장사항

반복 패턴 기반 자동화 전략

프로젝트에서 발견된 주요 변환 실패 패턴을 분석하여 유형별 자동화 전략을 수립하였습니다:

1) 함수 호환성 문제 해결

– ISDATE() 함수 변환: MSSQL의 ISDATE() 함수를 PostgreSQL의 예외 처리 기반 검증 로직으로 변환

[MSSQL 원본]

/*
[7811 - Severity CRITICAL - PostgreSQL doesn't support the ISDATE(VARCHAR) function.]
*/
IF NOT ISDATE(@INPUT_DATE) = 1 
	BEGIN
		RAISERROR('날짜를 정확히 입력하세요. 예) 2015-01-01')
		RETURN
	END

[PostgreSQL 변환 결과]

BEGIN
    PERFORM input_date::DATE;
    EXCEPTION WHEN OTHERS THEN
	-- 유효하지 않은 날짜인 경우 처리
        RAISE EXCEPTION '날짜를 정확히 입력하세요. 예) 2015-01-01';
        RETURN;
END;

– DATENAME() 함수 대체: TO_CHAR() 함수와 적절한 포맷 문자열 조합으로 변환

[MSSQL 원본]

SELECT 
   LEFT(
      DATENAME(WEEKDAY, YEAR + '-' + MONTH + '-' + CONVERT(VARCHAR(2), DAY)
      ), 1
   )
FROM <TABLE>					 
WHERE YEAR = @INPUT_YEAR AND MONTH = @INPUT_MONTH AND DAY = @PARAM_DAY

[PostgreSQL 변환 결과]

SELECT 
 LEFT(
    TO_CHAR(
	   MAKE_DATE(year::int, month::int, day::int),
	   'Day'
	), 1
   )
FROM <TABLE>
WHERE year = "@INPUT_YEAR"::INTEGER AND month = "@INPUT_MONTH"::INTEGER AND day = "@PARAM_DAY"::INTEGER;

– ISNULL() 함수 처리: COALESCE() 함수로 표준화

[MSSQL 원본]

SELECT ISNULL(<COLUMN>,0)

[PostgreSQL 변환 결과]

SELECT COALESCE(<COLUMN>, 0)

2) 트랜잭션 및 예외 처리 변환

– TRY-CATCH 구문: PL/pgSQL의 EXCEPTION 블록으로 재구성

[MSSQL 원본]

BEGIN TRY

	-- 비즈니스 로직

END TRY
	
BEGIN CATCH

	-- 예외 처리

END CATCH

[PostgreSQL 변환 결과]

BEGIN
	
	/* 비즈니스 로직 */

	EXCEPTION
       	WHEN OTHERS THEN

		/* 예외 처리 */

END;

3) 데이터 타입 및 문법 변환

– IDENTITY 컬럼: SERIAL 또는 GENERATED ALWAYS AS IDENTITY로 변환
– 대소문자 구분: PostgreSQL의 대소문자 민감성에 맞춘 식별자 처리
– TOP 절: LIMIT 절로 변환
– 동적 SQL / EXECUTE 처리: MSSQL의 SP_EXECUTESQL과 문자열 결합 방식 대신 PL/pgSQL의 EXECUTE 구문과 USING 절을 활용, 한 행/한 값 반환 시 INTO 변수 사용, 여러 행 반환 시 refcursor 사용 가능

[MSSQL 원본]

BEGIN
	SET	@SQL += N'SELECT TOP 1 <COLUMNS> FROM <TABLE> WHERE <COLUMN1>=’ + @PARAM1 + ‘ AND <COLUMN2>=’ + @PARAM2 + ‘ AND <COLUMN3>=1’
	/*
	[7672 - Severity CRITICAL - PostgreSQL doesn't support EXECUTE statements that run a character string.]
	*/
	EXEC SP_EXECUTESQL @SQL
END

[PostgreSQL 변환 결과]

BEGIN
	sql := 'SELECT <COLUMNS> FROM <TABLE> WHERE <COLUMN1>= $1 AND <COLUMN2> = $2 AND <COLUMN3> = 1 LIMIT 1';
	EXECUTE sql USING "@PARAM1”, "@PARAM2”;
END;

고급 변환 기법

  • 컨텍스트 인식 변환: Amazon Q Developer는 단순한 문법 변환을 넘어 코드의 비즈니스 로직과 실행 컨텍스트를 이해하여 의미적으로 동등한(semantically equivalent) 코드를 생성합니다. 이는 기존 규칙 기반 도구들이 처리하지 못하는 복잡한 비즈니스 로직 변환에서 특히 유용했습니다.
  • 반복적 개선 루프: Amazon Q Developer의 에이전틱(Agentic) 특성을 활용하여 초기 변환 → 테스트 → 오류 분석 → 개선된 변환의 반복 사이클을 자동화하였습니다. 이를 통해 변환 품질을 점진적으로 향상시킬 수 있었습니다.
  • 스키마 컨텍스트 활용: DMS Schema Conversion의 분석 결과와 변환 패턴을 참조하여, Amazon Q Developer가 테이블 구조, 관계, 제약조건 등의 컨텍스트 정보를 이해하고 더욱 정확한 변환을 수행할 수 있었습니다.

Amazon Q Developer의 생성형 AI 기능을 통해 SQL 코드 분석부터 쿼리 변경, 마이그레이션 시 오류 진단과 해결에 이르기까지 전반적인 과정을 빠르고 효율적으로 수행할 수 있었습니다. Amazon Q Developer가 제공하는 자동화 도구와 실시간 가이드를 적극 활용하여 기존 DMS SC로 자동 또는 최소 수정에 실패했던 272개 객체 중 164개를 추가로 변환하여 자동 변환율이 기존 89%에서 96%로 7%p 향상되었습니다. 이와 함께 전체 분석-수정-테스트 사이클이 수일에서 수시간 수준으로 단축되어 마이그레이션 효율이 획기적으로 개선되었습니다.

성과 및 비즈니스 효과

Amazon Q Developer를 프로젝트에 도입하여 이기종 데이터베이스 마이그레이션 문제 해결에 도움이 되었고, 기존 도구 대비 7%p 높은 변환 성공률을 달성했습니다.

이번 프로젝트에서 Amazon Q Developer를 도입한 결과, 전체 마이그레이션 기간이 기존 방식 대비 60% 이상 단축되었고, 자동 변환 성공률은 95% 이상으로 크게 향상되었습니다. 개발자 입장에서는 반복적이고 오류가 발생하기 쉬운 수작업을 AI가 대체함으로써, 실제로는 핵심 로직 검토와 품질 관리에 집중할 수 있었습니다.

이외에도, Amazon Q Developer가 제공하는 실시간 코드 분석 · 리뷰 기능을 활용함으로써 전문 DBA나 특정 RDBMS 경험이 부족한 개발자도 마이그레이션 프로젝트에 참여할 수 있었으며, 기존 수작업 변환에서 흔히 발생하던 실수나 누락 또한 획기적으로 줄일 수 있었습니다. 또한 Babelfish 기반 마이그레이션 경로를 통해, 기존 T-SQL 호환성을 일정 부분 유지하면서도 새로운 오픈소스 환경으로의 전환을 실험적으로 검증할 수 있었습니다.

기술 선택 이유와 고려사항

Amazon Q Developer

AI 기반의 정확한 코드 변환, 코드 컨텍스트 인식, 그리고 AWS 기존 도구들과의 자연스러운 통합성을 고려하여 Amazon Q Developer를 사용하였습니다. 실제 개발 워크플로우 내에서 자동화된 코드 변환과 반복 테스트, 빌드 결과의 피드백 루프까지 실시간으로 지원하는 기능은, 전통적인 마이그레이션 도구들이 제공하지 못했던 경험을 가능하게 하였습니다.

Aurora PostgreSQL with Babelfish

Babelfish는 MSSQL에서 PostgreSQL로의 마이그레이션에서 스키마와 쿼리 호환성 면에서 전환 리스크를 최소화할 수 있는 환경을 제공합니다. 이를 통해 점진적 마이그레이션이나 운영 중단 없는 이전이 필요한 고객에게 적합한 솔루션임을 확인하였습니다. 다만, Babelfish라는 오픈소스 특성상 유지관리 측면에 대한 불확실함과 T-SQL과 PL/pgSQL을 혼용하여 사용함으로써 생기는 이슈에 대한 관리가 필요함을 확인하였습니다.

향후 계획 및 확장 방안

일신비츠온은 이번 프로젝트 결과를 바탕으로, 실제 프로덕션 환경에의 단계적 적용 및 데이터베이스 현대화 로드맵을 수립하였습니다. 1차에서는 기존 온프레미스 MSSQL 데이터베이스를 AWS 클라우드 상의 Amazon RDS for SQL Server로 우선적으로 마이그레이션할 계획입니다. 이를 통해, 기존 인프라 관리 비용과 운영 복잡성을 크게 줄이고, 클라우드 기반의 안정성과 확장성을 신속하게 확보할 수 있을 것으로 기대하고 있습니다. 2차에서는 비용 절감과 오픈소스 데이터베이스로의 전환을 위해 클라우드 상에서 운영되는 MSSQL RDS 인스턴스를 PostgreSQL RDS 또는Amazon Aurora PostgreSQL로의 전환을 검토할 예정입니다.

더불어, 본 프로젝트에서 입증된 Amazon Q Developer의 효율성과 반복적 자동화 역량을 타 부서 및 계열사의 데이터베이스 마이그레이션 프로젝트로 확장 적용할 방침입니다. 다양한 형태의 AI 기반 자동화와 실시간 코드 리뷰, 테스트 워크플로우의 도입을 통해, 개발자 리소스를 최소화하고 성공률을 극대화하는 체계를 마련하고자 합니다.

마지막으로, 전환 이후에도 AWS 마이그레이션 서비스 및 Amazon Q Developer와 같은 도구를 활용한 지속적인 쿼리 최적화, 비용 모니터링, 그리고 운영 자동화 전략을 병행하여, 데이터베이스 환경의 성능 및 효율성을 꾸준히 개선할 계획입니다. 이를 통해 일신비츠온은 단순한 마이그레이션을 넘어, 클라우드 기반 데이터 자산의 비즈니스 가치와 민첩성을 극대화할 수 있을 것으로 기대하고 있습니다.

이기종 데이터베이스 마이그레이션 모범 사례

본 프로젝트를 통해 도출된 Amazon Q Developer 기반 이기종 데이터베이스 마이그레이션의 핵심 모범 사례는 다음과 같습니다:

1) 단계적 접근법 (Phased Approach)

– 1단계: DMS Schema Conversion을 통한 기본 스키마 및 코드 객체 변환 (89% 자동화)
– 2단계: Amazon Q Developer를 활용한 복잡 객체 변환 (추가 7% 자동화)
– 3단계: 수작업 검증 및 최적화 (나머지 4%)

2) 프롬프트 최적화 전략

– 구체성 원칙: 모호한 요청 대신 구체적인 기술 요구사항 명시
– 컨텍스트 제공: 원본 코드, 오류 메시지, 비즈니스 로직 설명 포함
– 출력 형식 지정: 원하는 코드 형식, 주석 수준, 설명 범위 명시
– 반복 개선: 초기 결과를 바탕으로 점진적 프롬프트 개선

3) 품질 보증 체계

– 자동 테스트: 변환된 코드의 문법 검증 및 기본 실행 테스트
– 의미적 검증: 원본과 변환된 코드의 비즈니스 로직 동등성 확인
– 성능 검증: 쿼리 실행 계획 비교 및 성능 벤치마크
– 통합 테스트: 애플리케이션 레벨에서의 종합적 동작 검증

4) 위험 완화 전략

백업 및 롤백: 각 변환 단계별 백업 및 롤백 계획 수립
– 점진적 배포: 중요도가 낮은 객체부터 단계적 변환 적용
– 병렬 검증: 원본과 대상 시스템 병렬 운영을 통한 결과 비교
– 모니터링: 변환 후 성능 및 오류 발생 패턴 지속적 모니터링

결론 및 권장사항

1. AI 도구를 ‘보조 개발자’로 간주하세요.
Amazon Q Developer는 코드 이해와 리팩토링을 도와주지만, 최종 검증과 통합은 개발자의 몫입니다.

2. 사전 검증은 필수 단계입니다.
AWS Fleet Advisor, Babelfish Compass 등의 사전 검증은 전환 가능성을 수치화하고, ‘Go/No-Go’ 결정을 내릴 수 있는 기반을 제공합니다.

3. PoC는 반드시 운영 환경과 유사하게 구성하세요.
쿼리 패턴, 트래픽 수준, 인덱스 구조 등이 결과에 큰 영향을 미칩니다.

4. 체계적 프롬프트 엔지니어링을 적용하세요.
구조화된 프롬프트 템플릿과 반복적 개선 프로세스를 통해 변환 정확도를 극대화할 수 있습니다.

5. 패턴 기반 자동화를 고려하세요.
반복되는 변환 패턴을 식별하고, 이를 자동화함으로써 대규모 마이그레이션의 효율성을 크게 향상시킬 수 있습니다.

이번 일신비츠온 사례는 복잡하고 방대한 MSSQL 기반 시스템을 효율적으로 분석하고, Amazon Q Developer의 AI 기반 도구를 활용해 빠르게 프로젝트를 수행한 대표적인 성공 사례로써, 기존 규칙 기반 도구의 한계를 보완하고, 자동화 도구로서의 Q Developer의 가능성을 입증할 수 있었습니다.

Sanggil Lee

이상길

일신비츠온 전산팀에서 사내 통합관리시스템(ISVM)의 개발 및 유지보수 전반을 담당하고 있습니다. 전산팀의 중심에서 시스템 기획부터 개발, 운영 인프라의 안정적인 관리까지 다양한 IT 업무를 맡고 있으며, 시스템의 효율성을 높이고 사용자 중심의 서비스 환경을 구축하는 역할을 수행하고 있습니다.

Yeawon Na

나예원

이랜드이노플 클라우드팀에서 안전하고 효율적인 클라우드 환경을 설계, 구축하고 운영에 필요한 기술 지원을 제공하고 있습니다.

Nayeon Kim

김나연

김나연 Cloud Sales Rep.은 기업이 클라우드를 활용해 제품/서비스 혁신에 집중할 수 있도록 최적의 AWS 서비스와 아키텍처를 제안하고 고객의 디지털트랜스포메이션 여정을 지원합니다.

BK (Byeonghun) Kim

BK (Byeonghun) Kim

김병훈 Solutions Architect는 고객의 비즈니스 과제를 AWS 클라우드 기술로 해결하고 구현하는 데 도움을 드리고 있습니다. 특히 데이터베이스 최적화, 데이터 파이프라인 및 AI/ML 기반 분석 솔루션 설계에 전문성을 가지고 있으며, 고객의 디지털 전환과 현대화를 위해 검증된 AWS 서비스와 아키텍처 모범 사례를 제시하고 있습니다.