Conceptual Architecture 그리는 방법

System Architecture Design Fundamentals

시스템 설계의 첫 단계인 Conceptual Architecture를 정의하고 시각화하는 방법론을 다룬다.

Engineering
Architecture
저자

Kwangmin Kim

공개

2025년 11월 15일

1 Conceptual Architecture의 정의

Conceptual Architecture는 시스템 설계의 첫 번째 추상화 계층으로, 비즈니스 요구사항을 기술 구현 없이 고수준의 개념으로 표현

핵심 특징:

  • 기술 스택 미포함: 어떤 도구를 사용할지 정하지 않음
  • 비즈니스 로직 중심: “무엇을 해야 하는가”에 집중
  • 이해관계자 소통: 기술팀과 비즈니스팀 모두 이해 가능
  • 추상적 컴포넌트: “데이터 소스”, “처리 엔진”, “저장소” 등 범용 용어 사용

2 Conceptual Architecture 작성 단계

2.1 요구사항 정의

  • 목표: 시스템이 해결할 비즈니스 문제가 무엇인가?
  • 입력: 어떤 데이터가 들어오는가?
  • 출력: 어떤 결과가 나가야 하는가?
  • 주요 기능: 시스템이 수행해야 할 핵심 작업은 무엇인가?

예시: RAG 기반 코드 분석 시스템

  • 목표: 비기술 이해관계자가 GitHub 저장소의 코드와 알고리즘을 이해하도록 지원
  • 입력: 소스 코드, 문서, 플로우차트 이미지
  • 출력: 자연어 설명, 요약, 답변
  • 핵심 기능: 문서화, 의미 검색, 자동 요약, 질문 응답

2.2 주요 컴포넌트 식별

  • 시스템을 구성하는 논리적 단위를 식별
  • 구체적 기술이 아닌 기능 기반으로 명명

일반적인 패턴:

컴포넌트 역할 설명 예시
Source/Input 데이터 입력 지점 GitHub Repository, Document Files
Processing 핵심 처리 로직 Data Parsing, Embedding Generation
Storage 데이터 저장소 Knowledge Base, Metadata Repository
Retrieval 정보 검색 Search Engine, Query Processor
Output/Service 사용자 인터페이스 API, Chat Interface, Dashboard

2.3 데이터 흐름 정의

컴포넌트 간의 데이터 이동 경로를 단계별로 표현

Source → Ingestion → Processing → Storage → Retrieval → Response Generation → Output

각 단계에서:

  • 어떤 데이터가 입력되는가?
  • 어떤 변환이 일어나는가?
  • 어떤 데이터가 출력되는가?

2.4 상호작용 패턴 정의

컴포넌트 간의 통신 방식을 정의합니다:

  • 동기식: 요청-응답 (Synchronous)
  • 비동기식: 이벤트 기반 (Asynchronous)
  • 배치: 주기적 처리 (Batch Processing)

3 Conceptual Architecture 시각화 방법

3.1 블록 다이어그램 (가장 기본적)

┌─────────────────────────────────────────────────────────┐
│                  Conceptual Architecture                │
└─────────────────────────────────────────────────────────┘

   ┌──────────┐         ┌──────────┐         ┌──────────┐
   │  Source  │────────▶│Processing│────────▶│ Storage  │
   │   Data   │         │  Engine  │         │Repository│
   └──────────┘         └──────────┘         └──────────┘
                              ▲                    │
                              │                    │
                              │                    ▼
                        ┌──────────┐         ┌──────────┐
                        │  Query   │◀────────│Retrieval │
                        │Processor │         │  Engine  │
                        └──────────┘         └──────────┘
                              │
                              ▼
                        ┌──────────────┐
                        │    Output    │
                        │ (API/Chat UI)│
                        └──────────────┘

3.2 데이터 흐름 다이어그램 (Swimlane)

User/System    │    System Core         │    External
               │                        │
Request ──────▶│ ┌──────────────────┐  │
               │ │  Request Handler │  │
               │ └────────┬─────────┘  │
               │          ▼            │
               │ ┌──────────────────┐  │
               │ │  Data Processor  │  │
               │ └────────┬─────────┘  │
               │          ▼            │
               │ ┌──────────────────┐  │  ┌──────────┐
               │ │ Search/Retrieve  │──▶│ Knowledge│
               │ └────────┬─────────┘  │  │   Base   │
               │          ▼            │  └──────────┘
               │ ┌──────────────────┐  │
               │ │Generate Response │  │
               │ └────────┬─────────┘  │
               │          ▼            │
