Files
tk-factory-services/PROGRESS.md
Hyungi Ahn 93edf9529a refactor: 보안 취약점 제거 + 데드코드 정리 + 프론트엔드 중복 통합
- 인증 없는 임시 엔드포인트 삭제 (index.js, healthRoutes.js, publicPaths)
- skipAuth 우회 라우트 삭제 (workAnalysis.js)
- 하드코딩 유저 백도어 삭제 (routes/auth.js)
- 안전체크 CRUD에 admin 권한 추가 (tbmRoutes.js)
- deprecated shim 3개 삭제 + 8개 소비 파일 import 정리 (auth.js 직접 참조)
- 미사용 pageAccessController, db.js, common/security.js 삭제
- escapeHtml() 5곳 로컬 중복 제거 → api-base.js 전역 사용
- userPageAccess_v2_v2 캐시 키 버그 수정 (app-init.js)
- system3 .bak 파일 삭제, PROGRESS.md 업데이트

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 08:19:01 +09:00

6.1 KiB

TK 공장관리 3-System 분리 및 통합 - 진행 상황

최종 업데이트: 2026-02-25


전체 목표

TK-FB-Project(공장관리+신고)와 M-Project(부적합관리)를 3개 독립 시스템으로 분리하고 SSO + 데이터 연동으로 통합.

시스템 설명 서브도메인
System 1 - 공장관리 TBM, 출근, 작업보고, 설비, 모바일 대시보드 tkfb.technicalkorea.net
System 2 - 안전신고 5단계 신고 위자드, 작업장 연동 tkreport.technicalkorea.net
System 3 - 부적합관리 (TKQC) NCR, 일일공수, 보고서 tkqc.technicalkorea.net
tkuser - 통합 관리 사용자/권한/마스터데이터 관리 tkuser.technicalkorea.net

배포 환경: Synology DS923+ NAS (LAN: 192.168.0.3, Tailscale: 100.71.132.52)


현재 NAS 운영 상태 (통합 배포 완료)

배포일: 2026-02-11 | 위치: /volume1/docker_1/tk-factory-services

컨테이너 이미지 역할
tk-gateway nginx:alpine 서브도메인 라우팅 + 포털/로그인
tk-sso-auth node:18-alpine SSO 인증 (JWT + 쿠키)
tk-tkuser-api node:18-alpine 마스터데이터 API
tk-tkuser-web nginx:alpine tkuser 웹
tk-system1-api node:18-alpine 공장관리 API
tk-system1-web nginx:alpine 공장관리 웹
tk-system1-fastapi python:3.9-slim FastAPI 캐싱 브릿지
tk-system2-api node:18-alpine 안전신고 API
tk-system2-web nginx:alpine 안전신고 웹
tk-system3-api python:3.9-slim 부적합관리 API (FastAPI)
tk-system3-web nginx:alpine 부적합관리 웹
tk-mariadb mariadb:10.9 MariaDB (System 1, 2, tkuser 공유)
tk-postgres postgres:15-alpine PostgreSQL (System 3 전용)
tk-redis redis:6-alpine 캐시
tk-phpmyadmin phpmyadmin DB 관리 (LAN only, 30880)
tk-cloudflared cloudflare/cloudflared Cloudflare Tunnel

단계별 진행 상황

Phase 0: TKQC NAS 배포 완료

  • M-Project 배포 패키지 → NAS 설치 → Docker 기동
  • PostgreSQL 마이그레이션 (001~020)
  • Cloudflare Tunnel tkqc.technicalkorea.net 설정
  • 컨테이너 리네임 (m-project → tkqc)

Phase 1~4: 코드 분리 + SSO + Gateway 완료

  • 3개 시스템 코드 분리 (TK-FB → System 1+2, M-Project → System 3)
  • SSO Auth 서비스 (bcrypt + pbkdf2 이중 해시, JWT 7일/30일)
  • 프론트엔드 SSO 쿠키 통합 (52+ 파일, domain=.technicalkorea.net)
  • Gateway 서브도메인 라우팅 (path-based에서 전환)
  • tkuser 통합 관리 서비스 (사용자, 권한, 프로젝트, 작업장, 설비, 부서, 작업자)

