2.5 KiB
2.5 KiB
| name | description | type |
|---|---|---|
| 디버그 라벨은 QPolygon 인라인 + local 전용 | debugLabels 는 별도 util 파일 없이 QPolygon.js 안에 인라인. NEXT_PUBLIC_RUN_MODE==='local' 에서만 동작. | feedback |
핵심 규칙 (2개):
-
가드: 캔버스 라벨은 항상
process.env.NEXT_PUBLIC_RUN_MODE === 'local'에서만 그려져야 한다. 'local.dev', 'development', 'production' 에서 라벨 보이면 안 됨. -
별도 util 파일 만들지 말 것. 사용자 명시: "util 에 debug 파일 자체가 없다.. 라벨은 다른 qline 이런곳에 올려라". 라벨 코드는 호출처(
src/components/fabric/QPolygon.js) 안에 인라인 함수(__attachDebugLabels,__classifyLineForLabel,__isDebugLabelsEnabled) 로 둔다.
Why:
- 사용자 명시 반복: "local 일때만 실행, dev/prd 에 사용되면 안 된다."
src/util/debugLabels.js(+ stub, + next.config alias) 구조를 만들었더니 사용자가 "util 에 debug 파일 자체가 없다" 고 거부. 별도 파일 = 관리 부담 + dev/prd 동기화 이슈.- 인라인 두면 외부 의존 0, 가드는 빌드 타임 dead-code 제거 가능 (Next.js 가 NEXT_PUBLIC_* 를 리터럴 치환).
- 캔버스에 노란 배경 라벨(B-7, SK-3 등) 이 운영 환경에서 보이면 사용자/고객 혼란.
local.dev는 "로컬에서 dev API 붙이는" 모드라 이름은 local 이지만 OFF 대상.
How to apply:
- 가드 함수
__isDebugLabelsEnabled()의 비교 문자열 변경/완화 금지.===등호 유지. - 라벨 관련 새 헬퍼 함수가 필요해도
src/util/등 외부에 새 파일 만들지 말 것. QPolygon.js (또는 사용자가 지정한 기존 파일) 안에 인라인. - 다른 디버그 시각화 추가 시에도 같은 인라인 + 가드 패턴 재사용.
- ENV 정의:
.env.localhost=local /.env.local.dev=local.dev /.env.development=development /.env.production=production.
현재 상태 (2026-04-27, 최종):
src/util/debugLabels.js삭제,src/util/debugLabels.stub.js삭제,next.config.mjsalias 설정 원복.- 모든 라벨 코드는
src/components/fabric/QPolygon.js상단 (line 1180) 에 인라인:DEBUG_LABEL_NAME상수__isDebugLabelsEnabled()env 가드__classifyLineForLabel(obj)prefix 분류__attachDebugLabels(canvas, parentId)부착
- 호출은
drawHelpLine끝 (~line 600):__attachDebugLabels(this.canvas, this.id) - dev/prd 빌드: 가드가 false → fabric.Text 생성/추가 없음. 외부 파일 의존 없으므로 빌드 안전.