Response ◀─────│ ┌──────────────────┐  │
               │ │Output Formatter  │  │
               │ └──────────────────┘  │

3.3 컴포넌트 상호작용 테이블

컴포넌트 입력 처리 출력 상호작용
Data Ingestion Raw Files Parse & Validate Standardized Data → Processing
Processing Standardized Data Transform & Enrich Processed Data → Storage
Storage Processed Data Index & Organize Indexed Data ← Retrieval
Retrieval Query Search & Rank Relevant Data → Response Gen
Response Gen Relevant Data Format & Compose Natural Language → Output

4 실제 예시: RAG 시스템의 Conceptual Architecture

4.1 시스템 목표

비기술 이해관계자가 복잡한 소스 코드와 알고리즘 문서를 자연어로 이해할 수 있도록 지원하는 AI 기반 질문응답 시스템.

4.2 주요 컴포넌트

1. 소스 수집 (Source Collection)
   - GitHub 코드 저장소
   - 마크다운 문서
   - 플로우차트 이미지

2. 데이터 준비 (Data Preparation)
   - 텍스트 추출 및 파싱
   - 이미지 분석 및 OCR
   - 메타데이터 추출

3. 지식 저장소 (Knowledge Repository)
   - 구조화된 데이터 저장
   - 임베딩 벡터 저장
   - 메타데이터 관리

4. 검색 및 검색 (Retrieval & Search)
   - 의미 기반 검색
   - 컨텍스트 관련성 판단
   - 결과 순위 지정

5. 응답 생성 (Response Generation)
   - 관련 컨텍스트 결합
   - 자연어 응답 생성
   - 출력 포맷팅

6. 사용자 인터페이스 (User Interface)
   - 채팅 인터페이스
   - REST API
   - 대시보드

4.3 데이터 흐름 및 상호작용

┌─────────────────────────────────────────────────────────────────────┐
│                    RAG System - Conceptual Architecture              │
└─────────────────────────────────────────────────────────────────────┘

GitHub Repo ─┐
             │
Documents ───┼──▶ ┌──────────────┐      ┌─────────────────┐
             │    │   Ingestion  │─────▶│  Knowledge      │
Images ──────┘    │   & Parsing  │      │  Repository     │
                  └──────────────┘      │  (with vectors) │
                                        └────────┬────────┘
                                                 │
                  ┌──────────────┐              │
                  │   User Query │              │
                  └──────┬───────┘              │
                         │                      │
                         ▼                      │
                  ┌──────────────┐              │
                  │Query Encoder │              │
                  └──────┬───────┘              │
                         │                      │
                         ▼                      ▼
                  ┌──────────────────────────────────┐
                  │  Semantic Search & Retrieval     │
                  └──────────────┬───────────────────┘
                                 │
                                 ▼
                  ┌──────────────────────────────────┐
                  │  Context Aggregation             │
                  └──────────────┬───────────────────┘
                                 │
                                 ▼
                  ┌──────────────────────────────────┐
                  │  Response Generation             │
                  │  (Reasoning + Composition)       │
                  └──────────────┬───────────────────┘
                                 │
                                 ▼
                  ┌──────────────────────────────────┐
                  │  Output Formatting               │
                  │  (Natural Language Response)     │
                  └──────────────────────────────────┘

5 Conceptual Architecture 작성 체크리스트

Conceptual Architecture를 완성하기 전에 확인할 사항:

6 Conceptual에서 Logical으로의 전환

Conceptual Architecture가 완성되면, 다음 단계에서 Logical Architecture로 전환:

변화:

  • 추상적 “Processing Engine” → 구체적 “Data Transformation Pipeline”, “Feature Engineering Module”
  • 추상적 “Storage” → 구체적 “Vector Store”, “Relational Database”, “Document Store”
  • 데이터 구조 정의: 스키마, 인터페이스 계약
  • 모듈 간 통신 프로토콜 정의

예시:

Conceptual: "Query Processor" 
Logical: "Embedding Generator" + "Similarity Search Engine" + "Ranking Module"

7 정리

Conceptual Architecture는:

  1. 비즈니스 관점 중심의 고수준 설계
  2. 기술 중립적이지만 기능적으로 명확
  3. 이해관계자 커뮤니케이션 도구
  4. Logical 및 Physical 설계의 기초

이를 체계적으로 작성하면 후속 설계 단계가 명확해지고, 팀 전체가 같은 비전을 공유할 수 있다.

Subscribe

Enjoy this blog? Get notified of new posts by email: