Skip to content

SyncCrawl 시스템 아키텍처 ​

SyncCrawl은 대규모 크롤링 워크로드 처리와 안정적인 운영, AI 지식 파이프라인 연계를 위해 분산 에이전트 Clean Architecture 4계층 구조로 설계되었습니다.


4계층 아키텍처 다이어그램 ​


4대 핵심 분산 컨테이너 이미지 ​

SyncCrawl은 무중단 배포와 독립적 스케일아웃을 위해 4개의 분산 컨테이너 이미지로 구성됩니다.

컨테이너 이미지기술 스택핵심 역할 및 기능
smart-crawling-serverJava 21, Spring Boot 3.5, LangChain4j, FlywayAPI 엔드포인트 제공, 수집 작업 스케줄링(Quartz), AI 작업 계획 수립, RAG 벡터 인덱싱 오케스트레이션
smart-crawling-agentJava 21, Playwright Java, MCP SDK정규 웹 수집 작업 실행, DOM 파싱, 데이터 추출, HTML 스냅샷 저장
smart-crawling-scenario-agentJava 21, Node.js/Playwright MCP, Chromium로그인, 다단계 폼 입력, 무한 스크롤, SPA 상호작용 등 복합 시나리오 실행
smart-crawling-consoleVue 3, TypeScript, Vite, Quasar수집 작업 모니터링, 자연어 시나리오 빌더 UI, 수집 데이터 검증 및 RAG 질의응답 테스트 콘솔

계층별 상세 설계 ​

1. 화면 및 시나리오 제어 계층 (Presentation Layer) ​

  • 자연어 시나리오 빌더: 사용자가 자연어로 수집 목표를 입력하면 백엔드 LangChain4j 에이전트와 대화형으로 상호작용하여 시나리오 스텝을 자동 생성합니다.
  • 실시간 실행 모니터링: WebSocket 및 SSE(Server-Sent Events)를 통해 브라우저 실행 스크린샷과 단계별 로그를 실시간으로 중계합니다.

2. 오케스트레이션 및 스케줄링 계층 (Orchestration Layer) ​

  • LangChain4j AI 엔진: 사용자 질의와 타깃 페이지 구조를 분석하고 적절한 크롤링 도구(Playwright Tool)를 동적으로 바인딩합니다.
  • Quartz 분산 스케줄러: 다수의 주기적 크롤링 배치를 데이터베이스 클러스터링 기반으로 분산 실행합니다.
  • Redisson 분산 큐 & 락: 다중 워커 노드 간의 작업 분배(Handoff) 및 동시성 제어를 담당합니다.

3. 브라우저 자동화 및 실행 계층 (Worker & Execution Layer) ​

  • Playwright MCP 연동: Model Context Protocol 표준 규격을 준수하여 브라우저를 제어합니다.
  • SSRF 보안 가드 (BrowserNavigateUrlValidator): 로컬 루프백(127.0.0.1, localhost) 접근 및 내부 사내망 침투를 사전에 검증하여 차단합니다.
  • 셀렉터 자율 복구 엔진: DOM 트리가 변경되었을 때 페이지 텍스트 문맥과 시맨틱 태그를 대조하여 대체 셀렉터를 탐색합니다.

4. 데이터 & RAG 인프라 계층 (Data & Infra Layer) ​

  • PostgreSQL & Flyway: 수집 메타데이터, 사용자 스키마, 실행 이력을 관리하며 마이그레이션을 지원합니다.
  • Vector DB & 임베딩: 수집된 비정형 텍스트를 청킹하여 PGVector, Milvus, Qdrant 등에 저장하며, 엔터프라이즈 RAG 질의응답을 위한 시맨틱 검색을 제공합니다.
  • MinIO / S3 오브젝트 스토리지: 수집 시점의 원본 HTML과 증적 캡처 이미지를 스토리지에 보관합니다.