Phase 5: 마이그레이션 스크립트 완료

  • scripts/migrate-users.sql, backup.sh, deploy.sh, health-check.sh

Phase 6: NAS 통합 배포 완료 (2026-02-11)

  • 전체 백업 (MariaDB, PostgreSQL, uploads)
  • tk-factory-services NAS 전송 + .env 설정
  • 기존 TK-FB/TKQC 중지 → 통합 docker-compose up (16 컨테이너)
  • SSO 유저 마이그레이션
  • Cloudflare Tunnel 서브도메인 4개 설정

Phase 7: 테스트 및 Go-Live 완료 (2026-02-12)

  • SSO 로그인 → 3개 시스템 간 이동 (재로그인 없음)
  • 신고 생성 → 부적합 자동 전달 (tkreport → tkqc)
  • 사진 업로드, 알림, 데이터 정합성 확인
  • 프로덕션 Go-Live

배포 이후 개발 (Phase 8+)

2026-02-13: System 2/3 업데이트 + 문서 재구성

  • System 2, 3 웹/API 업데이트 및 재빌드
  • 문서 4개 MD → docs/ 폴더 7개 파일로 재구성

2026-02-14: 모바일 UX + PWA

  • 모바일 대시보드 v1 (카테고리 탭 → 작업장 리스트 → 요약 숫자)
  • PWA 구현 (manifest, service worker)
  • 모바일 CSS 전면 최적화 (터치 타겟, 레이아웃)

2026-02-24~25: TBM 시스템 전면 개편

  • 4단계 워크플로우: draft → detail_edit → completed → work_report
  • 모바일 전용 TBM 페이지 (tbm-mobile.html) + 3단계 생성 위자드
  • 작업자 작업 분할 (work_hours + split_seq)
  • 작업자 이동 보내기/빼오기 (tbm_transfers 테이블)
  • 중복 배정 방지 (당일 배정 현황 조회)
  • 모바일 작업보고서 페이지 (report-create-mobile.html)
  • DB 마이그레이션 4개 (attendance_type, work_hours, tbm_transfers, split_seq)

2026-02-25: 권한 시스템 통합

  • tkuser user_page_permissions → system1 페이지 접근 연동
  • 라우트 우선순위 수정 (pageAccessRoutes > userRoutes)
  • 3단계 폴백: 개인 권한 → 부서 기본 → TKUSER_DEFAULT_ACCESS
  • 40+ 페이지 키 매핑 (PAGEKEY_TO_TKUSER)

2026-02-25: 모바일 대시보드 v2 — 작업장 카드 확장 뷰

  • 카드 탭 → 아코디언 확장 (TBM 작업, 방문, 신고, 이동설비 상세)
  • 캐시 데이터 활용 (추가 API 호출 없음)
  • NAS 배포 완료

포트 매핑

포트 서비스
30000 Gateway (nginx)
30005 System 1 API (Express)
30008 System 1 FastAPI Bridge
30050 SSO Auth (Express)
30080 System 1 Web (nginx)
30105 System 2 API (Express)
30180 System 2 Web (nginx)
30200 System 3 API (FastAPI)
30280 System 3 Web (nginx)
30300 tkuser API (Express)
30380 tkuser Web (nginx)
30306 MariaDB
30432 PostgreSQL
30880 phpMyAdmin

주요 파일 위치

로컬 (Mac)

  • 통합 프로젝트: /Users/hyungiahn/Documents/code/tk-factory-services/
  • 가이드 문서: ~/Library/CloudStorage/SynologyDrive-Technicalkorea/tkfb-package/docs/
  • Git: https://git.hyungi.net/hyungi/tk-factory-services.git

NAS (Synology DS923+)

  • 통합 배포: /volume1/docker_1/tk-factory-services
  • SSH: hyungi@100.71.132.52 (Tailscale)
  • Docker: echo 'fukdon-riwbaq-fiQfy2' | sudo -S /usr/local/bin/docker

레거시 (참고, 중지됨)

  • TK-FB 원본: /volume1/Technicalkorea Document/tkfb-package/
  • TKQC 원본: /volume1/docker/tkqc/tkqc-package/