# Milestone: 워크스페이스 포트/환경 표준화

## 위치

- Roadmap: `agent-roadmap/ROADMAP.md`
- Phase: `agent-roadmap/phase/trading-expansion/PHASE.md`

## 목표

ALT의 테스트/원격 환경과 로컬 개발 포트를 workspace 공통 대역으로 정렬한다. Flutter dev preview, `services/api`, `services/worker`, PostgreSQL, Redis, 원격 runner 문서가 같은 포트 정책을 말하게 만들고, 기존 field/remote 포트는 호환성 확인 뒤 단계적으로 조정한다.

## 상태

[완료]

## 구현 잠금

- 상태: 해제
- 결정 필요: 없음

## 범위

- Flutter/web preview host publish를 workspace frontend 대역 후보로 정리
- `services/api`와 `services/worker` host publish 포트를 backend 대역 후보로 정리
- PostgreSQL/Redis host publish는 필요할 때만 DB/cache offset 대역으로 노출하고, compose 내부 통신은 service DNS를 우선한다는 기준 정리
- `agent-test/local`의 원격 runner, artifact/bootstrap, OpenAI-compatible, wire/metrics 포트 설명을 workspace 공통 대역과 맞춘다
- KIS live smoke, token, account, private host 값은 tracked 문서에 쓰지 않고 책임 경계와 evidence 위치만 남긴다

## 기능

### Epic: [inventory] ALT environment inventory

ALT가 실제로 사용하는 테스트/원격 환경과 포트의 source of truth를 정리한다.

- [x] [test-env-map] `agent-test/local`과 remote runner 문서에서 ALT 테스트/원격 환경, artifact, wire, metrics 포트 목록을 raw secret 없이 정리한다. 근거: `agent-test/local/rules.md`, `agent-test/local/*-smoke.md`, `README.md`, `agent-task/archive/2026/06/m-workspace-port-env-standardization/02+01_local_infra/complete.log`.
- [x] [compose-map] `deployments/local`, `bin/dev`, `.env.example` 계열의 API/worker/PostgreSQL/Redis host publish 값을 공통 대역 후보와 대조한다. 근거: `deployments/local/docker-compose.yml`, `bin/dev`, `bin/infra-check`, API/worker config 기본값, `agent-task/archive/2026/06/m-workspace-port-env-standardization/01_service_defaults/complete.log`, `agent-task/archive/2026/06/m-workspace-port-env-standardization/03+01,02_operator_client_refs/complete.log`.
- [x] [slot-plan] ALT 기본 후보를 frontend `13030`, backend `18030/18031`, optional wire `19030`, DB/cache `15430/16330`으로 문서화하고 기존 포트와의 migration note를 남긴다. 근거: `README.md`의 워크스페이스 포트 슬롯, `agent-task/archive/2026/06/m-workspace-port-env-standardization/02+01_local_infra/complete.log`.
- [x] [smoke-update] 포트 변경이 필요한 smoke command, README, local rule을 한 번에 갱신할 수 있는 체크리스트를 작성한다. 기준: 포트 변경 시 `deployments/local/docker-compose.yml`, `bin/dev`, `bin/infra-check`, API/worker config, README, headless smoke 문서, `agent-test/local`을 같은 변경에서 대조한다. 근거: `agent-task/archive/2026/06/m-workspace-port-env-standardization/03+01,02_operator_client_refs/complete.log`.

## 완료 리뷰

- 상태: 승인됨
- 요청일: 2026-06-08
- 완료 근거:
  - README에 workspace 포트 슬롯과 remote/private endpoint 책임 경계, legacy migration note를 정리했다.
  - local smoke profile의 API/client/worker 포트 기준을 `13030/18030/18031/15430/16330` 슬롯으로 맞췄다.
  - compose, helper script, infra check, API/worker config 기본값이 같은 슬롯을 가리키는지 대조했다.
  - `test-env-map`과 `slot-plan`은 `02+01_local_infra/complete.log`의 README/local test rule 검증으로, `compose-map`과 `smoke-update`는 `03+01,02_operator_client_refs/complete.log`의 Roadmap Completion으로 확인했다.
- 리뷰 필요:
  - [x] 사용자가 완료 결과를 확인했다
  - [x] archive 이동을 승인했다
- 리뷰 코멘트: 사용자 승인에 따라 Milestone을 `[완료]`로 전환하고 archive 이동한다.

## 범위 제외

- 원격 서버에 배포된 포트 즉시 변경
- KIS credential, account id, token, private host 값 기록
- 실거래 order/risk/portfolio 구현
- Flutter 운영 화면 구현

## 작업 컨텍스트

- 관련 경로: `agent-test/local/`, `deployments/local/`, `bin/`, `services/api/`, `services/worker/`, `apps/client/`
- 표준선(선택): container 내부 포트는 서비스 기본값을 유지하고, workspace 표준화 대상은 host publish와 문서화된 remote/smoke 포트다.
- 선행 작업: workspace 공통 포트 inventory 정리
- 후속 작업: 백테스트 루프의 Finance Agent Research Sidecar Sketch 검토
- 확인 필요: 없음
