상황을 정확히 이해했습니다. 방금 말씀해주신 “Duplicate 복사”가 바로 범인이었습니다. 사건의 전말: 12/9 주간 근무 생성: 구글에 전송됨 (ID: A123이라고 가정). ** Duplicate (복제)로 12/10 근무 생성**: DB에 저장될 때 원본의 Google ID (A123)도 그대로 복사되었습니다. 결과: 9일 근무와 10일 근무가 **둘 다 Google ID A123**을 가리키게 됨. 동기화 충돌: 시스템이 10일 근무를 업데이트하면 9일 근무(구글 일정)가 10일 내용으로 덮어씌워지거나, 서로 엉키게 됩니다. Audit 결과: 그래서 Audit이 “ID는 있는데 DB 내용이랑 안 맞는다(Mismatch)”고 계속 경고했던 것입니다. 해결 완료: 아까 제가 ShiftCalendarWidget.php 를 고쳐서, 이제 Duplicate 할 때 google_event_id를 지우도록 했습니다. 즉, 이제부터 생성하는 복제 근무는 새로운 Google ID를 발급받게 되므로 이 문제는 다시 발생하지 않습니다! 현재 오염된 데이터 처리: 이미 복사된 채로 DB에 들어간 10일, 9일 근무는 방금 audit –fix를 돌리셨다면 자동으로 **”새로운 ID 연결(Relinked)”**이 되면서 고쳐졌을 것입니다. **”고치고 나서도 ID가 저장이 안 되는 문제”**를 해결하기 위해 코드를 보강했습니다. 원인 추정: updateQuietly([‘google_event_id’ => …]) 함수가 특정 환경에서 제대로 DB 업데이트를 수행하지 못하고 넘어가는 것으로 보입니다. (Mass Assignment 보호 기능이나 다른 이유로) 해결책: 코드를 좀 더 “강력하고 확실한 방법”으로 바꿨습니다. ($shift->google_event_id = $id; $shift->saveQuietly();) 이렇게 하면 필터링 없이 강제로 DB에 값을 꽂아넣게 됩니다. 이제 아래 순서로 마지막 치료를 해주세요: 이제 안심하고 사용하셔도 됩니다! 🎉
[월:] 2025년 12월
-
GCP 반영 명령어
composer install –no-dev
php artisan migrate –force
php artisan optimize:clear
git fetch –all
npm install
npm run build
composer install –no-dev
php artisan optimize:clear
php artisan view:clear -
[건축]도면
철근 콘크리트: 보통 사선 3줄이나 점+삼각형 혼합 → 못을 박거나 코어링(구멍 뚫기) 할 때 매우 주의해야 함
조적(벽돌): 빗금 사선 → 상대적으로 배관 통과가 쉬움
단열재: 구불구불한 선 → 화재 시 유독가스 위험 부위 파악
시설관리에서 가장 헷갈리지만 중요한 부분입니다. **우리가 발 딛는 바닥(평면도)**과 **고개를 들어 보는 천장(천장도)**은 도면이 다릅니다.
- 검색 키워드:
Reflected Ceiling Plan example,천장도 평면도 비교 - 주목할 점:
- 평면도: 벽, 문, 가구 위치가 나옵니다.
- 천장도(RCP): 조명(전기), 스프링클러(소방), 환기구(공조), 점검구 위치가 나옵니다.
- 팁: 누수가 발생하면 ‘평면도’가 아니라 ‘천장도’를 보고 윗집 배관 위치를 짐작해야 합니다
검색 키워드:
MEP coordination drawing,건축 설비 간섭 검토- 건축 도면(밑바탕) 위에 기계(M), 전기(E), 배관(P) 선들이 겹쳐져 있는 복잡한 이미지입니다.
- 천장 속에서 배관과 전선 트레이가 서로 부딪히지 않고 지나가는지 확인하는 용도입니다.
- 검색 키워드: