🧩 컴포넌트 설계 및 로직¶
학습 안내
워크플로우의 최소 구성 단위인 컴포넌트를 설계할 때 고려해야 할 핵심 로직(3-Step Logic)과 작성 표준을 학습합니다.
1. 컴포넌트 설계 기본 원칙¶
MDRM의 컴포넌트는 단순한 명령 실행을 넘어, '예외 상황을 스스로 판단'할 수 있도록 설계되어야 합니다. 이를 위해 모든 자동화 컴포넌트는 다음 3단계 로직을 따릅니다.
3-Step Logic¶
- 사전 검증 (Pre-check)
- 작업을 수행할 수 있는 상태인지 확인합니다.
- 예: 서비스 기동 전, 이미 해당 프로세스가 실행 중인지 확인.
- 작업 실행 (Execute)
- 실제 명령을 수행합니다.
- 예:
start_app.sh실행.
- 사후 확인 (Post-check)
- 작업 결과가 목표한 대로 달성되었는지 검증합니다.
- 예: 서비스 기동 명령 후, 실제 Listen Port가 오픈되었는지 확인.
2. 주요 컴포넌트 유형¶
| 유형 | 이름 | 설명 | 활용 예시 |
|---|---|---|---|
| 기본 | Script | 쉘 스크립트나 커맨드를 직접 실행 | 환경변수 고정, 로그 백업 |
| 비교 | Check Process | 특정 PID나 명칭의 프로세스 상주 여부 확인 | WAS 기동 상태 체크 |
| 네트워크 | Check Port | 특정 포트(Port)의 Listen 상태 확인 | DB 리스너 기동 확인 |
| 제어 | Wait | 다음 단계 진행 전 일정 시간 대기 | 서비스 안정화 시간 확보 |
| 연결 | Workflow Link | 다른 워크플로우를 호출하여 실행 | 업무 그룹 구성 |
3. 실무 작성 가이드¶
3.1 성공/실패 조건 설정 (Return Code)¶
컴포넌트는 실행 결과 내의 성공/실패 키워드를 확인하여, 필수적으로 성공 시 0, 실패 시 0 이외의 값(대부분 1)을 리턴코드로 반환하도록 스크립트를 작성해야 합니다.
- 스크립트 작성 원칙: 결과 텍스트(로그)를 파싱하여
if문으로 분기 처리 후 명시적exit코드 반환 - 성공 리턴코드:
0 - 실패 리턴코드:
1(또는 0 이외의 값)
3.2 타임아웃(Timeout) 관리¶
무한 대기를 방지하기 위해 모든 컴포넌트에는 적절한 타임아웃 설정이 필수입니다.
- 일반 스크립트: 30~60초
- 대용량 DB 기동: 300~600초 (로그 재생 시간 고려)