
PLSnote — PDCA 기반 회의 실행 관리 플랫폼
“회의를 실행으로 옮겨보자, PLS 회의 트래킹!” — PLSnote는 조직의 회의에서 도출된 계획과 과제를 PDCA(Plan-Do-Check-Act) 사이클로 체계적으로 추적하고 관리하는 경영관리 플랫폼입니다.
KPI 관리, 이슈 추적, 전략 수립, 회의록 작성부터 실시간 채팅, 태스크 관리, 푸시 알림까지 — 조직의 목표 설정에서 실행, 평가, 개선에 이르는 전 과정을 하나의 플랫폼에서 수행할 수 있습니다. 웹, iOS, Android를 모두 지원합니다.
프로젝트 개요
많은 조직에서 회의의 결정 사항이 실행으로 이어지지 못합니다. PLSnote는 이 문제를 해결하기 위해 경영학의 PDCA(Plan-Do-Check-Act) 프레임워크를 소프트웨어로 구현했습니다.
조직 전체의 전략, KPI, 이슈, 회의록을 하나의 “맵(Map)”으로 구성하고, 각 항목이 PDCA 사이클의 어느 단계에 있는지를 실시간으로 추적합니다. 팀별 계획 수립, 노트(일지) 작성, 태스크 배정과 확인, 평가까지 — 모든 과정이 수치화된 지표로 집계되어 경영진과 팀 리더가 한눈에 진행 상황을 파악할 수 있습니다.
시스템 구조
PLSnote는 Ruby on Rails 서버를 중심으로, 실시간 WebSocket 통신, 비동기 백그라운드 작업, 모바일 푸시 알림을 통합한 풀스택 아키텍처로 구성됩니다. iOS/Android 앱은 하이브리드(WebView) 방식으로 웹 애플리케이션을 네이티브 쉘로 감싸 빠른 개발과 일관된 UX를 제공합니다.
| 구성 요소 | 기술 스택 | 역할 |
|---|---|---|
| Web Server | Ruby on Rails 6.0, Ruby 3.0, Puma, Slim Templates | 서버 사이드 렌더링, RESTful API, 인증/인가 |
| Frontend | Stimulus.js, Bootstrap 4, jQuery, Turbolinks, Webpacker | 동적 UI 인터랙션, SPA-like 페이지 전환 |
| 실시간 통신 | ActionCable (WebSocket), Redis Pub/Sub | 실시간 채팅, 라이브 알림, 페이지 자동 갱신 |
| 비동기 처리 | Sidekiq + Redis, Whenever (Cron) | 푸시 알림 발송, 리마인더, 배치 작업 |
| 데이터베이스 | MariaDB (MySQL 호환), 78개 테이블 | 조직·맵·계획·태스크·채팅·알림 데이터 관리 |
| 푸시 알림 | Firebase Cloud Messaging (FCM), Web Push API | 모바일/브라우저 실시간 알림 |
| Android 앱 | Kotlin, WebView, Retrofit, Firebase | 하이브리드 앱 — 웹 콘텐츠 + 네이티브 푸시 |
| iOS 앱 | Swift, WKWebView, Alamofire, Firebase | 하이브리드 앱 — 웹 콘텐츠 + 네이티브 푸시 |
| 파일 저장소 | AWS S3, Active Storage | 첨부 파일, 이미지 업로드 및 관리 |
| 배포 | Docker Compose, AWS ECS, GitLab CI/CD | 컨테이너 오케스트레이션, 자동 빌드/배포 |
아키텍처 다이어그램
Stimulus.js + Bootstrap 4 + Turbolinks
Kotlin + WebView + Firebase
Swift + WKWebView + Firebase
HTTPS / WebSocket
HTTP Server
WebSocket
Authentication
78 Tables
Soft Delete
Cache + PubSub
Job Queue
File Storage
Active Storage
→ FCM Push (iOS/Android) · → Web Push · → Reminders
핵심 기능
1. PDCA 기반 맵(Map) 관리
PLSnote의 핵심 개념은 “맵(Map)”입니다. 하나의 맵은 조직의 특정 관리 영역을 나타내며, 4가지 유형이 있습니다:
- KPI 맵 — 핵심성과지표(KPI) 관리. CSF(핵심성공요인)와 KPI를 정의하고, Plan(계획) → Do(실행) → Check(확인) → Act(조치) 사이클로 추적
- 이슈 맵 — 프로젝트별 이슈 관리. 발생한 이슈의 진행 상태를 PDCA로 추적하고 해결
- 전략 맵 — 중장기 전략 과제 관리. 전략의 수립부터 실행, 점검, 피드백까지 전 과정 관리
- 회의록 — 회의에서 결정된 사항을 기록하고, Do(실행)→Check(확인)→Act(조치)로 후속 조치 관리
각 맵은 팀별 계획(Plan) 탭과 분석(Analysis) 탭으로 구성됩니다. 팀별 계획 탭에서는 팀 리더가 계획을 수립하고, 팀원이 실행 노트를 작성하고, 관리자가 확인/평가합니다. 분석 탭에서는 기간별로 PDCA 각 단계의 수치화된 지표가 자동 집계되어 차트와 매트릭스로 시각화됩니다.
PDCA 각 단계에서 자동 집계되는 주요 지표:
| 단계 | 집계 지표 |
|---|---|
| P (Plan) | 신규 계획 수, 확인 전 계획의 예약점수, 노트 기록 주기(AVG), 계획 리마인더 수 |
| D (Do) | 신규 노트 수, 노트 기록 리마인더 수, 대화방이 개설된 노트 수 |
| C (Check) | 신규 대화방 수, 태스크가 있는 대화방 수 |
| A (Act) | 신규 태스크, 확인 전 태스크의 예약점수, 리마인더, 기한 내 완료율(%), 평가 제외(%) |
2. 이슈맵 & 전략맵
이슈맵은 프로젝트별로 발생하는 이슈를 PDCA 프레임워크로 관리합니다. 각 이슈에 대해 Plan(계획) → Do(실행) → Check(확인) → Act(조치) 상태를 부여하고, 팀별로 이슈의 현황과 진행 상태를 한눈에 파악할 수 있습니다.
전략맵은 조직의 중장기 전략 과제를 관리합니다. 전략별로 하위 프로젝트를 구성하고, 각 프로젝트의 PDCA 진행 상태와 수치 지표를 집계합니다. 분석 탭에서는 프로젝트별, 팀별, 구성원별, 매트릭스별로 상세 분석이 가능합니다.
3. 회의록 — 회의에서 실행까지
회의록 맵은 PLSnote의 핵심 가치인 “회의를 실행으로”를 직접 구현합니다. 회의에서 결정된 사항을 기록하고, 각 결정 사항에 대해 Do(실행) → Check(확인) → Act(조치) 단계를 추적합니다. 팀별 계획 탭에서 회의 안건과 결정 사항을 구조화하고, 후속 조치의 실행 여부를 모니터링합니다.

