실습 ②: Excel 을 “데이터 저장소” 로 — CRUD 3가지 길

시간 소요 수강생 역할
14:40 25분 🟢 직접 실습

목차

  1. 이 실습의 목표
  2. “지식” 과 “데이터 저장소” — 같은 파일, 다른 시선
  3. Excel 외 대안 — 짧게 짚고 가기
  4. Excel 데이터를 CRUD 하는 3가지 길
  5. ① Excel 커넥터 — 도구로 바로 등록
    1. 기본과정에서 이미 체험
    2. 특징
    3. 권장 패턴 — 도구 설명·입력 변수에 한국어 설명
  6. ② 에이전트 흐름 + Excel 커넥터 — 로우코드 데이터 가공
    1. 무엇이 더 되나
    2. 아키텍처
    3. 결정적 단점 — 성능
    4. 잘 맞는 시나리오
  7. ③ 에이전트 흐름 + Office Script — 가장 안정적
    1. 무엇이 본질적으로 다른가
    2. 아키텍처
    3. Office Script 의 장점
    4. Office Script 의 단점·제한사항
    5. 장단점 한 줄 요약
    6. 권장 골격 (참고)
    7. Excel Copilot 으로 작성하기 — 코딩 부담 줄이기
  8. 3가지 길 — 한눈에 비교
  9. 의사결정 가이드 — 짧게
  10. Excel 졸업 — 한계가 보이면
  11. 정리 — 두 실습 합치면

이 실습의 목표

  • Excel 을 지식 (Knowledge) 이 아니라 데이터 저장소 (Data Store) 로 보는 관점 전환
  • 에이전트가 Excel 데이터를 읽고 쓰는 3가지 길 비교
  • 가장 안정적인 길 — 에이전트 흐름 + Office Script 의 장점·단점·제한사항 정직하게 정리

이 실습의 핵심 관점 전환 — 같은 Excel 파일이라도 읽기만 한다면 실습 ① 의 “지식” 으로 보면 되지만, 읽고 쓴다 면 그것은 더 이상 “지식” 이 아니라 “데이터 저장소” 입니다. 데이터 저장소 관점에서는 정확성·갱신·쓰기·성능이 모두 중요해지고, 자연스럽게 흐름·스크립트 영역으로 옮겨갑니다.


“지식” 과 “데이터 저장소” — 같은 파일, 다른 시선

  지식 (실습 ①) 데이터 저장소 (이번 실습 ②)
목적 읽고 답변 읽기 + 쓰기 (CRUD)
원리 AI 가 문서를 읽고 해석 흐름이 데이터를 정확히 조회·수정
비유 사서가 책을 읽어주는 것 직원이 데이터베이스를 조작하는 것
갱신 인덱싱 지연 실시간 반영
정확도 의미 검색 (유사 답변) 결정적 결과
쓰기 불가 가능
구축 비용 5~10분 30분~1시간
"운영 환경 Linux 서버 목록 알려줘"

지식 (의미 검색): "운영 환경에는 여러 Linux 서버가 있으며..."  ← 누락·환각 가능
데이터 저장소  : Env=LIVE AND OSType=Linux 필터 → 정확히 17건 반환

Excel 외 대안 — 짧게 짚고 가기

“데이터 저장소” 관점에서 Excel 만이 정답은 아닙니다. 사내 시나리오에 따라 다음도 좋은 선택지입니다.

대안 특징 언제 쓰나
SharePoint 목록 정형 데이터를 위한 가장 자연스러운 사내 저장소. 권한·뷰·자동화 트리거 풍부 협업이 잦고, 스키마가 안정적이며, 사용자가 SharePoint 환경에 익숙할 때
JSON 파일 in SharePoint 문서 라이브러리 가벼운 스키마, 흐름에서 직접 파싱 키-값 매핑·환경 설정·간단한 마스터 데이터
Excel 사용자가 가장 익숙. 시트·테이블·수식 그대로 쓸 수 있음 업무 담당자가 이미 Excel 로 일하고 있는 경우 — 사내 현실에서 가장 흔한 시나리오

이 실습은 “사용자가 이미 Excel 로 일하고 있는 현실” 에 집중합니다. SharePoint 목록·JSON 도 같은 CRUD 패턴이 적용되니, 한 번 익혀두면 전이가 쉽습니다.


