Files
tdc114plus/docs/checklist_evening_shutdown_runtime_2026-07-06.md
T

6.2 KiB

퇴근 전 기동 종료 및 정리 체크리스트

작성일: 2026-07-06 최종 업데이트: 2026-07-08

목적

전날 퇴근하면서 VS Code, 터미널, Android target, Docker 컨테이너 등 개발에 사용한 런타임을 안정적으로 종료하여 다음날 아침에 원활히 재기동할 수 있도록 준비한다.

핵심 정책: 소스코드 변경을 요하지 않는 종료/정리 작업(컨테이너 중지, 권한 수정, 로그 수집, 임시파일 정리 등)은 사용자 승인 없이 자동으로 실행한다.


적용 대상

  • 작업 디렉터리: /home/ubuntu/workspace/tdc114plus
  • Baron SSO API worktree: /home/ubuntu/workspace/baron-sso-tdc114plus-api
  • Android target (실기기 우선, emulator fallback) + WSL/Docker 환경
  • 로컬 Docker 엔진

간단 체크리스트 (퇴근 5분 요약)

  1. 모든 작업 저장 및 커밋(필요시).
  2. 통합 테스트/빌드가 실행 중이면 중지.
  3. Android target 정리 및 필요 시 ADB 연결 해제.
  4. Docker 앱/컨테이너 정상 종료(아래 상세 절차).
  5. 로그/임시파일 수집 및 정리.
  6. VS Code 종료.

상세 종료 절차 (권장 순서)

  1. 열린 작업 저장
  • 변경 중인 파일을 저장하고 로컬 커밋을 권장. 소스 변경은 수동 승인 항목이므로 자동 처리하지 않는다.
  1. 실행 중인 테스트/빌드 종료
# 통합/로컬 테스트나 빌드 프로세스가 있으면 종료
# (예: integration_tests.sh 백그라운드 프로세스 종료)
pkill -f /home/ubuntu/workspace/tdc114plus/scripts/integration_tests.sh || true
pkill -f /home/ubuntu/workspace/tdc114plus/scripts/flutter-docker.sh || true
  1. Android target 정리
  • 실기기 우선 운영이면 USB 연결만 정리하고, emulator fallback을 썼다면 Windows에서 에뮬레이터를 끈다.
  • 당일 TDC114_ADB_CONNECT_ADDRESS를 알고 있을 때만 WSL에서 연결을 끊는다.
# WSL에서 ADB 연결 해제: 당일 실제 주소로만 실행
TDC114_ADB_CONNECT_ADDRESS=172.21.128.1:<EMULATOR_PORT> \
  adb disconnect 172.21.128.1:<EMULATOR_PORT> 2>/dev/null || true
  • 주소를 모르면 ADB disconnect는 생략한다. 과거 포트(5555, 5559 등)를 임의로 disconnect하지 않는다.
  • 필요시 포트포워드/portproxy 정리(Windows 측에서 수행 필요)
  1. 로그 수집
  • compose 로그는 down 전에 수집한다. 종료 후에는 컨테이너 로그가 사라질 수 있다.
# 로그 저장(날짜별)
mkdir -p /home/ubuntu/workspace/tdc114plus/logs/$(date +%F)
cd /home/ubuntu/workspace/baron-sso-tdc114plus-api
docker compose -f docker-compose.yaml -f compose.infra.yaml -f compose.ory.yaml logs --no-color > /home/ubuntu/workspace/tdc114plus/logs/$(date +%F)/baron-compose.log 2>&1 || true
  1. Docker 컨테이너 및 스택 안전하게 중지
  • Baron SSO 및 app 관련 스택을 정상적으로 내린다 (데이터베이스 유지 여부는 상황에 따름).
# 권장: 모든 관련 compose 파일을 포함해 정상 중지 (데이터 유지)
cd /home/ubuntu/workspace/baron-sso-tdc114plus-api
docker compose -f docker-compose.yaml -f compose.infra.yaml -f compose.ory.yaml down

# tdc114plus 앱 스택이 별도라면 종료
cd /home/ubuntu/workspace/tdc114plus
# (예: 앱 관련 compose가 있다면) docker compose down
  • 모든 관련 컨테이너 완전 제거(옵션, 재기동 시 네임 충돌 방지)
# 선택적(정리 필요 시 실행)
docker ps -a --format '{{.Names}}' | grep -iE "baron|ory|tdc114" | xargs -r docker rm -f || true
  1. 임시파일 정리
# 임시 파일 정리 (docker cache 등)
# (유지해야 하는 캐시는 삭제하지 않도록 주의)
  1. 권한/생성된 파일 기본 정리 (자동)
# config 디렉터리 권한이 root로 생긴 경우 사용자가 쓸 수 있게 복구
cd /home/ubuntu/workspace/baron-sso-tdc114plus-api
chmod -R u+w config/.generated/ 2>/dev/null || true
chown -R $(id -u):$(id -g) config/.generated/ 2>/dev/null || true
  1. VS Code 및 터미널 종료
  • VS Code: 모든 변경 저장 후 종료.
  • 터미널 세션: 열린 터미널을 종료.

자동화 규칙 요약

  • 자동 실행(승인 불필요): 대상 helper 프로세스 종료, 로그 수집, 컨테이너 중지, 임시파일 정리, 권한 복구, ADB 연결 해제
  • 수동 승인 필요: 소스코드 커밋/푸시, 설정 파일 수정, 환경 변수 변경, DB 마이그레이션

스크립트 사용법: scripts/shutdown.sh

이 문서의 절차는 자동화 스크립트 scripts/shutdown.sh로 실행할 수 있습니다. 스크립트는 기본적으로 **안전 모드(dry-run)**로 동작하며, 실제 종료 작업과 선택적 파괴적 정리(컨테이너 강제 제거 등)는 --auto 옵션을 사용해야 수행됩니다.

간단한 사용 예시:

# 문법 검사
bash -n scripts/shutdown.sh

# Dry-run (권장): 실제로 파괴적 명령을 실행하지 않고 어떤 작업을 수행할지 확인합니다.
./scripts/shutdown.sh --dry-run

# 실제 실행 (주의): --auto 플래그는 컨테이너 강제 제거 같은 파괴적 정리를 허용합니다.
./scripts/shutdown.sh --auto

스크립트는 실행 로그를 /home/ubuntu/workspace/tdc114plus/logs/<YYYY-MM-DD>/shutdown.log에 기록합니다. 자동화된 종료를 CI나 cron에 등록할 경우 --auto를 사용하되, 로그 보관 정책과 백업을 확인하십시오.

체크아웃/확인 항목 (퇴근 직전)

  • 작업 내용 저장/커밋(또는 스태시)
  • 대상 helper 프로세스 종료 확인
  • Android target 정리 및 필요 시 ADB 연결 해제
  • docker compose down 실행 완료
  • 주요 로그가 /home/ubuntu/workspace/tdc114plus/logs/$(date +%F)에 보관되었는지 확인
  • config/.generated 쓰기 권한이 정상인지 확인
  • VS Code 종료

복구 지침 요약 (다음날 재기동 관련)

  • 다음날 아침에는 docs/checklist_morning_startup_runtime_2026-07-03.md를 따라 재기동한다.
  • 자동으로 중지된 항목(컨테이너 등)은 사용자의 승인 없이 재기동 스크립트가 처리한다.

변경 이력

  • v1.0 (2026-07-06): 초기 작성