# tb_kb_document

doc_id: KB-001
category: JAVA
title: Java OutOfMemoryError — GC overhead limit exceeded
cause: 힙 영역 부족으로 GC가 전체 시간의 98% 이상을 소비. 메모리 누수(Memory Leak), 세션 객체 미반환, 캐시 미제한 등이 주요 원인.
commands:
  jps -l
  jmap -heap <PID>
  top -H -p <PID>

tags: oom outofmemory gc heap java jvm was 메모리누수 재기동
sr_type: RESTART
updated_at: 2026-05-29 09:25:01
created_at: 2026-05-29 09:25:01
symptoms:
  WAS 로그에 java.lang.OutOfMemoryError: GC overhead limit exceeded 발생. 힙 메모리 사용률 95% 이상 지속. 응답 지연 및 504 오류 동반.

solution:
  1. WAS 재기동으로 임시 복구
  2. 힙 덤프 분석: jmap -dump:format=b,file=heap.hprof <PID>
  3. Eclipse MAT 또는 VisualVM으로 누수 객체 식별
  4. JVM 옵션 조정: -Xmx 증가, -XX:+UseG1GC 적용
  5. 세션 타임아웃·캐시 정책 점검


doc_id: KB-002
category: MIDDLEWARE
title: Connection Pool Exhausted — JDBC 커넥션 풀 고갈
cause: DB 커넥션을 반환하지 않는 코드(close() 미호출), 트랜잭션 장시간 점유, 또는 pool 최대값 과소 설정.
commands:
  # Tomcat JDBC pool 상태
  curl http://localhost:8080/manager/jmxproxy/?get=Catalina:type=DataSource

tags: connection pool jdbc hikari dbcp exhausted 커넥션풀 db 데이터베이스
sr_type: LOG
updated_at: 2026-05-29 09:25:01
created_at: 2026-05-29 09:25:01
symptoms:
  로그에 Connection pool exhausted (200/200) 또는 Unable to acquire JDBC Connection 오류. DB 응답은 정상이나 연결 대기 타임아웃.

solution:
  1. 현재 활성 커넥션 확인: SELECT count(*) FROM v$session WHERE status='ACTIVE'
  2. WAS 재기동으로 임시 복구
  3. connection-timeout, max-pool-size 설정 조정
  4. HikariCP 누수 감지: leakDetectionThreshold=30000 설정
  5. 애플리케이션 코드에서 try-with-resources 사용 여부 점검


doc_id: KB-003
category: DB
title: ORA-01555 — Snapshot too old (Oracle 스냅샷 오류)
tags: ora-01555 snapshot oracle undo rollback db 오라클 스냅샷
sr_type: LOG
updated_at: 2026-05-29 09:25:01
created_at: 2026-05-29 09:25:01
symptoms:
  ORA-01555: snapshot too old: rollback segment number with name "" too small. 장시간 실행 쿼리 또는 배치 작업 도중 발생.

cause:
  쿼리 실행 중 UNDO 세그먼트가 다른 트랜잭션에 의해 덮어씌워져 일관된 읽기(Read Consistency)를 보장할 수 없는 상태. UNDO_RETENTION 설정이 쿼리 실행 시간보다 짧은 경우 빈번 발생.

solution:
  1. UNDO_RETENTION 파라미터 증가
     ALTER SYSTEM SET UNDO_RETENTION=3600;
  2. 장시간 쿼리 최적화 (실행계획 분석)
  3. AUTOEXTEND ON 설정으로 UNDO 테이블스페이스 자동 확장
  4. 대용량 배치 작업은 청크 단위로 COMMIT 처리

commands:
  -- UNDO 설정 확인
  SELECT name, value FROM v$parameter WHERE name LIKE 'undo%';
  -- 활성 트랜잭션 확인
  SELECT s.sid, s.sql_id, s.status FROM v$session s WHERE s.status='ACTIVE';


doc_id: KB-004
category: SECURITY
title: SSL/TLS 인증서 만료 — 갱신 절차
cause: SSL/TLS 인증서 유효 기간 만료 또는 임박.
tags: ssl tls 인증서 certificate 만료 갱신 https nginx 보안
sr_type: INQUIRY
updated_at: 2026-05-29 09:25:01
created_at: 2026-05-29 09:25:01
symptoms:
  브라우저에서 'NET::ERR_CERT_DATE_INVALID' 오류. curl 요청 시 SSL certificate problem: certificate has expired. 인증서 만료 D-30, D-14 모니터링 알림.