Excel 데이터를 CRUD 하는 3가지 길

                         단순  ────────────────────────────  복잡·강력
┌─────────────────┐  ┌────────────────────────────┐  ┌─────────────────────────────┐
│ ① Excel 커넥터    │  │ ② 에이전트 흐름             │  │ ③ 에이전트 흐름             │
│   (도구로 직접)    │  │   + Excel 커넥터          │  │   + Office Script           │
├─────────────────┤  ├────────────────────────────┤  ├─────────────────────────────┤
│ 가장 간단         │  │ 더 다양한 로직 처리          │  │ 가장 안정적 / 대용량         │
│ 기본과정 M12 체험 │  │ 로우코드 데이터 가공          │  │ 프로코드 (TypeScript)        │
│                 │  │ 행 수 ↑ 시 성능 한계         │  │ Excel Copilot 도움          │
└─────────────────┘  └────────────────────────────┘  └─────────────────────────────┘

① Excel 커넥터 — 도구로 바로 등록

가장 간단한 길. Copilot Studio 의 도구 에서 Excel Online 커넥터를 직접 등록합니다.

기본과정에서 이미 체험

기본과정 M12 — 커넥터 에서 Excel 테이블에 행 추가 를 손에 익혔습니다. 같은 커넥터로 다음 4가지 모두 가능합니다.

CRUD Excel 커넥터 액션
Create 테이블에 행 추가
Read 테이블에 있는 행 나열 / 키-값으로 행 가져오기
Update 키-값으로 행 업데이트
Delete 키-값으로 행 삭제

특징

항목 내용
구축 시간 5~10분 (도구 등록 + 입력 변수 설명)
흐름 필요 불필요 (도구만으로 끝)
적합한 시나리오 단일 액션, 단순 필터, 단건 추가/수정
한계 다단계 로직 (조회 → 가공 → 다른 액션) 불가

“회의 일정 등록 / 직원 정보 조회” 처럼 단일 액션 으로 떨어지면 ① 만으로 충분합니다. 흐름까지 갈 필요 없음.

권장 패턴 — 도구 설명·입력 변수에 한국어 설명

입력 변수 라벨·설명
Location (사이트) OneDrive 또는 SharePoint 사이트 URL
File (파일) 대상 Excel 파일 경로
Table (테이블) 테이블 이름 (예: AssetTable)
Filter ($filter) OData 조건식 (예: Env eq 'LIVE') — 선택

② 에이전트 흐름 + Excel 커넥터 — 로우코드 데이터 가공

같은 Excel 커넥터를 에이전트 흐름 안에서 호출합니다. 흐름으로 들어왔으니 다단계 로직이 가능해집니다.

무엇이 더 되나

가능해지는 것 예시
다단계 처리 “조회 → 다른 시트와 매칭 → 결과 정리 → 응답”
조건 분기 결과 0건이면 “없음” 응답, 1건이면 상세, N건이면 요약
데이터 가공 “CSV 테이블 만들기” / “필터 배열” / “선택” 액션
다른 커넥터와 결합 Outlook 메일 발송·Teams 알림 등

아키텍처

👤 질문
    ↓
🤖 에이전트 → 흐름 호출
    ↓
⚡ Excel 커넥터 — "테이블 행 나열" / "행 추가" / "행 업데이트"
    ↓
🔄 데이터 조작 액션 — 필터 / 매핑 / CSV 변환 / AI 프롬프트
    ↓
📋 응답 (테이블 / 요약 / 카드)

결정적 단점 — 성능

항목 내용
구간 행 나열 액션이 OData 페이징 으로 데이터를 가져옴
한계 행 수가 수백 건 이상이면 흐름 실행 시간이 급격히 증가
체감 “왜 이렇게 느리지?” 가 발생하는 가장 흔한 지점
가공 단계 “필터 배열·선택” 액션도 행 수에 비례해 느려짐

흐름 안에서 Excel 커넥터로 수백~수천 건을 다루면 응답 시간이 사용자 인내심을 넘는 경우가 많습니다. 이 시점에서 ③ Office Script 로 옮기는 것이 정답.

