manage 브랜치에서 생애주기 화면의 영업/설계 금액을 해당프로젝트/총프로젝트로 배분하는 기능이 도입되었습니다.
현장 사용 중 아래 증상이 반복 보고되었습니다.
배분값 저장 후 재진입 시 1/1로 되돌아 보이는 현상
삭제 버튼 부재/동작 혼선
카드 금액과 반영 금액의 체감 불일치
현재 반영 상태 (코드 기준)
배분 저장 API: POST /api/lifecycle-allocation/upsert
배분 삭제 API: POST /api/lifecycle-allocation/delete
저장 테이블: project_lifecycle_allocations
관련 파일:
PTC/management_dashboard_preview.html
server/ptc_api_server.py
참조 커밋: bc611c3
남은 작업 범위
팝업 저장/삭제/재조회 흐름을 회귀 시나리오로 고정
1/3, 2/5, 0/1 등 경계값 입력 검증 강화
저장 성공/실패 토스트 및 재시도 UX 명확화
배분값 재진입 시 서버값과 UI값 완전 동기화 보장
배분값 변경 시 관련 카드/합계 즉시 재계산 강제
완료 기준 (Acceptance Criteria)
같은 프로젝트 재진입 시 마지막 저장값이 100% 동일하게 표시된다.
잘못된 입력(분모 0, 분자>분모, 음수) 시 저장이 차단되고 이유가 표시된다.
삭제 후 즉시 기본값(1/1) 반영 + 서버 DB에서도 해당 row가 제거된다.
3회 이상 반복 저장/삭제 테스트에서도 화면-DB 불일치가 발생하지 않는다.
테스트 케이스
케이스 A: 1/3 저장 -> 새로고침 -> 1/3 유지 확인
케이스 B: 2/3 수정 저장 -> 카드 반영금액이 즉시 변경되는지 확인
케이스 C: 삭제 -> 1/1 복귀 + 반영금액 원복 확인
케이스 D: 분모 0 입력 시 에러 메시지 확인
비고
이 이슈는 기능 추가보다 “현장 사용 안정화(회귀 방지)”에 초점을 둡니다.
대상 브랜치: manage
## 배경
`manage` 브랜치에서 생애주기 화면의 영업/설계 금액을 `해당프로젝트/총프로젝트`로 배분하는 기능이 도입되었습니다.
현장 사용 중 아래 증상이 반복 보고되었습니다.
- 배분값 저장 후 재진입 시 `1/1`로 되돌아 보이는 현상
- 삭제 버튼 부재/동작 혼선
- 카드 금액과 반영 금액의 체감 불일치
## 현재 반영 상태 (코드 기준)
- 배분 저장 API: `POST /api/lifecycle-allocation/upsert`
- 배분 삭제 API: `POST /api/lifecycle-allocation/delete`
- 저장 테이블: `project_lifecycle_allocations`
- 관련 파일:
- `PTC/management_dashboard_preview.html`
- `server/ptc_api_server.py`
- 참조 커밋: `bc611c3`
## 남은 작업 범위
1. 팝업 저장/삭제/재조회 흐름을 회귀 시나리오로 고정
2. `1/3`, `2/5`, `0/1` 등 경계값 입력 검증 강화
3. 저장 성공/실패 토스트 및 재시도 UX 명확화
4. 배분값 재진입 시 서버값과 UI값 완전 동기화 보장
5. 배분값 변경 시 관련 카드/합계 즉시 재계산 강제
## 완료 기준 (Acceptance Criteria)
- 같은 프로젝트 재진입 시 마지막 저장값이 100% 동일하게 표시된다.
- 잘못된 입력(분모 0, 분자>분모, 음수) 시 저장이 차단되고 이유가 표시된다.
- 삭제 후 즉시 기본값(`1/1`) 반영 + 서버 DB에서도 해당 row가 제거된다.
- 3회 이상 반복 저장/삭제 테스트에서도 화면-DB 불일치가 발생하지 않는다.
## 테스트 케이스
- 케이스 A: `1/3` 저장 -> 새로고침 -> `1/3` 유지 확인
- 케이스 B: `2/3` 수정 저장 -> 카드 반영금액이 즉시 변경되는지 확인
- 케이스 C: 삭제 -> `1/1` 복귀 + 반영금액 원복 확인
- 케이스 D: 분모 `0` 입력 시 에러 메시지 확인
## 비고
이 이슈는 기능 추가보다 “현장 사용 안정화(회귀 방지)”에 초점을 둡니다.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
대상 브랜치: manage
배경
manage브랜치에서 생애주기 화면의 영업/설계 금액을해당프로젝트/총프로젝트로 배분하는 기능이 도입되었습니다.현장 사용 중 아래 증상이 반복 보고되었습니다.
1/1로 되돌아 보이는 현상현재 반영 상태 (코드 기준)
POST /api/lifecycle-allocation/upsertPOST /api/lifecycle-allocation/deleteproject_lifecycle_allocationsPTC/management_dashboard_preview.htmlserver/ptc_api_server.pybc611c3남은 작업 범위
1/3,2/5,0/1등 경계값 입력 검증 강화완료 기준 (Acceptance Criteria)
1/1) 반영 + 서버 DB에서도 해당 row가 제거된다.테스트 케이스
1/3저장 -> 새로고침 ->1/3유지 확인2/3수정 저장 -> 카드 반영금액이 즉시 변경되는지 확인1/1복귀 + 반영금액 원복 확인0입력 시 에러 메시지 확인비고
이 이슈는 기능 추가보다 “현장 사용 안정화(회귀 방지)”에 초점을 둡니다.
[manage] 프로젝트 생애주기 배분 팝업 영속성/정합성 회귀 안정화to 프로젝트 생애주기 배분 팝업 영속성/정합성 회귀 안정화