GRAVITY는 제조 현장의 핵심 업무(생산, 입고, 재고, 관리자 설정)를 단일 플랫폼에서 운영하는 스마트 MES입니다. 실시간 재고 흐름 추적, 레시피(BOM) 기반 생산 처리, 역할 기반 관리자 설정 등 현장 요구를 반영하여 설계했습니다. 백엔드(Flask)와 프론트엔드(React)를 직접 설계·구현하고, JWT 인증, 트랜잭션 기반 생산/재고 처리, DB 동기화 전반을 주도했습니다.
MES 통합 생산관리 시스템
생산·입고·재고·사용자 관리를 하나로 묶어 현장의 디지털 전환을 견인한 통합 플랫폼
프로젝트 개요
핵심 기능
레시피(BOM) 기반 생산 자동화
제품 생산 시 레시피에 정의된 다수 자재를 원자적(atomic) 트랜잭션으로 소모하며, 완료 즉시 재고가 반영됩니다.
JWT 기반 사용자 인증
Flask-JWT-Extended(Python PyJWT 기반)로 로그인·회원가입·토큰 갱신까지 안전한 인증 수명주기를 구현했습니다.
입고 계획/완료 대시보드
입고 계획 테이블과 모달 기반 등록·완료 UI를 제공하고, 상태 구분 렌더링으로 작업 흐름을 명확히 했습니다.
RBAC & 감사로그
역할 기반 접근 제어(RBAC)와 주요 행위 감사로그(Audit Log)로 설정·재고 변경의 추적 가능성과 통제력을 확보했습니다.
Batch/Lot 추적 및 역추적
입고·생산 이벤트에 배치/로트 정보를 부여해 ‘어떤 자재가 어떤 제품으로 전환되었는가’를 역추적할 수 있도록 설계했습니다.
재고 실시간 조회/보정
생산·입고 이벤트 발생 시 재고를 실시간 갱신하며, 품목별 상세 조회/보정(인벤토리 어드저스트) 기능을 제공합니다.
시스템 아키텍처

React(Frontend) ↔ Flask API(Backend) ↔ MySQL
- JWT 인증(Access/Refresh, Axios 인터셉터 기반 Silent Refresh)
- 생산 API: 레시피(BOM) 기반 재고 차감 트랜잭션
- RBAC/Audit Log로 변경 이력 추적 및 접근 통제
- Docker 기반 실행, (선택) Gunicorn + Nginx 배포
기술 스택
백엔드: Python, Flask, SQLAlchemy, Flask-JWT-Extended, (선택) Alembic 프론트엔드: React, Axios 데이터베이스: MySQL 인프라: Docker, (선택) Gunicorn + Nginx 비동기 처리(선택): Celery + Redis 검증: 스키마 기반 요청/응답 밸리데이션
담당 역할
도메인/백엔드 설계·구현
레시피(BOM) 기반 생산 트랜잭션, 원자적 재고 차감, 오류 시 롤백 등 핵심 비즈니스 로직을 설계·구현.
입고/관리자 UI 개발
입고 계획 테이블·등록 모달, 관리자/단위/원산지 관리 등 상태 기반 UI와 폼 검증 구현.
데이터 모델링 및 동기화
MySQL 스키마 설계, 배치/로트 모델 도입, 이벤트 기반 재고 동기화 및 상세 조회 최적화.