잘 맞는 시나리오

  • 행 수 적음 (수십~수백 건) + 다단계 로직 필요
  • 매주 1회 같이 빈도 낮은 운영 작업 (성능보다 만들기 쉬움이 우선)
  • 데이터 가공 일부는 AI 프롬프트로 위임 (요약·분류)

③ 에이전트 흐름 + Office Script — 가장 안정적

오전 S2 — 엑셀 업로드 활용 실습 에서 이미 체험했습니다. 같은 도구 군을 CRUD 데이터 저장소 시나리오로 다시 옮겨 씁니다.

무엇이 본질적으로 다른가

  ② 흐름 + 커넥터 ③ 흐름 + Office Script
데이터 처리 위치 흐름 (Power Automate 런타임) Excel 자체 (Excel Online 런타임)
처리 단위 한 번에 한 행씩 액션 호출 시트 전체를 한 번에 TypeScript 로 가공
행 수 ↑ 시 성능 급격히 느려짐 거의 일정 (한 번 호출에 처리)
정밀 제어 커넥터 액션이 제공하는 만큼 셀·범위·서식·테이블·차트 모두

아키텍처

👤 질문
    ↓
🤖 에이전트 → 흐름 호출 (queryJson 전달)
    ↓
⚡ "Run script" 액션 호출
    ↓
🐍 Office Script (TypeScript)
   - 워크북 열고
   - 테이블/시트에서 정확히 필터·집계·CRUD
   - JSON 으로 결과 반환
    ↓
📋 응답

Office Script 의 장점

장점 설명
성능 한 번 호출에 수천 행 처리 가능. 흐름 액션 N번 호출보다 압도적으로 빠름
정밀 제어 셀·범위·테이블·서식·차트까지 모두 제어. 결정적 (LLM 환각 없음)
CRUD 완전 지원 추가·수정·삭제·읽기 모두 자연스럽게
Excel Copilot 으로 작성 Excel 의 Copilot 패널에서 자연어 → Office Script 생성 가능 → 코딩 부담 감소
스크립트 재사용 한 번 만들어두면 여러 흐름·여러 에이전트에서 호출

Office Script 의 단점·제한사항

항목 내용
언어 TypeScript — 프로코드 영역 살짝 진입. JavaScript 경험 없으면 학습 곡선
실행 환경 Excel for the Web (브라우저), Excel for Windows 일부 환경. Excel for Mac · 모바일 미지원
실행 시간 단일 실행 약 5분 한도
외부 호출 fetch 가능하지만 인증·CORS 제약 있음. 사내 API 호출은 흐름 단계에서 처리 권장
입출력 형식 “Run script” 액션의 입출력은 문자열·기본형 위주. 복잡 객체는 JSON 직렬화 우회
라이선스/플랜 Microsoft 365 Business Standard 이상에서 사용 가능. 테넌트 정책으로 비활성화될 수 있음
공유 스크립트는 OneDrive 또는 SharePoint 사이트에서 공유 — 권한 관리 필요

장단점 한 줄 요약

“코딩 부담 약간 + 라이선스·환경 제약 약간” 을 받아들이면 성능·정확성·확장성을 한 번에 얻습니다. Excel 시나리오에서 운영급으로 가는 길은 사실상 이것이 정답 입니다.

권장 골격 (참고)

function main(
  workbook: ExcelScript.Workbook,
  queryJson: string  // 에이전트가 LLM 으로 만든 쿼리 JSON
): string {
  const query = JSON.parse(queryJson);
  const table = workbook.getTable("AssetTable");
  const headers = table.getHeaderRowRange().getValues()[0] as string[];
  const rows = table.getRangeBetweenHeaderAndTotal().getValues();

  // 정확한 필터 — 결정적
  const filtered = rows.filter(row => {
    let ok = true;
    if (query.env)     ok = ok && String(row[headers.indexOf("Env")])     === query.env;
    if (query.osType)  ok = ok && String(row[headers.indexOf("OSType")])  === query.osType;
    if (query.keyword) ok = ok && row.map(String).join(",").includes(query.keyword);
    return ok;
  });

  // 결과 30건 제한 + JSON 으로 반환
  const data = filtered.slice(0, 30).map(row => {
    const obj: Record<string, string> = {};
    headers.forEach((h, i) => obj[h] = String(row[i]));
    return obj;
  });

  return JSON.stringify({
    totalCount: filtered.length,
    truncated: filtered.length > 30,
    data
  });
}

