25

아키텍처 문서와 운영 매뉴얼 - 시스템의 지도를 그려라

Day 1: 기술 문서화 - 코드를 넘어 이야기를 남겨라

학습 목표

아키텍처 문서의 핵심 구성 요소를 이해한다 운영 매뉴얼에 반드시 포함해야 할 항목을 파악한다 Mermaid 다이어그램 활용법을 익힌다

아키텍처 문서: 왜 필요한가?

README는 "이 프로젝트가 뭔지" 알려준다. 아키텍처 문서는 "이 시스템이 어떻게 돌아가는지" 알려준다.

아키텍처 문서가 필요한 순간
━━━━━━━━━━━━━━━━━━━━━━━━
"이 에러가 어디서 발생한 거야?"     → 컴포넌트 의존 관계
"이 데이터가 어디서 오는 거야?"     → 데이터 흐름도
"이 서비스 죽으면 뭐가 영향받아?"   → 장애 영향 범위
"이 부분 성능이 느린데 뭘 봐야 해?" → 병목 지점 파악

아키텍처 문서 구조 (C4 Model 기반)

레벨이름독자내용
L1System Context비개발자시스템과 외부 연동
L2Container아키텍트서비스/DB/큐 구성
L3Component개발자모듈/클래스 수준
L4Code유지보수자핵심 클래스 UML

제조 AI 프로젝트에서는 L2 (Container) + 데이터 흐름도가 핵심


제조 AI 시스템의 데이터 흐름도

데이터 흐름 (사용자 질문 → 최종 응답)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

사용자: "CNC E-001 에러가 자꾸 나요. 어떻게 해야 하나요?"

                  ┌─────────┐
                  │ Streamlit│
                  │   UI    │
                  └────┬────┘
                       │ POST /api/diagnose
                       ▼
                  ┌─────────┐
                  │ FastAPI  │
                  │ Gateway  │
                  └────┬────┘
                       │ Agent Router (LangGraph)
                       ▼
              ┌────────┴────────┐
              │                 │
        ┌─────▼─────┐   ┌──────▼──────┐
        │  KG Tool   │   │  RAG Tool   │
        │ (Neo4j)    │   │ (ChromaDB)  │
        └─────┬─────┘   └──────┬──────┘
              │ Cypher 쿼리    │ 유사도 검색
              │                │
        ┌─────▼─────┐   ┌──────▼──────┐
        │ 관련 설비   │   │ 매뉴얼 문서  │
        │ 부품, 이력  │   │ 안전 기준서  │
        └─────┬─────┘   └──────┬──────┘
              │                │
              └────────┬───────┘
                       │ 컨텍스트 통합
                       ▼
                  ┌─────────┐
                  │  LLM    │
                  │ (GPT-4o)│
                  └────┬────┘
                       │ 진단 결과 + 조치 방법
                       ▼
                  ┌─────────┐
                  │  응답    │
                  └─────────┘

Mermaid로 다이어그램 그리기

GitHub README에서 바로 렌더링되는 Mermaid:

```mermaid
graph TD
    A[사용자] --> B[Streamlit UI]
    B --> C[FastAPI Gateway]
    C --> D{Agent Router}
    D --> E[RAG Tool]
    D --> F[KG Tool]
    D --> G[Diagnosis Tool]
    E --> H[ChromaDB]
    F --> I[Neo4j]
    G --> J[에러 이력 DB]
    E --> K[LLM]
    F --> K
    G --> K
    K --> L[진단 응답]

---

## 운영 매뉴얼 필수 항목

| 섹션 | 내용 | 왜 필요한가 |
|------|------|------------|
| **배포 절차** | docker compose 명령, 환경변수 | 새로운 서버에 배포할 때 |
| **모니터링** | 로그 위치, 알림 설정 | 장애 감지 |
| **백업/복구** | DB 백업 주기, 복구 절차 | 데이터 손실 방지 |
| **장애 대응** | 자주 발생하는 에러와 해결법 | 새벽에 장애 나면? |
| **스케일링** | CPU/메모리 기준, 스케일 방법 | 트래픽 증가 시 |

### 장애 대응 런북 예시

장애 대응 런북 (Runbook) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━

증상: Neo4j 연결 실패 원인: 1) Neo4j 컨테이너 다운 2) 메모리 부족 3) 볼륨 마운트 이상

대응:

  1. docker ps | grep neo4j 로 상태 확인
  2. docker logs neo4j --tail 50 로 로그 확인
  3. 컨테이너 재시작: docker compose restart neo4j
  4. 메모리 부족 시: NEO4J_HEAP_SIZE 조정 후 재시작

에스컬레이션:

  • 30분 내 해결 안 되면 → 인프라팀 연락

---

## 핵심 정리

1. 아키텍처 문서는 **데이터 흐름도**가 핵심
2. Mermaid로 GitHub에서 바로 렌더링 가능
3. 운영 매뉴얼 없이 프로덕션 배포는 **시한폭탄**
4. 장애 대응 런북은 **새벽 3시에 빛난다**
      
AI로 학습하기 — 꿀팁
🤖아키텍처 문서 템플릿 생성기AI 학습 팁

AI에게 제조 AI 시스템의 아키텍처 다이어그램과 운영 매뉴얼 템플릿을 자동 생성하게 하면 누락 항목 없이 완성도 높은 문서를 만들 수 있습니다.

제조 AI 시스템 아키텍처 문서를 Markdown으로 작성해줘. 포함 항목: 1) C4 모델 기준 컨텍스트/컨테이너/컴포넌트 레이어 설명, 2) 센서→PLC→MES→AI 추론 서버→대시보드 데이터 흐름도(Mermaid 다이어그램), 3) 장애 포인트별 복구 절차(RTO/RPO 포함), 4) 신규 엔지니어가 온보딩 1일차에 읽어야 할 섹션 체크리스트. 우리 시스템 정보: [설비명/모델명/배포 환경 간략히 기술]
이 팁이 도움이 됐나요?