“이 시스템은 외부 접속이 아예 막혀 있어요”
보안팀에서 이렇게 말하면 데이터 연동 작업은 처음부터 다시 생각해야 합니다. 클라우드 기반 데이터 플랫폼은 대개 “대상 시스템에 접속해서 데이터를 가져온다”는 그림을 전제로 설계되어 있습니다. 그런데 외부에서 접속 자체가 막힌 폐쇄망 시스템이라면, 이 전제가 통하지 않습니다. Foundry는 이런 상황을 위해 연동 구조를 두 축으로 나눠 놓았습니다.
두 개의 축: Data Connection과 Data Pipeline
Data Connection은 “데이터를 어디서, 어떻게 가져오느냐”를 다루고, Data Pipeline은 “가져온 데이터를 어떻게 가공하느냐”를 다룹니다. 이 둘을 섞어서 생각하면 설계가 꼬입니다. 연동이 안 될 때는 Connection 문제인지 Pipeline 문제인지부터 구분해야 합니다.
파이프라인을 만드는 3가지 방법
| 방법 | 적합한 상황 |
|---|---|
| Pipeline Builder | 로우코드로 빠르게 변환 로직을 구성할 때 |
| Code Transforms | 복잡한 커스텀 로직이 필요할 때 |
| HyperAuto | SAP 같은 표준화된 ERP 데이터를 대량으로 자동 매핑할 때 |
폐쇄망 SAP 시스템처럼 표준 스키마를 쓰는 시스템은 HyperAuto로 매핑 작업 자체를 자동화할 수 있어서, 처음부터 Code Transforms로 직접 짜는 것보다 훨씬 빠르게 시작할 수 있습니다.
Foundry Worker vs Agent Worker — 폐쇄망 문제의 답
연동 아키텍처는 Control Plane과 실제 데이터를 가져오는 Worker로 나뉩니다. Worker에는 두 종류가 있습니다.
Foundry Worker는 클라우드에 호스팅되어 있어서, 대상 시스템이 외부 접속을 허용하는 경우에 씁니다. 설정이 간단합니다.
Agent Worker는 고객사 내부망에 설치해서, 대상 시스템에서 Foundry 쪽으로 나가는 방향(outbound)으로만 연결을 엽니다. 외부에서 내부로 들어오는 접속을 허용할 필요가 없습니다. 앞서 언급한 폐쇄망 SAP 시스템이라면 답은 Agent Worker입니다. 보안팀이 요구하는 “외부에서 접속 못 하게”라는 조건과, “outbound만 열면 된다”는 Agent Worker의 동작 방식이 정확히 맞아떨어집니다.
핵심 개념 정리
| 개념 | 설명 |
|---|---|
| Dataset | Foundry에 저장되는 데이터 단위 |
| Branch / Build | Git의 브랜치·커밋과 유사한 버전 관리 단위 |
| Stream | 실시간으로 흘러들어오는 데이터 처리 방식 |
| CDC (Change Data Capture) | 변경분만 감지해서 가져오는 방식 |
| Virtual Table | 실제 복제 없이 원본 시스템 데이터를 그대로 참조하는 가상 테이블 |
흔한 실패 패턴 3가지
폐쇄망 시스템에 Foundry Worker를 쓰려다 막힌다. 클라우드 Worker는 대상 시스템에 접속해야 하는데, 접속 자체가 차단된 환경이면 애초에 동작하지 않습니다. Agent Worker로 바꿔야 합니다.
브랜치 관리 없이 여러 팀이 같은 파이프라인을 건드린다. Git처럼 브랜치를 나눠 작업하지 않으면, 한 팀의 변경이 다른 팀의 파이프라인을 깨뜨리는 충돌이 생깁니다.
CDC를 안 쓰고 매번 전체 스캔한다. 데이터가 커질수록 전체 스캔은 느려지고 비용도 커집니다. 변경분만 가져오는 CDC로 바꾸면 이 문제가 해결됩니다.
정리하면
연동이 막혔을 때 먼저 물어야 할 질문은 “이게 Connection 문제인가, Pipeline 문제인가”입니다. 그리고 대상 시스템이 외부 접속을 허용하지 않는다면, 답은 거의 항상 Agent Worker입니다. 표준화된 ERP라면 HyperAuto로 매핑 시간을 줄일 수 있고, 데이터가 커지면 CDC 없이는 성능이 버티지 못합니다.
자주 묻는 질문
Q. Agent Worker는 설치와 운영이 복잡한가요? Foundry Worker보다 초기 설치 단계가 하나 더 있지만, 보안 요건이 엄격한 환경에서는 이 단계를 건너뛸 수 없습니다. 설치 후 운영 부담은 크지 않습니다.
Q. HyperAuto를 쓰면 Code Transforms는 전혀 필요 없나요? 표준 스키마 밖의 커스텀 필드나 특수 변환 로직이 있다면 Code Transforms를 함께 써야 합니다. HyperAuto는 표준 부분을 빠르게 처리해주는 역할입니다.
