- 슬랫 타입별(EGI/STS304/실리카/와이어) 두께·피치·중량 반영
- C채널 가이드레일 ExtrudeGeometry 적용
- 셔터박스·샤프트·모터·바텀바 실제 구조 반영
- JSON 패널 접기/펼치기 토글 추가
- 자동 계산 패널(W1, H1, 면적, 중량) 추가
- 셔터 하강 위치 슬라이더 추가
- 단일 플라이바이 → 28개 텍스트(SAM 12 + 샘 16) 멀티 쇼 효과 교체
- 3단계 연출: GATHER(별 모임) → HOLD(압축 회전) → BURST(폭발 소멸)
- 15색 팔레트, 다양한 크기, 구 표면 랜덤 출발점
- 한글 '샘' Canvas 스프라이트 + 영문 'SAM' 3D TextGeometry 혼합
- 백색 플래시 구체로 버스트 시 임팩트 강화
- Three.js TextGeometry로 'SAM' 3D 입체 텍스트 생성
- 큐빅 베지어 곡선 경로로 건물 위 하늘을 대각선 횡단
- ease-in-out 가속/감속, 글로우 펄스, 페이드인/아웃 효과
- 메탈릭 블루 재질 + 반투명 글로우 외곽 이중 레이어
- 하단 툴바에 SAM 버튼 추가 (그라데이션 스타일)
- 빨간색(E53935) 반투명 패널로 시각적 구분
- 계단실 입구 방화셔터 (각 층 1개)
- 방화구획 경계 셔터 (X=20m, 40m 지점, 각 층 2개)
- 하단 툴바에 방화셔터 토글 버튼 추가
- 요소 통계에 방화셔터 카운트 자동 표시
- IFC 내보내기 시 방화셔터 포함
- 카메라 초기 위치를 (55,35,55)→(80,50,80)으로 변경하여 건물 전체 조망
- fog 밀도 0.004→0.003으로 조정 (넓은 시점에서 선명하게)
- 하단 툴바를 absolute→shrink-0 flex 자식으로 변경하여 항상 표시
- 스크롤 없이 IFC 업로드/다운로드 버튼 접근 가능
- 자료실 하위 3개 메뉴: 자료보관함, 매뉴얼, 공지사항
- 자료보관함: 폴더 트리 + 파일 업로드/다운로드/삭제
- 매뉴얼/공지사항: 게시판형 CRUD + 첨부파일
- 안전관리: 안전보건교육, TBM현황, 위험성평가, 재해예방조치
- 품질관리: 시정조치 UI 페이지
- 대시보드: 슈퍼관리자 전용 레거시 사이트 참고 카드
- 작업일보/출면일보 오류 수정 및 기능 개선
- 설비 사진 업로드, 근로계약서 종료일 수정
- 일별 출면일보 마스터 + 인원/장비 3테이블 마이그레이션
- 캘린더 스트립 (1~31일) 날짜 선택 및 상태 닷 표시
- 인원/장비 탭 CRUD (추가/수정/삭제/번개 랜덤데이터)
- 검토자 확인 모달 (조직도 + 검색 + 검토라인)
- 양식보기 모달 (출면일보/장비일보 인쇄 양식)
- 날씨/특이사항/상태 업데이트 API
- PmisWorkforceController: 인원/직종 CRUD API
- PmisConstructionWorker, PmisJobType 모델 추가
- 인원등록 탭: 실제 DB CRUD, 페이지네이션, 필터, 모달
- 직종 44개 시드 데이터 등록
- API 라우트 추가 (workers, job-types)
- web-ifc WASM 엔진으로 IFC 파일 파싱 (지연 로딩)
- IFC 지오메트리 → Three.js BufferGeometry 직접 변환
- 요소 클릭 시 IFC 속성 조회 (이름, 타입, GlobalId 등)
- 드래그 앤 드롭 + 파일 업로드 버튼
- 로딩 오버레이 (엔진 초기화, 파싱, 모델 생성 단계별)
- 데모 모델 ↔ IFC 모델 전환
- IFC 모델 자동 카메라 피팅
- IFC 요소 타입별 통계 표시
- PMIS 전용 좌측 사이드바 (사용자 프로필 + 네비게이션 메뉴)
- 개인정보 관리 모달 (보기/수정 모드 전환)
- 연락처, 이메일, 성별 편집 및 서버 저장 기능
- 프로필 조회/수정 JSON API 엔드포인트 추가
- 3컬럼 레이아웃 (좌측 사이드바 + 대시보드 + 우측 퀵메뉴)
- 기존 대시보드 WeatherService를 활용한 JSON API 추가
- React 날씨 위젯에서 /juil/construction-pmis/weather 호출
- 기상청 API 기반 오늘/내일 날씨, 기온, 강수확률 표시
- Blade weather-icon과 동일한 SVG 아이콘 React 컴포넌트 구현
- 건설PMIS 메뉴 페이지 생성 (construction-pmis.blade.php)
- 업무 Flow 보기 버튼 → 모달창 4개 탭 구현
- KCC KOUP 업무 Flow 이미지 4장 포함
- PlanningController에 constructionPmis 메서드 추가
- 새 파일: resources/views/partials/react-cdn.blade.php
- 모든 React 페이지에서 중복된 CDN 스크립트를 @include('partials.react-cdn')로 대체
- 30개 파일 업데이트 (finance, juil, system, sales)
- 유지보수성 향상: CDN 버전 변경 시 한 곳만 수정
- Web Audio API rawAnalyser를 오디오 체인에 삽입 (compressor 이전, 원본 신호 분석)
- Spectral Centroid + VAD 기반 100ms 간격 실시간 화자 분류 엔진 구현
- 500ms 윈도우 다수결 투표로 화자 안정성 확보
- 수동 화자 선택 버튼 제거 → 자동 감지 인디케이터로 대체
- 최대 4명까지 자동 화자 프로필 등록 및 speakers 동기화
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
DynamicsCompressor가 모든 화자의 음량을 동일하게 압축하여
화자 음성 특성이 파괴되는 문제 해결:
- MediaRecorder 1 (처리된 스트림): 실시간 Web Speech API용
- MediaRecorder 2 (원본 스트림): GCS 업로드 → 화자분리용
- 원본 오디오가 화자 음성 특성을 보존하여 분리 정확도 향상
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 프론트엔드: Web Audio API 전처리 파이프라인 (GainNode + DynamicsCompressor + AnalyserNode)
- 프론트엔드: VU 미터 실시간 레벨 표시 + 마이크 감도 슬라이더 (0.5x~3.0x)
- 프론트엔드: getUserMedia constraints 강화 + MediaRecorder 128kbps Opus
- 백엔드: Google STT V2 API + Chirp 2 모델 batchRecognize 메서드 추가
- 백엔드: V2→V1 자동 폴백 래퍼 (speechToTextWithDiarizationAuto)
- 백엔드: Speech Adaptation 도메인 용어 힌트 (블라인드/스크린 등 22개)
- 백엔드: V2 SentencePiece 토큰 자동 감지 분기 처리
- 설정: config/services.php에 google.location 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- ▁(U+2581) 문자를 _(U+005F)와 별도로 처리
- SentencePiece 토큰 결합 로직 추가 (joinSentencePieceTokens)
- ▁로 시작하는 토큰: 새 단어 → 공백 추가
- ▁없는 토큰: 이전 단어에 직접 붙임
- cleanSttText에서 ▁→공백 변환 추가
- 프론트엔드에서도 ▁ 문자 정제 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 대화 기록 탭에서 텍스트, 화자 변경, 세그먼트 삭제 가능
- 편집/저장/취소 버튼을 탭 바에 배치
- 자동 높이 조절 textarea 컴포넌트 추가
- 녹음 중에는 편집 버튼 숨김
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- GoogleCloudService: 단어 내부/앞뒤 _ 모두 제거 + cleanSttText 헬퍼
- MeetingMinuteService: 세그먼트 저장 시 _ 제거
- 프론트엔드: 대화기록/스크립트 탭 표시 시에도 _ 제거
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>