ALM과 환경 변수 — 만든 뒤를 책임지기
| 시간 | 소요 | 수강생 역할 |
|---|---|---|
| 16:55 | 30분 | 👀 시연 + 💬 토론 |
목차
- 이 블록이 마지막에 있는 이유
- 두 개의 실습
- 큰 그림: 만든 뒤의 5단계
- 솔루션과 환경 변수 — 두 단어 정리
- 환경 변수로 빼야 할 대표 값
- 환경 분리 — dev / test / prod
- 다음 단계
이 블록이 마지막에 있는 이유
만들었으면 끝이 아닙니다. 만든 뒤가 진짜 시작입니다.
S1~S9까지 우리는 도구를 늘리고, 데이터를 어디 넣을지 정하고, 패턴으로 묶었습니다. 이제 그 결과물을 어떻게 운영 가능한 상태로 정리하는가 — 이 블록의 주제입니다.
학습자가 자주 빠지는 함정:
| 함정 | 결과 |
|---|---|
| 기본 솔루션에 모든 걸 만든다 | 다른 환경(테넌트/조직)에 옮기지 못함 |
| URL·ID를 흐름에 직접 입력한다 | 운영 배포 시 모든 흐름을 일일이 수정해야 함 |
| dev/test/prod 구분 없이 한 환경에서 모든 걸 한다 | 사용자 영향이 큰 변경을 검증할 수 없음 |
이 블록은 그 함정을 피하는 솔루션·환경 변수·환경 분리라는 세 가지 도구를 정리합니다.
두 개의 실습
| 실습 | 주제 | 시간 |
|---|---|---|
| 실습 ① — 사용자 정의 솔루션 만들기 | 솔루션 생성·게시자·구성요소 추가 | 15분 |
| 실습 ② — 환경 변수 적용하기 | 변수 정의·흐름·토픽에서 참조 | 15분 |
큰 그림: 만든 뒤의 5단계
① 솔루션 만들기 (실습 ①)
│
▼
② 에이전트·흐름·연결 등을 솔루션에 묶기
│
▼
③ URL·ID 등 환경별 값을 환경 변수로 추출 (실습 ②)
│
▼
④ 솔루션 내보내기(Export)
│
▼
⑤ 다른 환경(test/prod)에 가져오기(Import) + 환경 변수만 다시 입력
이 다섯 단계가 ALM(Application Lifecycle Management)의 출발선입니다. 오늘은 ① ~ ③까지 직접 만져보고, ④·⑤는 시연·토론으로 다룹니다.
솔루션과 환경 변수 — 두 단어 정리
솔루션(Solution)
| 정의 | 에이전트·흐름·연결·환경 변수 등을 하나의 패키지로 묶는 컨테이너 |
| 왜 필요 | 다른 환경으로 옮기려면 묶음 단위 이동이 필수. 기본 솔루션은 이동 불가 |
| 어디서 | Power Apps · Copilot Studio · Power Automate 공통의 “솔루션” 메뉴 |
환경 변수(Environment Variable)
| 정의 | 솔루션 안에서 설정값을 이름으로 관리하는 매개변수 |
| 왜 필요 | URL·사이트 주소 등을 흐름에 하드코딩하지 않아야 환경이 바뀌어도 흐름이 그대로 |
| 어떻게 | 흐름·토픽·연결에서 환경변수.<이름>으로 참조 |
하드코딩 vs 환경 변수
| 하드코딩 | 환경 변수 |
|---|---|
https://company.sharepoint.com/sites/hr |
@{환경변수.SharePointSiteUrl} |
| 환경이 바뀌면 모든 흐름 수정 | 환경 변수 값만 변경 |
개발 환경 (dev) 운영 환경 (prod)
┌─────────────────────┐ ┌─────────────────────┐
│ ExcelTableUrl │ │ ExcelTableUrl │
│ = dev용 Excel URL │ ──→ │ = prod용 Excel URL │
│ SharePointSiteUrl │ 배포 │ SharePointSiteUrl │
│ = dev용 SP 주소 │ │ = prod용 SP 주소 │
└─────────────────────┘ └─────────────────────┘
흐름·토픽·에이전트 본체는 그대로, 값만 바뀜
환경 변수로 빼야 할 대표 값
| 값 | 환경 변수 이름 예시 | 어디서 썼나 |
|---|---|---|
| Excel 테이블 URL / 워크북 ID | ExpenseExcelUrl, AssetExcelId |
S2 / S7 |
| SharePoint 사이트 주소 | HrSiteUrl |
M8 |
| API base URL | ExchangeApiBase |
S4 (Frankfurter) |
| MCP 서버 URL | McpServerUrl |
S5 |
| 알림 받는 메일/팀 | NotifyEmail, NotifyTeamId |
S2 / S3 |
| AI 프롬프트 모델 | AiBuilderPromptName |
S2 / S3 |
오늘 심화과정에서 만든 모든 흐름은 이런 값을 가지고 있습니다. 실습 ②에서 그중 하나를 골라 환경 변수로 빼봅니다.
환경 분리 — dev / test / prod
| 환경 | 목적 | 누가 만지나 |
|---|---|---|
| dev | 개발자가 자유롭게 만지는 곳 | 개발자만 |
| test | 사용자 검증·UAT | 검증자 + 개발자 |
| prod | 실제 사용자 | 끝사용자만 — 직접 수정 금지 |
권장 흐름: dev에서 만든다 → 솔루션 내보내기 → test로 가져와 검증 → prod로 가져와 배포. 매 단계마다 환경 변수만 그 환경에 맞게 채우면 됩니다.
환경 분리는 라이선스가 필요해 한 명이 다 갖춘 채로 학습하긴 어렵습니다. 오늘은 개념과 절차만 정리하고, 사내 도입 단계에서 실제 환경을 분리하시면 됩니다.
다음 단계
먼저 실습 ① — 사용자 정의 솔루션 만들기로 시작합니다.