Stabilize auth flow and profile images
This commit is contained in:
@@ -0,0 +1,167 @@
|
||||
# 퇴근 전 기동 종료 및 정리 체크리스트
|
||||
|
||||
**작성일**: 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) 열린 작업 저장
|
||||
|
||||
- 변경 중인 파일을 저장하고 로컬 커밋을 권장. 소스 변경은 수동 승인 항목이므로 자동 처리하지 않는다.
|
||||
|
||||
2) 실행 중인 테스트/빌드 종료
|
||||
|
||||
```bash
|
||||
# 통합/로컬 테스트나 빌드 프로세스가 있으면 종료
|
||||
# (예: 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
|
||||
```
|
||||
|
||||
3) Android target 정리
|
||||
|
||||
- 실기기 우선 운영이면 USB 연결만 정리하고, emulator fallback을 썼다면 Windows에서 에뮬레이터를 끈다.
|
||||
- 당일 `TDC114_ADB_CONNECT_ADDRESS`를 알고 있을 때만 WSL에서 연결을 끊는다.
|
||||
|
||||
```bash
|
||||
# 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 측에서 수행 필요)
|
||||
|
||||
4) 로그 수집
|
||||
|
||||
- compose 로그는 `down` 전에 수집한다. 종료 후에는 컨테이너 로그가 사라질 수 있다.
|
||||
|
||||
```bash
|
||||
# 로그 저장(날짜별)
|
||||
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
|
||||
```
|
||||
|
||||
5) Docker 컨테이너 및 스택 안전하게 중지
|
||||
|
||||
- Baron SSO 및 app 관련 스택을 정상적으로 내린다 (데이터베이스 유지 여부는 상황에 따름).
|
||||
|
||||
```bash
|
||||
# 권장: 모든 관련 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
|
||||
```
|
||||
|
||||
- 모든 관련 컨테이너 완전 제거(옵션, 재기동 시 네임 충돌 방지)
|
||||
|
||||
```bash
|
||||
# 선택적(정리 필요 시 실행)
|
||||
docker ps -a --format '{{.Names}}' | grep -iE "baron|ory|tdc114" | xargs -r docker rm -f || true
|
||||
```
|
||||
|
||||
6) 임시파일 정리
|
||||
|
||||
```bash
|
||||
# 임시 파일 정리 (docker cache 등)
|
||||
# (유지해야 하는 캐시는 삭제하지 않도록 주의)
|
||||
```
|
||||
|
||||
7) 권한/생성된 파일 기본 정리 (자동)
|
||||
|
||||
```bash
|
||||
# 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
|
||||
```
|
||||
|
||||
8) VS Code 및 터미널 종료
|
||||
|
||||
- VS Code: 모든 변경 저장 후 종료.
|
||||
- 터미널 세션: 열린 터미널을 종료.
|
||||
|
||||
---
|
||||
|
||||
## 자동화 규칙 요약
|
||||
|
||||
- 자동 실행(승인 불필요): 대상 helper 프로세스 종료, 로그 수집, 컨테이너 중지, 임시파일 정리, 권한 복구, ADB 연결 해제
|
||||
- 수동 승인 필요: 소스코드 커밋/푸시, 설정 파일 수정, 환경 변수 변경, DB 마이그레이션
|
||||
|
||||
---
|
||||
|
||||
## 스크립트 사용법: `scripts/shutdown.sh`
|
||||
|
||||
이 문서의 절차는 자동화 스크립트 `scripts/shutdown.sh`로 실행할 수 있습니다. 스크립트는 기본적으로 **안전 모드(dry-run)**로 동작하며, 실제 종료 작업과 선택적 파괴적 정리(컨테이너 강제 제거 등)는 `--auto` 옵션을 사용해야 수행됩니다.
|
||||
|
||||
간단한 사용 예시:
|
||||
|
||||
```bash
|
||||
# 문법 검사
|
||||
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): 초기 작성
|
||||
Reference in New Issue
Block a user