6.2 KiB
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분 요약)
- 모든 작업 저장 및 커밋(필요시).
- 통합 테스트/빌드가 실행 중이면 중지.
- Android target 정리 및 필요 시 ADB 연결 해제.
- Docker 앱/컨테이너 정상 종료(아래 상세 절차).
- 로그/임시파일 수집 및 정리.
- VS Code 종료.
상세 종료 절차 (권장 순서)
- 열린 작업 저장
- 변경 중인 파일을 저장하고 로컬 커밋을 권장. 소스 변경은 수동 승인 항목이므로 자동 처리하지 않는다.
- 실행 중인 테스트/빌드 종료
# 통합/로컬 테스트나 빌드 프로세스가 있으면 종료
# (예: 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
- 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 측에서 수행 필요)
- 로그 수집
- 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
- 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
- 임시파일 정리
# 임시 파일 정리 (docker cache 등)
# (유지해야 하는 캐시는 삭제하지 않도록 주의)
- 권한/생성된 파일 기본 정리 (자동)
# 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
- 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): 초기 작성