solution:
  1. 현재 인증서 확인:
     openssl s_client -connect hostname:443 </dev/null 2>/dev/null | openssl x509 -noout -dates
  2. 새 인증서 발급 (CA 또는 Let's Encrypt)
  3. Nginx 설정 갱신:
     ssl_certificate     /etc/ssl/certs/new.crt;
     ssl_certificate_key /etc/ssl/private/new.key;
  4. nginx -t && systemctl reload nginx
  5. 갱신 후 브라우저에서 인증서 유효성 재확인

commands:
  openssl s_client -connect HOST:443 </dev/null 2>/dev/null | openssl x509 -noout -dates
  openssl x509 -in cert.crt -noout -text | grep -A2 Validity


doc_id: KB-005
category: WEB
title: Nginx 502 Bad Gateway — WAS 연결 실패
cause: Nginx upstream(WAS/Tomcat)이 응답하지 않는 상태. WAS 프로세스 다운, 포트 불일치, 또는 WAS 과부하로 인한 타임아웃.
tags: nginx 502 upstream gateway was tomcat 연결실패 proxy 웹서버
sr_type: RESTART
updated_at: 2026-05-29 09:25:01
created_at: 2026-05-29 09:25:01
symptoms:
  브라우저 또는 API 클라이언트에서 502 Bad Gateway 응답. Nginx 에러 로그: connect() failed (111: Connection refused) 또는 upstream timed out.

solution:
  1. WAS 프로세스 확인: systemctl status tomcat9
  2. WAS 포트 리슨 확인: ss -tlnp | grep 8080
  3. WAS 재기동: systemctl restart tomcat9
  4. Nginx upstream 설정 확인: /etc/nginx/conf.d/*.conf
  5. proxy_connect_timeout, proxy_read_timeout 조정
  6. WAS 힙 메모리 및 스레드 풀 상태 점검

commands:
  systemctl status tomcat9
  ss -tlnp | grep 8080
  tail -n 100 /var/log/nginx/error.log | grep 'upstream'


doc_id: KB-006
category: OS
title: 디스크 용량 부족 — 로그 파일 정리
symptoms: df -h 결과 /app 또는 /var 파티션 사용률 90% 이상. WAS 로그 파일 무제한 증가. 신규 파일 쓰기 실패 오류.
cause: 로그 로테이션 미설정, 오래된 백업 파일 미삭제, 힙 덤프 파일 누적 등으로 디스크 용량 초과.
tags: disk 디스크 용량 storage 로그 logrotate 파일시스템 파티션 os 리눅스
sr_type: INQUIRY
updated_at: 2026-05-29 09:25:02
created_at: 2026-05-29 09:25:02
solution:
  1. 대용량 파일 파악: du -sh /app/logs/* | sort -rh | head -20
  2. 오래된 로그 삭제: find /app/logs -name '*.log' -mtime +30 -delete
  3. 힙 덤프 파일 제거: find / -name '*.hprof' -delete
  4. logrotate 설정: /etc/logrotate.d/ 에 rotate 정책 추가
  5. 디스크 사용량 모니터링 임계치 설정 (80% 경보)

commands:
  df -h
  du -sh /app/logs/* | sort -rh | head -20
  find /app/logs -name '*.log' -mtime +30 -exec ls -lh {} \;


doc_id: KB-007
category: JAVA
title: Tomcat 클래스 배포 후 재기동 없이 반영 안 됨
symptoms: SFTP로 class 파일 전송 후에도 변경 사항이 반영되지 않음. 이전 로직으로 계속 동작.
cause: Tomcat이 클래스 파일을 JVM 메모리에 캐시 중. Hot deploy 미지원 또는 reloadable=false 설정.
tags: tomcat 배포 deploy class 재기동 restart 캐시 was 클래스파일
sr_type: DEPLOY
updated_at: 2026-05-29 09:25:02
created_at: 2026-05-29 09:25:02
solution:
  1. Tomcat 롤링 재기동 (서비스 중단 최소화):
     systemctl stop tomcat9 && sleep 3 && systemctl start tomcat9
  2. work 디렉토리 초기화:
     rm -rf $CATALINA_HOME/work/Catalina/
  3. 무중단 배포 구성: 2대 이상 WAS를 순차 재기동
  4. 향후: Spring DevTools 또는 JRebel 도입 검토

commands:
  systemctl stop tomcat9
  rm -rf /opt/tomcat/work/Catalina/localhost/
  systemctl start tomcat9
  curl -sf http://localhost:8080/health | python3 -m json.tool


doc_id: KB-008
category: OS
title: Linux OOM Killer — 프로세스 강제 종료
symptoms: dmesg 로그에 'Out of memory: Kill process' 메시지. WAS 또는 DB 프로세스가 이유 없이 종료됨.
cause: 물리 메모리 + 스왑 공간 고갈 시 커널의 OOM Killer가 가장 많은 메모리를 사용하는 프로세스를 강제 종료.
commands:
  dmesg | grep -i 'oom\|killed' | tail -20
  free -h
  ps aux --sort=-%mem | head -10

tags: oom killer linux 메모리 memory 커널 프로세스 종료 swap 스왑
sr_type: RESTART
updated_at: 2026-05-29 09:25:02
created_at: 2026-05-29 09:25:02
solution:
  1. OOM 발생 확인: dmesg | grep -i 'oom\|killed'
  2. 메모리 사용 현황: free -h && cat /proc/meminfo
  3. 스왑 공간 추가 (임시 방편):
     dd if=/dev/zero of=/swapfile bs=1G count=4
     chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile
  4. 근본 해결: JVM 힙 크기 조정 또는 서버 메모리 증설
  5. oom_score_adj 조정으로 주요 프로세스 보호


# tb_pm_template

template_name: DB 서버 점검
server_role: DB
category: DB
item_title: 장기 잠금(Lock) 세션 확인
item_desc: 5분 이상 대기 중인 잠금 세션 없음
expected_value: 0 (없음)
created_at: 2026-05-29 09:25:02
check_command:
  psql -c "SELECT count(*) FROM pg_locks l JOIN pg_stat_activity a ON l.pid=a.pid WHERE now()-a.query_start > '5 minutes';" 2>/dev/null


# tb_sr_request

sr_id: SR-20260529-F5C9BA
sr_type: OTHER
title: Auto RCA Test SR
status: RECEIVED
priority: HIGH
requested_by: admin
assigned_to: pm1
created_at: 2026-05-29 09:33:07
updated_at: 2026-05-29 18:59:59.180140
sla_deadline: 2026-05-29 15:33:07.000000
escalated_at: 2026-05-29 18:59:59.180140
escalated_to: pm1
ai_suggestion:
  {"priority": "MEDIUM", "category": "OTHER", "team": "HELPDESK", "urgency_reason": "키워드 규칙 기반 분류 (LLM 미사용)", "keywords": [], "confidence": 0.3}


# tb_shell_script

script_name: check_infra_health
category: MONITORING
sub_category: HEALTH_CHECK
target_layer: ALL
os_type: LINUX
description: WEB/WAS/DB 서버 Ping 상태 및 서비스 포트 일괄 점검. 서비스 장애 1차 확인용.
sample_output: {"timestamp":"2025-01-15T09:00:00Z","results":[{"server":"WAS","ping":"UP","port_status":"OPEN"}]}
author: system
version: 1.0.0
tags: health check ping port 헬스체크 점검
created_at: 2026-05-29 09:25:02
updated_at: 2026-05-29 09:25:02
script_body:
  #!/bin/bash
  # 사용법: ./check_infra_health.sh [WEB|WAS|DB]
  # 출력: JSON {"timestamp":"...","results":[...]}
  TARGET=${1:-ALL}

  check_node() {
      local name=$1 ip=$2 port=$3
      ping -c 1 -W 1 "${ip}" > /dev/null 2>&1 && ping_s="UP" || ping_s="DOWN"
      timeout 2 bash -c "cat < /dev/null > /dev/tcp/${ip}/${port}" 2>/dev/null && port_s="OPEN" || port_s="CLOSED"
      echo "{"server":"${name}","ping":"${ping_s}","port_status":"${port_s}"}"
  }

  echo "{"timestamp":"$(date -u +%Y-%m-%dT%H:%M:%SZ)","target":"${TARGET}"}"


script_name: manage_service
category: SM
sub_category: SERVICE_CONTROL
target_layer: WAS
os_type: LINUX
description: WAS(Tomcat/JBoss 등) 서비스 상태 확인·기동·중지·재기동. 롤링 재기동 전 단일 노드 제어용.
author: system
version: 1.0.0
tags: service 서비스 tomcat nginx restart 재기동 start stop
created_at: 2026-05-29 09:25:02
updated_at: 2026-05-29 09:25:02
script_body:
  #!/bin/bash
  # 사용법: ./manage_service.sh [WEB|WAS|DB] [status|start|stop|restart]
  TARGET=$1; ACTION=$2
  declare -A SERVICE_NAMES=([WEB]="nginx" [WAS]="tomcat9" [DB]="postgresql")
  SVC=${SERVICE_NAMES[$TARGET]:-$TARGET}

  case ${ACTION} in
    status)
      RAW=$(systemctl is-active ${SVC} 2>/dev/null)
      [ "$RAW" = "active" ] && STATUS="RUNNING" || STATUS="STOPPED"
      echo "{"server":"${TARGET}","service":"${SVC}","status":"${STATUS}"}"
      ;;
    start|stop|restart)
      sudo systemctl ${ACTION} ${SVC} 2>&1
      [ $? -eq 0 ] && RESULT="SUCCESS" || RESULT="FAILED"
      echo "{"server":"${TARGET}","service":"${SVC}","result":"${RESULT}","action":"${ACTION}"}"
      ;;
    *)
      echo "{"error":"알 수 없는 액션: ${ACTION}"}"
      ;;
  esac

parameters:
  [{"name":"TARGET","desc":"대상 레이어 (WEB|WAS|DB)","required":true},{"name":"ACTION","desc":"동작 (status|start|stop|restart)","required":true}]


script_name: monitor_resources
category: MONITORING
sub_category: RESOURCE_CHECK
target_layer: ALL
os_type: LINUX
description: CPU·메모리·디스크 사용률 임계치 감시. 85% 이상 시 WARN, 95% 이상 CRITICAL 출력.
author: system
version: 1.0.0
tags: cpu memory disk 자원 리소스 모니터링 임계치
created_at: 2026-05-29 09:25:02
updated_at: 2026-05-29 09:25:02
script_body:
  #!/bin/bash
  # 출력: JSON 형식의 리소스 사용 현황
  CPU=$(top -bn1 | grep "Cpu(s)" | awk '{print 100 - $8}' | cut -d. -f1)
  MEM_TOTAL=$(free -m | awk '/^Mem:/{print $2}')
  MEM_USED=$(free -m | awk '/^Mem:/{print $3}')
  MEM_PCT=$((MEM_USED * 100 / MEM_TOTAL))
  DISK=$(df -h / | awk 'NR==2{print $5}' | tr -d '%')

  cpu_level="NORMAL"; mem_level="NORMAL"; disk_level="NORMAL"
  [ "$CPU"  -ge 95 ] && cpu_level="CRITICAL"  || [ "$CPU"  -ge 85 ] && cpu_level="WARN"
  [ "$MEM_PCT" -ge 95 ] && mem_level="CRITICAL" || [ "$MEM_PCT" -ge 85 ] && mem_level="WARN"
  [ "$DISK" -ge 95 ] && disk_level="CRITICAL"  || [ "$DISK" -ge 85 ] && disk_level="WARN"

  echo "{"cpu_pct":${CPU},"cpu_level":"${cpu_level}","mem_pct":${MEM_PCT},"mem_level":"${mem_level}","disk_pct":${DISK},"disk_level":"${disk_level}","timestamp":"$(date -u +%Y-%m-%dT%H:%M:%SZ)"}"


script_name: collect_target_logs
category: SM
sub_category: LOG_ANALYSIS
target_layer: ALL
os_type: LINUX
description: WAS/WEB/DB 에러 로그 원격 수집. ERROR·Exception·CRITICAL 키워드 강조 출력.
author: system
version: 1.0.0
tags: log 로그 error exception 에러 수집 tail grep
created_at: 2026-05-29 09:25:02
updated_at: 2026-05-29 09:25:02
script_body:
  #!/bin/bash
  # 사용법: ./collect_target_logs.sh [로그경로] [라인수(기본100)]
  LOG_PATH=${1:-/app/tomcat/logs/catalina.out}
  LINES=${2:-100}

  OUTPUT=$(tail -n ${LINES} ${LOG_PATH} 2>/dev/null | awk '
    /Exception|ERROR|Error|CRITICAL|FATAL/ { print "[ALERT] " $0; next }
    { print $0 }
  ')
  CLEAN=$(echo "$OUTPUT" | python3 -c "import sys,json; print(json.dumps(sys.stdin.read()))" 2>/dev/null || echo ""로그 수집 오류"")
  echo "{"log_path":"${LOG_PATH}","lines":${LINES},"log_data":${CLEAN}}"

parameters:
  [{"name":"LOG_PATH","desc":"로그 파일 절대 경로","required":true},{"name":"LINES","desc":"수집 라인 수 (기본 100)","required":false}]


script_name: backup_and_clear
category: SM
sub_category: LOG_ROTATE
target_layer: WAS
os_type: LINUX
description: 30일 이상 된 로그 파일 백업 후 삭제. 디스크 여유 확보용. 실행 전 반드시 백업 경로 확인.
author: system
version: 1.0.0
tags: backup 백업 log 로그 rotate 정리 disk 디스크
created_at: 2026-05-29 09:25:02
updated_at: 2026-05-29 09:25:02
script_body:
  #!/bin/bash
  # 사용법: ./backup_and_clear.sh [로그디렉토리] [보존일수(기본30)]
  LOG_DIR=${1:-/app/tomcat/logs}
  KEEP_DAYS=${2:-30}
  BACKUP_DIR=${LOG_DIR}/archive/$(date +%Y%m%d)

  mkdir -p "${BACKUP_DIR}"
  MOVED=0
  while IFS= read -r -d '' f; do
      mv "$f" "${BACKUP_DIR}/" && MOVED=$((MOVED+1))
  done < <(find "${LOG_DIR}" -maxdepth 1 -name "*.log" -mtime +${KEEP_DAYS} -print0 2>/dev/null)

  echo "{"log_dir":"${LOG_DIR}","keep_days":${KEEP_DAYS},"moved_files":${MOVED},"backup_dir":"${BACKUP_DIR}"}"

parameters:
  [{"name":"LOG_DIR","desc":"정리 대상 로그 디렉토리","required":true},{"name":"KEEP_DAYS","desc":"보존 기간(일), 기본 30","required":false}]


script_name: ssl_expiry_check
category: SECURITY
sub_category: SSL_CHECK
target_layer: WEB
os_type: LINUX
description: SSL/TLS 인증서 만료일 확인. D-30 미만 시 WARN, D-7 미만 시 CRITICAL 반환.
author: system
version: 1.0.0
tags: ssl tls certificate 인증서 만료 expiry https 보안
created_at: 2026-05-29 09:25:02
updated_at: 2026-05-29 09:25:02
script_body:
  #!/bin/bash
  # 사용법: ./ssl_expiry_check.sh [호스트] [포트(기본443)]
  HOST=${1:-localhost}
  PORT=${2:-443}

  EXPIRY=$(echo | timeout 5 openssl s_client -servername "${HOST}" -connect "${HOST}:${PORT}" 2>/dev/null | openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2)
  if [ -z "$EXPIRY" ]; then
      echo "{"host":"${HOST}","port":${PORT},"status":"ERROR","message":"인증서 조회 실패"}"
      exit 1
  fi

  EXPIRY_TS=$(date -d "${EXPIRY}" +%s 2>/dev/null || date -jf "%b %d %T %Y %Z" "${EXPIRY}" +%s 2>/dev/null)
  NOW_TS=$(date +%s)
  DAYS_LEFT=$(( (EXPIRY_TS - NOW_TS) / 86400 ))

  LEVEL="OK"
  [ ${DAYS_LEFT} -le 30 ] && LEVEL="WARN"
  [ ${DAYS_LEFT} -le 7  ] && LEVEL="CRITICAL"

  echo "{"host":"${HOST}","port":${PORT},"expiry":"${EXPIRY}","days_left":${DAYS_LEFT},"level":"${LEVEL}"}"

parameters:
  [{"name":"HOST","desc":"도메인 또는 IP","required":true},{"name":"PORT","desc":"HTTPS 포트, 기본 443","required":false}]


script_name: quarterly_regular_check
category: REGULAR
sub_category: QUARTERLY_AUDIT
target_layer: ALL
os_type: LINUX
description: 분기 정기점검 종합 스크립트. 리소스·서비스·로그·SSL 항목을 순서대로 점검하고 JSON 보고서 출력.
author: system
version: 1.0.0
tags: regular 정기점검 quarterly 분기 종합 comprehensive audit
created_at: 2026-05-29 09:25:02
updated_at: 2026-05-29 09:25:02
script_body:
  #!/bin/bash
  # 분기 정기점검 종합 스크립트
  # 출력: 각 항목별 JSON 결과

  echo "=== GUARDiA 분기 정기점검 시작 ==="
  echo "점검일시: $(date '+%Y-%m-%d %H:%M:%S')"
  echo ""

  # 1. 리소스 현황
  echo "--- [1] 시스템 리소스 ---"
  echo "CPU: $(top -bn1 | grep 'Cpu(s)' | awk '{printf "%.1f%%", 100-$8}')"
  echo "MEM: $(free -h | awk '/^Mem:/{printf "%s / %s", $3, $2}')"
  echo "DISK: $(df -h / | awk 'NR==2{print $3" / "$2" ("$5")"}')"
  echo ""

  # 2. 서비스 상태
  echo "--- [2] 서비스 상태 ---"
  for svc in nginx tomcat9 postgresql; do
      status=$(systemctl is-active $svc 2>/dev/null)
      echo "${svc}: ${status:-not_installed}"
  done
  echo ""

  # 3. 최근 에러 로그 확인
  echo "--- [3] 최근 에러 로그 (최근 24시간) ---"
  find /app/logs /var/log/nginx /var/log/postgresql -name "*.log" 2>/dev/null | while read f; do
      cnt=$(grep -c -i "error\|exception\|critical" "$f" 2>/dev/null || echo 0)
      [ "$cnt" -gt 0 ] && echo "  ${f}: ${cnt}건"
  done
  echo ""

  echo "=== 정기점검 완료 ==="


script_name: emergency_oom_response
category: ADHOC
sub_category: OOM_RESPONSE
target_layer: WAS
os_type: LINUX
description: OOM(OutOfMemoryError) 긴급 대응 스크립트. 힙 덤프 생성 후 WAS 재기동 및 메모리 상태 보고.
author: system
version: 1.0.0
tags: oom outofmemory heap dump 긴급대응 emergency was restart 재기동
created_at: 2026-05-29 09:25:02
updated_at: 2026-05-29 09:25:02
script_body:
  #!/bin/bash
  # OOM 긴급 대응 스크립트
  # 주의: WAS 재기동이 포함됩니다. 승인 후 실행하세요.
  WAS_SVC=${1:-tomcat9}
  DUMP_DIR=${2:-/app/heap_dumps}

  mkdir -p "${DUMP_DIR}"
  TIMESTAMP=$(date +%Y%m%d_%H%M%S)

  # 현재 Java 프로세스 PID 확인
  JAVA_PID=$(pgrep -f tomcat | head -1)
  echo "{"step":"pid_check","pid":"${JAVA_PID:-not_found}"}"

  # 힙 덤프 생성 (가능한 경우)
  if [ -n "${JAVA_PID}" ] && command -v jmap &>/dev/null; then
      DUMP_FILE="${DUMP_DIR}/heap_${TIMESTAMP}.hprof"
      jmap -dump:format=b,file="${DUMP_FILE}" "${JAVA_PID}" 2>/dev/null
      echo "{"step":"heap_dump","file":"${DUMP_FILE}"}"
  fi

  # 메모리 상태 수집
  echo "{"step":"memory_before","free_output":"$(free -m | grep Mem)"}"

  # WAS 재기동
  sudo systemctl restart "${WAS_SVC}"
  RESTART_CODE=$?
  echo "{"step":"restart","service":"${WAS_SVC}","result":"$([ $RESTART_CODE -eq 0 ] && echo SUCCESS || echo FAILED)"}"

  sleep 10
  echo "{"step":"memory_after","free_output":"$(free -m | grep Mem)"}"

parameters:
  [{"name":"WAS_SVC","desc":"WAS 서비스명 (기본 tomcat9)","required":false},{"name":"DUMP_DIR","desc":"힙 덤프 저장 경로","required":false}]


