Harden infra validation flow
This commit is contained in:
@@ -50,6 +50,8 @@
|
||||
3. `docker compose build`를 실행합니다.
|
||||
4. `docker compose up -d`를 실행합니다.
|
||||
5. 브라우저에서 `http://SERVER_IP:8080` 으로 접속합니다.
|
||||
6. `docker compose ps` 에서 `backend`, `frontend`, `proxy`, `db` 가 모두 `healthy` 인지 확인합니다.
|
||||
7. `http://SERVER_IP:8080/api/health` 응답에서 `status`, `checks`, `member_count` 를 확인합니다.
|
||||
|
||||
## 7. 현재 단계의 데이터 및 백업 정책
|
||||
- 데이터베이스: PostgreSQL 볼륨 `postgres_data`
|
||||
@@ -60,17 +62,25 @@
|
||||
|
||||
## 8. 현재 구조의 한계
|
||||
- 로그인은 화면상 동작만 구현되어 있고, 아직 백엔드 보호 기능은 없습니다.
|
||||
- 레거시 조직도 화면은 iframe으로 연결만 해둔 상태이며, DB 기반 API와 완전히 연동되지는 않았습니다.
|
||||
- 레거시 조직도 화면은 현재 DB 기반 API를 사용하도록 전환했지만, 운영 환경에서 전체 업로드/재기동/스냅샷 흐름 검증이 추가로 필요합니다.
|
||||
- 레거시 화면은 CDN 자산을 사용합니다. 사내망이 외부 인터넷 접속을 막는 환경이라면 추후 로컬 자산으로 바꿔야 합니다.
|
||||
|
||||
## 9. 다음 구현 권장 순서
|
||||
1. 프로필 사진 업로드 UI를 `/api/uploads/profile-photo` 와 연결합니다.
|
||||
2. 구성원 데이터를 브라우저 메모리 방식에서 PostgreSQL 기반 API 저장 방식으로 전환합니다.
|
||||
3. 사무실 자리배치 좌표 저장 기능을 추가합니다.
|
||||
4. 인증 정책이 정해지면 화면상 로그인 대신 실제 로그인으로 교체합니다.
|
||||
1. Docker Compose 기준 운영 검증과 스냅샷 검증을 완료합니다.
|
||||
2. 4개 기능 통합 대시보드 프레임과 공통 헤더를 준비합니다.
|
||||
3. 프로필 사진 업로드 UI를 `/api/uploads/profile-photo` 와 연결합니다.
|
||||
4. 사무실 자리배치 좌표 저장 기능을 추가합니다.
|
||||
5. 인증 정책이 정해지면 화면상 로그인 대신 실제 로그인으로 교체합니다.
|
||||
|
||||
## 10. 현재 로컬 테스트 접속 정보
|
||||
- 접속 주소: `http://localhost:8080`
|
||||
- 상태 확인 API: `http://localhost:8080/api/health`
|
||||
- WSL 내부 실행 경로:
|
||||
- `/home/hyunho/projects/mh-dashboard-organization`
|
||||
|
||||
## 11. 운영 검증 체크포인트
|
||||
- 엑셀 또는 CSV 업로드 후 `GET /api/members` 에서 데이터가 조회되는지 확인합니다.
|
||||
- `docker compose restart backend proxy` 이후에도 데이터가 유지되는지 확인합니다.
|
||||
- `POST /api/snapshots/monthly` 호출 시 `YYYY-MM` 형식만 허용되는지 확인합니다.
|
||||
- 같은 월에 대해 중복 스냅샷 생성 시 409 에러가 반환되는지 확인합니다.
|
||||
- `docker compose down` 후 다시 `up -d` 했을 때 DB/업로드/스냅샷 데이터가 유지되는지 확인합니다.
|
||||
|
||||
50
docs/INFRA_VALIDATION_CHECKLIST.md
Normal file
50
docs/INFRA_VALIDATION_CHECKLIST.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# 인프라 검증 체크리스트
|
||||
|
||||
## 1. 컨테이너 기동
|
||||
- `docker compose build`
|
||||
- `docker compose up -d`
|
||||
- `docker compose ps`
|
||||
- 확인 기준: `proxy`, `frontend`, `backend`, `db` 모두 `healthy`
|
||||
|
||||
## 2. API 상태 확인
|
||||
- `curl http://localhost:8080/api/health`
|
||||
- 확인 기준:
|
||||
- `status` 가 `ok`
|
||||
- `checks.database` 가 `true`
|
||||
- `checks.upload_dir` 가 `true`
|
||||
- `checks.snapshot_dir` 가 `true`
|
||||
|
||||
## 3. 초기 데이터 업로드
|
||||
- 조직도 화면에서 `.xlsx` 또는 `.csv` 업로드
|
||||
- `curl http://localhost:8080/api/members`
|
||||
- 확인 기준:
|
||||
- `items` 배열이 비어 있지 않음
|
||||
- 화면 렌더링이 정상 동작함
|
||||
|
||||
## 4. 영속성 확인
|
||||
- `docker compose restart backend proxy`
|
||||
- 다시 `curl http://localhost:8080/api/members`
|
||||
- 확인 기준:
|
||||
- 업로드했던 데이터가 그대로 유지됨
|
||||
|
||||
## 5. 스냅샷 검증
|
||||
- `curl -X POST -F snapshot_month=2026-03 http://localhost:8080/api/snapshots/monthly`
|
||||
- 확인 기준:
|
||||
- CSV 파일 경로가 반환됨
|
||||
- `/snapshots/...` 다운로드 가능
|
||||
|
||||
## 6. 중복/형식 오류 검증
|
||||
- 같은 월로 다시 스냅샷 생성
|
||||
- 확인 기준:
|
||||
- 409 에러 반환
|
||||
- 잘못된 형식으로 스냅샷 생성 예: `202603`
|
||||
- 확인 기준:
|
||||
- 400 에러 반환
|
||||
|
||||
## 7. 종료 후 재기동 확인
|
||||
- `docker compose down`
|
||||
- `docker compose up -d`
|
||||
- 확인 기준:
|
||||
- DB 데이터 유지
|
||||
- 업로드 파일 유지
|
||||
- 스냅샷 파일 유지
|
||||
Reference in New Issue
Block a user