콘텐츠로 이동

🧩 컴포넌트 설계 및 로직

학습 안내

워크플로우의 최소 구성 단위인 컴포넌트를 설계할 때 고려해야 할 핵심 로직(3-Step Logic)과 작성 표준을 학습합니다.


1. 컴포넌트 설계 기본 원칙

MDRM의 컴포넌트는 단순한 명령 실행을 넘어, '예외 상황을 스스로 판단'할 수 있도록 설계되어야 합니다. 이를 위해 모든 자동화 컴포넌트는 다음 3단계 로직을 따릅니다.

3-Step Logic

  1. 사전 검증 (Pre-check)
    • 작업을 수행할 수 있는 상태인지 확인합니다.
    • 예: 서비스 기동 전, 이미 해당 프로세스가 실행 중인지 확인.
  2. 작업 실행 (Execute)
    • 실제 명령을 수행합니다.
    • 예: start_app.sh 실행.
  3. 사후 확인 (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초 (로그 재생 시간 고려)