4. 그룹 관리 — 구성원, 대화방, 태스크
PLSnote는 조직(그룹)을 중심으로 역할 기반 권한 체계를 운영합니다. 맵매니저, 팀매니저, 팀멤버, 옵저버, 평가자 등 다양한 역할을 부여할 수 있으며, 각 역할에 따라 접근 가능한 기능이 달라집니다.
그룹 내에서는 구성원 관리, 대화방(실시간 채팅), 태스크 관리(칸반 보드)를 통합적으로 운영합니다. 태스크는 “새로운 → 하는 중 → 다했음 → 확인”의 4단계 칸반 보드로 시각화됩니다.
5. 실시간 채팅 & 알림 시스템
PLSnote는 ActionCable(WebSocket) 기반의 실시간 채팅 시스템을 내장하고 있습니다. 그룹 대화방에서 팀원 간 실시간 메시지를 주고받으며, 노트·태스크·계획에 대한 논의를 즉시 수행할 수 있습니다.
알림 시스템은 모바일(FCM)과 웹(Web Push)을 모두 지원하며, 사용자별로 근무시간 내/외를 구분하여 알림 수신 여부를 세밀하게 설정할 수 있습니다. 맵별로 개별 알림 설정이 가능하여, 중요한 프로젝트만 실시간 알림을 받고 나머지는 업무시간에만 확인하는 등 유연한 운영이 가능합니다.

