# 2026-07-21 업무 인계 메모 작성 시각: 2026-07-21 KST ## 오늘 핵심 결론 - 전일 종료 후 금일 업무시작 기동을 수행했다. - Android 실기기/ADB reverse는 오전 중 재설정하여 정상 상태를 확인했다. - Baron/Ory runtime, `tdc114plus-auth` 5001, API smoke는 정상 확인했다. - 신규앱 실기기 로그상 로그인, 앱 세션 발급, 직원검색, 조직도, 프로필 이미지 호출 흐름이 정상 기록되었다. - 배포 회의 결과에 따라 `tdc114plus`와 `tdc114plus-auth` 모두 Cloudflare 관리 체계로 가져가는 방향을 문서화했다. ## 1. 금일 업무시작 기동 결과 업무시작 시 아래 순서로 확인했다. 1. 전일 인계 문서 확인 2. `startup.sh` 문법 및 dry-run 확인 3. Windows ADB 서버 및 실기기 상태 확인 4. 실기기 `adb reverse tcp:5000`, `tcp:5001` 재설정 5. Baron/Ory runtime 기동 6. `tdc114plus-auth` 재기동 7. `check-baron-api-env.sh` 확인 8. `api-smoke.sh` 확인 정상 확인 결과: - `tdc114plus`, `tdc114plus-auth` 작업트리 깨끗한 상태에서 시작 - 실기기 `R5CT42QTCNX` 연결 확인 - `adb reverse tcp:5000 tcp:5000` 설정 - `adb reverse tcp:5001 tcp:5001` 설정 - Baron/Ory 컨테이너 health 정상 - `tdc114plus-auth` health 정상 `tdc114plus-auth` health 응답: ```json {"jwks":"ok","provider":"baron","status":"ok"} ``` ## 2. 업무시작 중 발생한 이슈 ### 2.1 Android preflight 첫 실패 처음 `startup.sh --dry-run` 실행 시 WSL에서 Windows ADB 서버 `172.21.128.1:5037` 접근이 막혀 실패했다. 이후 승인 권한으로 다시 확인했으나 `Connection reset by peer`가 발생했다. 처리: - Windows PowerShell에서 `adb.exe devices` 확인 - 실기기 `R5CT42QTCNX device` 상태 확인 - 오프라인 emulator가 여러 개 있었으나 실기기 기준으로 `-s R5CT42QTCNX`를 지정해 reverse 재설정 결과: ```text UsbFfs tcp:5000 tcp:5000 UsbFfs tcp:5001 tcp:5001 ``` ### 2.2 `tdc114plus-auth` 첫 startup 실패 `startup.sh --auto` 중 `tdc114plus-auth` health 대기에서 한 번 실패했다. 로그상 `tdc114plus-auth listening on :5001`까지 찍힌 뒤 프로세스가 종료되었고, 이후 `start-auth-server.sh --restart`로 재기동했다. 결과: - `tdc114plus-auth ready on :5001` - `/health` 정상 판단: - 소스 오류보다는 첫 기동/컴파일/프로세스 타이밍 문제에 가까웠다. - 재기동 후 정상 동작했다. ## 3. 실기기 앱 동작 확인 기록 금일 로그 기준 신규앱은 실제로 아래 흐름을 정상 수행했다. - `POST /api/v1/auth/link/init` - `POST /api/v1/auth/link/poll` - Baron SSO 승인 완료 - 앱 세션 발급 - 사용자 메타데이터 보강 - org-context 조회 - profile-image 조회 로그상 확인된 사용자: - 문형석 - `tenant_slug=is-3` - `tenant_name=IS3` 프로필 이미지 source 확인: - `NAVER_WORKS` - `BARON_UUID_R2` 즉 서버 로그 기준으로는 로그인, 직원검색, 조직도, 프로필 이미지 흐름이 정상 동작했다. ## 4. 실기기 USB 연결 관련 정리 금일 확인한 중요한 정리: - 실제 운영/배포 APK가 동작하는 데 USB 연결은 필요 없다. - USB가 필요한 이유는 현재 개발용 APK가 `127.0.0.1:5000`, `127.0.0.1:5001`을 바라보기 때문이다. - 로컬 테스트에서는 실기기 앱 호출을 개발 PC 로컬 서버로 보내기 위해 `adb reverse`가 필요하다. - Cloudflare/staging/production 도메인을 바라보는 APK는 USB 없이 동작해야 한다. 정리: ```text 개발 로컬 테스트: USB + adb reverse 필요 실제 배포 APK: USB 불필요 Cloudflare 도메인 기반 APK: USB 불필요 ``` ## 5. 신규앱 배포 회의 결과 정리 2026-07-20 팀장 회의 결과를 금일 문서로 정리했다. 문서: - `docs/00_meeting_result_tdc114plus_release_2026-07-20.md` 팀장 확인 완료 기준 이해 내용: 1. 신규앱 `tdc114plus`와 중계서버 `tdc114plus-auth` 모두 Cloudflare 관리 체계 안에서 운영한다. 2. `tdc114plus`는 Gitea에 코드가 올라가면 Gitea Actions로 APK를 자동 빌드하고, 결과물을 Cloudflare에 배포한다. 3. `114.hmac.kr`은 staging용 앱 다운로드 및 검증 경로로 사용한다. 4. `114.brsw.kr`은 production용 앱 다운로드 경로로 사용한다. 5. 사용자는 도메인 접속만으로 APK 다운로드 또는 설치 안내 페이지에 접근한다. 6. `tdc114plus-auth`도 Cloudflare Workers 쪽에서 운영하는 방향으로 검토한다. 7. 현재 `tdc114plus-auth`는 Go 기반 서버이므로 Workers에 그대로 올릴 수 있는지 기술 검토가 필요하다. 8. Go 기반 운영이 어렵거나 안정성이 낮다면 TypeScript 등 Workers 지원 언어로 재구현을 검토한다. 9. 검토 결과를 기준으로 `Go 유지 + Cloudflare proxy/Tunnel 방식`과 `Workers 지원 언어 재구현 방식` 중 안정적인 방향을 비교 제안한다. ## 6. Cloudflare Workers 검토 기준 현재 판단: - Go 기반 `tdc114plus-auth`를 Cloudflare Workers에 그대로 올리는 것은 어렵거나 위험할 수 있다. - Workers 직접 운영이 목표라면 TypeScript Workers 재구현을 우선 검토한다. - 단기 안전안으로 기존 Go 서버 유지 + Cloudflare Workers/Tunnel/proxy 앞단 구성도 비교한다. 검토해야 할 항목: - Workers 지원 언어와 런타임 제약 - Baron SSO 외부 API 호출 가능 여부 - NAVER WORKS OAuth/JWT/RSA 처리 가능 여부 - 앱 세션 JWT 발급 방식 - pending login 상태 저장소 선택 - Cloudflare Secrets 관리 - health check와 rollback 방식 ## 7. 다음 작업 시작 시 우선 순서 1. 두 저장소 `git status` 확인 2. 오늘 작성한 회의결과 문서가 원격에 push되었는지 확인 3. Cloudflare Workers 지원 범위 공식 문서 확인 4. `tdc114plus-auth` 기능별 Workers 이식 가능성 표를 더 세분화 5. TypeScript Workers PoC 범위 확정 6. Gitea Actions 기반 APK 빌드/Cloudflare 배포 파이프라인 초안 작성 7. `114.hmac.kr`, `114.brsw.kr`의 staging/production 경로 정책 정리 ## 8. 퇴근 전 종료 기동 대상 종료 전 확인할 것: - `tdc114plus` 변경분 커밋/push - `tdc114plus-auth` 변경분 여부 확인 - `scripts/shutdown.sh` 문법 확인 - `scripts/shutdown.sh --dry-run` 확인 - 실제 종료 기동 `scripts/shutdown.sh --auto` 주의: - 종료 스크립트는 `baron-sso-tdc114plus-api` Docker compose down을 포함한다. - 실기기 USB reverse는 명시적 Android connect address가 없으면 임의 disconnect하지 않는다.