쓰기 (Update / Delete / Create) 도 같은 골격에 table.addRow / row.delete 등을 더하면 됩니다.

Excel Copilot 으로 작성하기 — 코딩 부담 줄이기

  1. Excel 웹에서 자동화 → 새 스크립트 → Copilot 에게 묻기
  2. 자연어로 요구 작성:
    AssetTable 에서 Env 가 "LIVE" 이고 OSType 이 "Linux" 인 행을
    JSON 으로 반환하는 함수. main 함수의 인자는 queryJson 문자열로 받고
    안에서 JSON.parse 해서 env, osType 키를 사용해.
    
  3. 생성된 코드를 검토·다듬기 (변수명·예외 처리)
  4. Power Automate 의 “Run script” 에서 호출

Excel Copilot 이 만들어주는 코드는 컴파일 가능한 출발점 입니다. 90% 정도는 그대로 쓸 수 있고, 나머지는 입출력 시그니처 (function main(workbook, ...)) 와 반환 타입을 다듬는 정도면 충분합니다.


3가지 길 — 한눈에 비교

  ① Excel 커넥터 (도구) ② 흐름 + Excel 커넥터 ③ 흐름 + Office Script
난이도 ★☆☆ ★★☆ ★★★
흐름 필요
다단계 로직
데이터 규모 작음 (~수십 건) 중간 (~수백 건, 단 성능 한계) 큼 (~수천 건)
성능 안정성 보통 불안정 (행 수 비례) 매우 안정
CRUD ✓ (가장 자연스러움)
코딩 부담 없음 거의 없음 (액션 클릭) TypeScript 약간 (Excel Copilot 도움)
라이선스 제약 일반 Microsoft 365 일반 Microsoft 365 Business Standard 이상

의사결정 가이드 — 짧게

Excel 을 데이터 저장소로 쓰고 싶다
    │
    ├─ 단일 액션? (단순 조회·추가·수정)
    │       └─→ ① Excel 커넥터를 도구로 등록
    │
    ├─ 다단계 로직 필요 + 행 수 적음 (~수백)?
    │       └─→ ② 에이전트 흐름 + Excel 커넥터
    │
    ├─ 행 수 많음 (~수천) 또는 성능 안정성 중요?
    │       └─→ ③ 에이전트 흐름 + Office Script
    │
    └─ Excel 자체가 한계? (협업·공유·대용량)
            └─→ Excel 졸업 (다음 섹션)

Excel 졸업 — 한계가 보이면

데이터가 더 커지거나, 여러 에이전트·앱에서 공유해야 하면 저장소 자체를 옮길 수도 있습니다.

옵션 특징
SharePoint 리스트 Excel 에서 테이블 → 리스트로 내보내기. 뷰·필터·권한·트리거 풍부. CRUD 는 거의 동일한 흐름 + SP 커넥터로 전이 가능
Dataverse 관계형 DB · 보안 역할 · ALM · 대용량. 엔터프라이즈급 시나리오에 적합

SP 리스트 / Dataverse 로 옮겨도 에이전트에서 보는 패턴 (도구 / 흐름) 은 동일합니다. 바뀌는 건 커넥터·테이블 정의뿐이라 전이 비용이 낮습니다.


정리 — 두 실습 합치면

  실습 ① — 지식 4가지 실습 ② — 데이터 저장소 3가지
목적 읽고 답하기 읽기 + 쓰기 (CRUD)
결론 “②(직접 업로드) 또는 ④(커스텀 KS) 만 살아남음” “단일 액션 → ① / 다단계 → ② / 운영급 → ③”
시나리오 직원 명단 조회 등 자산 대장·이슈 트래킹·운영 데이터 입출력

S6 의 결론 — Excel 을 만나면 먼저 “읽기만 인가, 읽고 쓰기 인가” 를 묻고, 후자라면 흐름 + Office Script 로 가는 길이 운영 안정성을 가장 잘 보장합니다.


다음 모듈: S7. 입력 구조화 — 엔티티 + AI 프롬프트


문과생을 위한 Copilot Studio — 개발자 없이 만드는 우리 팀 전용 AI

This site uses Just the Docs, a documentation theme for Jekyll.