6. iOS/Android 하이브리드 앱
하이브리드(WebView) 아키텍처를 채택하여 웹 애플리케이션을 네이티브 쉘로 감쌌습니다. 웹의 빠른 개발·배포 이점을 살리면서, Firebase 푸시 알림, 네이티브 메뉴/네비게이션, JavaScript Bridge를 통한 네이티브-웹 통신으로 네이티브에 가까운 사용 경험을 제공합니다.
| 플랫폼 | 기술 | 주요 네이티브 기능 |
|---|---|---|
| Android | Kotlin, WebView, Retrofit, Firebase Messaging | FCM 푸시, JavaScript Bridge, In-App Update, 쿠키 기반 자동 로그인 |
| iOS | Swift, WKWebView, Alamofire, Firebase Messaging | FCM 푸시, WKJavaScriptController, 쿠키 복원, 커스텀 User Agent |
기술 스택 상세
| 영역 | 기술 |
|---|---|
| Backend | Ruby on Rails 6.0, Ruby 3.0.7, Puma (HTTP), Unicorn (Production) |
| Frontend | Stimulus.js (60+ 컨트롤러), Bootstrap 4.4, jQuery, Turbolinks 5.2, Webpacker 4.0 |
| 템플릿 / UI | Slim Templates, Semantic UI, Font Awesome 5, Animate.css, TUI Calendar |
| 차트 / 시각화 | Chartkick + Highcharts, Chart.js (PDCA 지표 대시보드) |
| 리치 텍스트 | Action Text, Trix Editor, Froala Editor, Tributejs (멘션) |
| 실시간 | ActionCable (WebSocket), Redis Pub/Sub, ChatChannel, ReloadChannel |
| 비동기 | Sidekiq 5.2 + Redis (35+ Job 유형), Whenever (Cron 스케줄링) |
| 데이터베이스 | MariaDB 10.5 (78개 테이블, Composite Primary Keys, Paranoia Soft Delete) |
| 인증 | Devise (커스텀 login_id), AuthTrail (로그인 이력), Device Detector |
| 관리자 | ActiveAdmin 2.9 (사용자/메트릭 관리, Sidekiq 모니터링) |
| 파일 | AWS S3 + Active Storage, MiniMagick (이미지 처리) |
| 데이터 | Caxlsx Rails (Excel 내보내기), Roo (Excel/CSV 읽기), GroupDate |
| 국제화 | Rails I18n — 한국어(ko), 영어(en) 지원 |
| Android | Kotlin 1.9, Gradle 8.6, Retrofit 2.11, Firebase BOM 33.1, In-App Update |
| iOS | Swift, WKWebView, Alamofire, Firebase Messaging, Carthage |
| 배포 | Docker Compose (Web + Sidekiq + Cron + Redis + DB), AWS ECS |
| CI/CD | GitLab CI — 테스트(MariaDB+Redis) → Docker 빌드(AWS ECR) → ECS 배포 |
| 모니터링 | New Relic RPM 7.2 (APM) |
PDCA 데이터 흐름
PLSnote에서 하나의 업무가 PDCA 사이클을 거치는 과정입니다:
리마인더
예약점수
기록 리마인더
논의 / 검토
기한 관리
| 노트 작성 | ➔ | ActionCable | ➔ | 대화방 자동 알림 |
| 태스크 배정 | ➔ | Sidekiq | ➔ | FCM 푸시 (iOS/Android) |
| 기한 도래 | ➔ | Cron (Whenever) | ➔ | 리마인더 알림 |
| 지표 변동 | ➔ | 자동 재집계 | ➔ | 분석 대시보드 갱신 |
배포 구성
전체 시스템은 Docker Compose로 통합 관리되며, GitLab CI/CD를 통해 자동 빌드·배포됩니다.
| 컨테이너 | 역할 | 특이사항 |
|---|---|---|
| web | Rails 애플리케이션 서버 (Puma) | 포트 3000, Webpack 프리컴파일 |
| sidekiq | 백그라운드 작업 처리 | 35+ Job 유형, Redis 연결 |
| cron | 스케줄 작업 (Whenever) | 리마인더, 배치 집계 |
| webpack-dev | 프론트엔드 개발 서버 | 개발 환경 전용, HMR |
| redis | 캐시, ActionCable, Sidekiq | PubSub + Job Queue |
| db | MariaDB 10.5 | UTF-8MB4, 자동 백업 |
CI/CD 파이프라인: GitLab CI에서 테스트(MariaDB + Redis 서비스 컨테이너) → Docker 빌드(AWS ECR 푸시) → ECS 배포의 3단계로 자동화되어 있습니다.
이 프로젝트가 보여주는 우리의 역량
PLSnote 개발을 통해, (주)민트기술은 경영관리 도메인의 복잡한 비즈니스 로직을 소프트웨어로 체계화하고, 웹·모바일을 아우르는 풀스택 플랫폼을 구축할 수 있는 역량을 보유하고 있음을 보여줍니다. 특히 다음과 같은 과제를 수행할 수 있습니다:
- B2B SaaS 플랫폼 구축 — 복잡한 조직 계층, 역할 기반 권한, 멀티테넌트를 지원하는 엔터프라이즈급 웹 애플리케이션
- PDCA·BSC·OKR 등 경영 프레임워크의 소프트웨어화 — 경영 방법론을 실제 동작하는 시스템으로 구현하고, 수치화된 지표와 분석 대시보드 제공
- 실시간 협업 시스템 — WebSocket 기반 채팅, 라이브 알림, 동시 편집 등 실시간 인터랙션이 필요한 플랫폼
- iOS/Android 하이브리드 앱 — 웹 기반 서비스를 네이티브 앱으로 확장하여, 푸시 알림·네이티브 기능을 통합한 크로스플랫폼 앱 개발
- 대규모 비동기 처리 시스템 — Sidekiq + Redis 기반의 백그라운드 작업 처리, 스케줄링, 알림 발송 자동화
- 데이터 분석 대시보드 — 조직의 업무 데이터를 자동 집계하여 차트, 매트릭스, 리포트로 시각화하는 BI 기능
- Docker + CI/CD 기반 클라우드 배포 — Docker Compose, AWS ECS, GitLab CI를 활용한 자동화된 빌드·테스트·배포 파이프라인
- 다국어(i18n) 지원 시스템 — 한국어/영어 등 다국어를 지원하는 국제화 가능한 소프트웨어 설계
경영관리 시스템, B2B SaaS 플랫폼, 실시간 협업 도구, 크로스플랫폼 앱 개발 등 관련 과제가 있으시면 언제든 연락 주세요.








