0-1. 환경 설정 수행 메뉴 상세 분석
메뉴명
1. 환경 설정 수행 (setEnv.sh)
목적
OMA 프로젝트 실행에 필요한 환경 변수를 설정하여 프로젝트별 환경 변수 파일을 생성하고 모든 후속 작업의 기반 환경을 구성
실행 흐름
initOMA.sh
→ show_environment_menu()
→ execute_setenv()
→ $OMA_BASE_DIR/bin/setEnv.sh
상세 분석
1. execute_setenv() 함수
# 위치: initOMA.sh (169-185행)
# 실행파일: $OMA_BASE_DIR/bin/setEnv.sh
2. setEnv.sh (환경 설정 스크립트)
# 위치: $OMA_BASE_DIR/bin/setEnv.sh
# 주요 기능: 프로젝트별 환경 변수 파일 생성 및 설정
3. 주요 환경변수 매핑
# 기본 경로 설정
OMA_BASE_DIR # OMA 프로젝트 루트 디렉토리
# 설정 파일 경로
CONFIG_FILE # $OMA_BASE_DIR/config/oma.properties
4. 환경 설정 작업 단계
4.1 설정 파일 읽기
# 설정 파일: $OMA_BASE_DIR/config/oma.properties
# 섹션 구조:
# [COMMON] - 공통 설정
# [프로젝트명] - 프로젝트별 설정
4.2 프로젝트 선택 및 환경 변수 생성
- 프로젝트 목록 표시: oma.properties에서 정의된 프로젝트 목록 표시
- 프로젝트 선택: 사용자가 설정할 프로젝트 선택
- 환경 변수 파일 생성:
oma_env_[프로젝트명].sh
파일 생성
4.3 환경 변수 카테고리
카테고리 | 주요 변수 | 설명 |
---|---|---|
애플리케이션 관련 | APPLICATION_NAME APPLICATION_FOLDER JAVA_SOURCE_FOLDER | 애플리케이션 이름, 폴더 경로, Java 소스 코드 위치 |
데이터베이스 관련 | ORACLE_* PG* SOURCE_DBMS_TYPE TARGET_DBMS_TYPE | Oracle 연결 정보, PostgreSQL 연결 정보, 소스/타겟 DB 타입 |
경로 관련 | APP_TOOLS_FOLDER APP_LOGS_FOLDER TEST_FOLDER | 도구 폴더, 로그 폴더, 테스트 폴더 경로 |
변환 설정 | TRANSFORM_JNDI TRANSFORM_RELATED_CLASS | 변환 대상 JNDI 필터, 변환 대상 클래스 필터 |
결과 파일
환경 변수 파일
# 출력 경로: $OMA_BASE_DIR/oma_env_[프로젝트명].sh
# 파일 내용 예시:
export APPLICATION_NAME="프로젝트명"
export JAVA_SOURCE_FOLDER="/path/to/java/source"
export SOURCE_SQL_MAPPER_FOLDER="/path/to/mapper"
export APPLICATION_FOLDER="/path/to/application"
export ORACLE_HOST="oracle.host.com"
export PGHOST="postgres.host.com"
# ... 기타 환경 변수들
환경 변수 의존성
필수 환경변수
- 기본 경로:
OMA_BASE_DIR
생성되는 환경변수
- 애플리케이션:
APPLICATION_FOLDER
,JAVA_SOURCE_FOLDER
,SOURCE_SQL_MAPPER_FOLDER
- 데이터베이스:
ORACLE_*
,PG*
,SOURCE_DBMS_TYPE
,TARGET_DBMS_TYPE
- 도구 경로:
APP_TOOLS_FOLDER
,APP_LOGS_FOLDER
사전 조건
설정 파일 존재
$OMA_BASE_DIR/config/oma.properties
파일이 존재해야 함- 프로젝트별 설정 정보가 올바르게 정의되어 있어야 함
디렉토리 구조
- OMA 프로젝트 기본 디렉토리 구조가 구성되어 있어야 함
다음 단계
환경 설정이 완료되면 생성된 환경 변수 파일을 source하여 모든 OMA 기능을 사용할 수 있습니다:
source $OMA_BASE_DIR/oma_env_[프로젝트명].sh
주요 특징
- 대화형 설정: 사용자와 상호작용하며 프로젝트별 환경 설정
- 프로젝트별 관리: 여러 프로젝트를 독립적으로 관리 가능
- 재사용 가능: 한 번 생성된 환경 변수 파일은 재사용 가능
- 자동 경로 설정: PATH 환경 변수 자동 설정