프로젝트 목록으로
의료씨엠병원 · 2026.05 ~

CM병원 그룹웨어

13개 업무 도메인을 DDD로 모듈화한 병원 통합 업무 시스템

담당 — 전체 아키텍처 설계 및 단독 개발 (기획 → 설계 → 개발 → 프로덕션 운영)

전자결재·근태/연차·게시판·사내 메일/메신저·문서 발급·직무평가·프로젝트 칸반을 단일 플랫폼으로 통합한 사내 그룹웨어. Laravel 12 DDD 구조로 13개 도메인을 분리하고 프로덕션 운영 중입니다.

AI(Claude Code) 페어 프로그래밍을 핵심 개발 방식으로 채택하고, hooks·슬래시 커맨드·프로젝트 전용 MCP 서버로 AI 행동을 통제·검증하는 자동화 레이어를 직접 설계했습니다.

라이브 데모

포트폴리오 열람용 공개 데모 계정입니다. 데모 계정은 조회 외 기능이 차단되어 있어 자유롭게 접속해보셔도 됩니다.

chungmu.xyz 접속ID: demo / PW: 123456

스크린샷

실제 운영/실행 화면을 직접 캡처했습니다.

로그인 — TailAdmin 디자인 시스템 Blade 이식1 / 7
로그인 — TailAdmin 디자인 시스템 Blade 이식

배경과 문제

병원의 업무가 종이 결재, 수기 근태 관리, 개별 메신저, 흩어진 문서 발급 절차로 분산되어 있었습니다. 전자 결재·근태/연차·게시판·사내 메일/메신저·문서 발급·직무평가·회의록·프로젝트 칸반을 하나의 플랫폼으로 통합하는 것이 목표였습니다.

병원 직원 중 고령 사용자가 많아 폰트·버튼 최소 크기 규칙을 강제하는 등 접근성을 설계 단계부터 반영했습니다.

핵심 성과

  • 다형성(Polymorphic) 전자결재 엔진 — 이종 문서를 단일 결재 흐름으로 처리
  • 사용자 생성 시 메일/메신저 계정 자동 프로비저닝 (이벤트-리스너)
  • TailAdmin 디자인 시스템을 Blade로 이식, 다크모드 지원
  • ADR 7건으로 아키텍처 의사결정 영구 기록

아키텍처 & 설계 포인트

  • Laravel 12 기반 도메인 주도 설계(DDD)로 13개 업무 도메인(결재·근태·일정·게시판·메일·직무평가·증명서·칸반 등)을 모듈화 — 도메인 간 결합을 이벤트로 낮춰 기능 추가가 다른 도메인을 깨지 않는 구조
  • 다형성(Polymorphic) 전자결재 엔진 — 휴가/연장근무/문서결재 등 이종 문서를 단일 결재 흐름으로 처리하고, 결재 완료 시 트랜잭션 내 콜백(onApprovalCompleted)으로 연차 차감 등 후속 처리를 자동화
  • 사용자 생성 이벤트(UserCreated) → Mailcow 메일 계정 + Mattermost 메신저 계정 자동 프로비저닝하는 이벤트-리스너 구조
  • DB 저장 + 30초 폴링 인앱 알림 + Mattermost DM + SMTP 메일의 다중 채널 통합 알림
  • 전역 클릭 위임 핸들러로 모든 내부 링크를 Livewire.navigate() 처리해 전 페이지 SPA 경험 구현 (링크마다 wire:navigate 불필요)
  • N+1 방지 eager loading과 복합 인덱스 설계로 핵심 조회 경로 최적화, TailAdmin 디자인 시스템을 Blade로 이식해 다크모드까지 지원

AI(Claude Code) 활용

  • Claude Code 페어 프로그래밍을 정식 개발 방법론으로 채택하고 "Harness Engineering" 레이어를 직접 설계 (ADR-0001)
  • Hooks 4종 — .env 수정 차단(env-guard), 민감파일 staging 차단(git-add-guard), 커밋 전 포맷 검증(pre-commit-lint), 편집 후 자동 pint 포맷팅
  • 자동 코드리뷰 슬래시 커맨드 5종 — /review-migration, /review-security(OWASP Top 10), /review-architecture(DDD 경계 감사), /deploy-check, /qa-browser(Playwright)
  • 프로젝트 전용 MCP 서버(Laravel MCP) 구축 — DB 스키마·모델 관계·라우트 조회 도구를 AI에 제공해 실제 코드베이스 컨텍스트 기반으로 작업
  • 영역별 전문 스킬 9종을 프로젝트 로컬로 고정(skills-lock.json 해시)하고, 아키텍처 결정 7건을 ADR로 영구 기록

기술 스택

Laravel 12PHP 8.4Filament 5Livewire 4Tailwind CSS 4MySQLDockerMattermostMailcowClaude CodeMCP