# Milestone: Persistence and Worker Backbone

## 위치

- Roadmap: `agent-roadmap/ROADMAP.md`
- Phase: `agent-roadmap/phase/foundation-alignment/PHASE.md`

## 목표

PostgreSQL과 Redis를 ALT의 운영 기본 인프라로 고정하고, worker가 import, normalization, backtest 같은 비동기 작업을 다룰 수 있는 durable backbone을 만든다.

## 상태

[완료]

## 구현 잠금

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

## 범위

- PostgreSQL migration과 query generation 기준
- Redis 사용 위치와 key prefix 기준
- worker job 실행 모델
- local infrastructure와 worker configuration 정합성
- storage boundary와 domain mapping

## 기능

### Epic: [worker-backbone] Persistence and worker backbone

PostgreSQL, Redis, worker job model, storage boundary 기준을 묶는다.

- [x] [db-migrations] PostgreSQL migration entrypoint가 있다. 검증: local PostgreSQL/Redis를 실행한 뒤 worker가 필요한 설정을 읽을 수 있다.
- [x] [typed-queries] DB query를 type-safe하게 다루는 생성/검증 흐름이 있다. 검증: migration/query generation 흐름이 문서화되어 있다.
- [x] [redis-boundary] Redis 사용 목적과 key prefix 기준이 worker 문서나 config에 정리되어 있다.
- [x] [job-model] worker가 비동기 작업을 표현하고 실행할 기본 job model을 갖는다. 검증: worker job이 API 내부 구현에 의존하지 않는다.
- [x] [storage-ports] domain과 persistence 사이의 adapter/port 경계가 정해져 있다.
- [x] [infra-check] local PostgreSQL/Redis health를 확인하는 반복 가능한 절차가 있다. 검증: `bin/test`, `bin/lint`, `bin/build`가 통과한다.

## 완료 리뷰

- 상태: 승인됨
- 요청일: 2026-05-28
- 완료 근거: 모든 기능 Task와 Task별 검증이 충족된 것으로 보인다. `agent-task/archive/2026/05/m-persistence-worker-backbone_1/complete.log`에서 code-server Postgres/Redis health와 worker migration smoke가 PASS로 해소되었다.
- 리뷰 필요:
  - [x] 사용자가 완료 결과를 확인했다
  - [x] archive 이동을 승인했다
- 리뷰 코멘트: 2026-05-28 사용자 승인으로 Milestone을 완료 처리하고 archive로 이동한다.

## 범위 제외

- 실제 KIS API 호출
- backtest engine 전체 구현
- production 배포 구성
- broker/order/risk persistence

## 작업 컨텍스트

- 관련 경로: `services/worker/`, `deployments/local/`, `packages/domain/`, `bin/`
- 표준선(선택): PostgreSQL은 durable store, Redis는 보조 cache/queue/pubsub surface로 둔다.
- 환경 불일치: 현재 실행 컨테이너에는 Docker가 없고 기본 `localhost:5432/6379`가 닫혀 있어 local compose health를 직접 확인할 수 없다.
- field 환경 불일치: `ssh toki@toki-labs.com` macOS host에는 Docker와 `alt-postgres`가 있으나 해당 PostgreSQL은 role/db `alt` 기본값과 맞지 않고, host `localhost:6379` Redis는 열려 있지 않다.
- 표준선(환경): repo 기준 반복 검증은 `deployments/local/docker-compose.yml`의 PostgreSQL `alt/alt`와 Redis를 `bin/infra-check`로 확인한다. 외부/field 인프라는 `DATABASE_URL`, `REDIS_URL`을 명시해 별도 확인한다.
- 2026-05-28 검증: `go test ./...` in `services/worker`, `bin/worker-storage-check`, `bin/test`, `bin/lint`, `bin/build` 통과. `bin/infra-check`는 현재 컨테이너의 외부 DB env override와 Docker/DB client 부재로 local infra smoke를 완료하지 못했다.
- 2026-05-28 검증: `ssh toki@192.168.0.97`의 code-server Docker network에서 `code-server-postgres` health, `code-server-redis` PING, worker migration smoke가 통과했다. 상세는 `agent-task/archive/2026/05/m-persistence-worker-backbone_1/complete.log`에 남겼다.
- 선행 작업: Workspace Baseline
- 후속 작업: Korea Daily Data Foundation
- 확인 필요: 없음
