1-1. 애플리케이션 분석 메뉴 상세 분석

메뉴명

1. 애플리케이션 분석

목적

Java 소스 코드 및 MyBatis Mapper 파일을 체계적으로 분석하여 Oracle에서 다른 DBMS로의 마이그레이션을 위한 기초 분석 데이터를 생성

실행 흐름

initOMA.sh 
  → execute_app_analysis() 
    → $OMA_BASE_DIR/bin/processAppAnalysis.sh 
      → q chat --trust-all-tools --no-interactive < $APP_TOOLS_FOLDER/appAnalysis.md

상세 분석

1. execute_app_analysis() 함수

# 위치: initOMA.sh (218-240행)
# 실행파일: $OMA_BASE_DIR/bin/processAppAnalysis.sh

2. processAppAnalysis.sh

# 위치: $OMA_BASE_DIR/bin/processAppAnalysis.sh
# 환경변수 확인: APPLICATION_NAME
# 실행명령: q chat --trust-all-tools --no-interactive < $APP_TOOLS_FOLDER/appAnalysis.md

3. appAnalysis.md (핵심 분석 파일)

# 위치: $APP_TOOLS_FOLDER/appAnalysis.md
# 환경변수: APP_TOOLS_FOLDER (애플리케이션 도구 폴더)

4. 주요 환경변수 매핑

# 입력 소스 경로
JAVA_SOURCE_FOLDER          # Java 소스 코드 루트 디렉토리
SOURCE_SQL_MAPPER_FOLDER    # MyBatis SQL Mapper XML 파일 디렉토리

# 출력 결과 경로  
APPLICATION_FOLDER          # 애플리케이션 분석 결과 저장 루트 디렉토리
APP_TOOLS_FOLDER           # OMA 애플리케이션 도구 및 스크립트 디렉토리

# 기타 설정
TARGET_DBMS_TYPE           # 타겟 DBMS 타입 (예: postgres, mysql)
TRANSFORM_JNDI             # 변환 대상 JNDI 식별자 (예: jdbc)
APPLICATION_NAME           # 프로젝트/애플리케이션 이름

5. 분석 작업 단계

5.1 환경 정보 확인 및 디렉토리 생성

# 출력 디렉토리 생성
mkdir -p $APPLICATION_FOLDER/discovery

5.2 애플리케이션 기본 정보 수집

  • 프로젝트 정보 식별: Maven/Gradle/Traditional Web 프로젝트 타입 분석
  • 기술 스택 분석: Spring Framework, Java 버전, 주요 라이브러리 분석
  • 디렉토리 구조 생성: 프로젝트 구조 분석 및 HTML 템플릿 형식으로 생성

5.3 MyBatis 상세 분석

  • 설정 파일 분석: mybatis-config.xml, sqlMapConfig.xml 파싱
  • 버전 및 의존성 분석: MyBatis 버전, MyBatis-Spring 통합 방식 확인
  • Mapper 스캔 설정: Mapper 인터페이스 및 XML 파일 매핑 분석

5.4 MyBatis Mapper 목록 추출 및 Oracle 패턴 분석

# 분석 대상: $SOURCE_SQL_MAPPER_FOLDER
  • Mapper 파일 목록 생성: XML 파일 및 인터페이스 파일 목록 추출
  • Oracle SQL 패턴 발견: Oracle 특화 함수, 문법, 데이터 타입 패턴 분석
  • 복잡도 분석: 변환 난이도별 SQL 패턴 분류 및 샘플 추출

5.5 DataSource 설정 정보 추출

  • 설정 파일 탐색: application.properties, context.xml 등에서 DataSource 설정 추출
  • JNDI 매핑: DataSource와 Mapper 간의 연결 관계 분석

5.6 Java 소스 Oracle 의존성 분석

# 분석 대상: $JAVA_SOURCE_FOLDER
  • Oracle JDBC 드라이버 사용: import oracle.* 패턴 검색
  • Oracle 특화 데이터 타입: CLOB, BLOB, XMLType 등 사용 현황
  • Oracle Sequences: 시퀀스 사용 패턴 분석
  • Oracle 특화 기능: PL/SQL 호출, Oracle 함수 사용 등

결과 파일

분석 결과 파일 (7개)

# 출력 경로: $APPLICATION_FOLDER/discovery/

1. ApplicationOverview.md      # 프로젝트 개요 및 기본 정보
2. TechnologyStack.md          # 기술 스택 및 의존성 정보  
3. DirectoryStructure.md       # 프로젝트 디렉토리 구조
4. MyBatisConfiguration.md     # MyBatis 설정 및 구성 정보
5. DataSourceConfiguration.md  # DataSource 설정 정보
6. OracleJavaDependencies.md   # Java 코드 내 Oracle 의존성
7. AnalysisSummary.md          # 전체 분석 결과 요약

CSV 데이터 파일 (5개)

# 출력 경로: $APPLICATION_FOLDER/discovery/

1. MapperFileList.csv          # Mapper 파일 목록 및 기본 정보
2. OracleSqlPatterns.csv       # 발견된 Oracle SQL 패턴 목록
3. CriticalPatterns.csv        # 고복잡도/중요 패턴 샘플
4. DataSourceMapping.csv       # DataSource와 Mapper 매핑 정보
5. OracleJavaUsage.csv         # Java 코드 내 Oracle 사용 현황

로그 파일

# 로그 경로: $APP_LOGS_FOLDER

환경 변수 의존성

  • 필수 환경변수: APPLICATION_NAME, JAVA_SOURCE_FOLDER, SOURCE_SQL_MAPPER_FOLDER
  • 출력 환경변수: APPLICATION_FOLDER, APP_TOOLS_FOLDER
  • 설정 환경변수: TARGET_DBMS_TYPE, TRANSFORM_JNDI

다음 단계

이 분석 단계는 후속 단계인 “1-2. 분석 보고서 작성 및 SQL변환 대상 추출”의 입력 데이터로 사용됩니다.


Back to top

Copyright © 2024 Amazon Web Services, Inc. or its affiliates. All Rights Reserved.