금. 8월 15th, 2025

안녕하세요, 여러분! 매일 반복되는 단순 업무에 지쳐 있으신가요? 수동으로 처리하던 데이터 입력, 알림 전송, 파일 정리 등의 업무를 자동으로 처리해주는 마법 같은 도구가 있다면 어떨까요? 바로 Microsoft Power Automate Cloud 흐름이 그 해결책입니다! ✨

오늘은 Power Automate Cloud 흐름의 핵심 중 핵심인 조건문(Conditional Statements)반복문(Loops)을 깊이 파헤쳐 보고, 이를 활용하여 어떻게 복잡하고 지능적인 고급 흐름(Advanced Flows)을 구축할 수 있는지 상세히 알아보겠습니다. 이 글을 통해 여러분의 업무 자동화 능력이 한 단계 더 레벨업할 수 있도록 자세한 설명과 풍부한 예시를 준비했으니, 끝까지 따라와 주세요! 📈


1. Power Automate Cloud 흐름의 기본 이해 💡

Power Automate는 반복적인 작업을 자동화하여 생산성을 높이는 로우 코드(Low-Code) 플랫폼입니다. 클라우드 흐름은 클라우드 기반 서비스(Outlook, SharePoint, Teams, OneDrive 등) 간의 연결을 통해 작동하며, 특정 트리거(trigger)가 발생하면 정의된 일련의 작업을 자동으로 실행합니다.

하지만 단순한 작업 연결만으로는 모든 시나리오에 대응하기 어렵습니다. 특정 조건에 따라 다른 행동을 하거나, 목록의 모든 항목에 대해 동일한 작업을 수행해야 할 때, 우리는 ‘조건문’과 ‘반복문’이라는 강력한 도구가 필요합니다.


2. 조건문: 흐름에 똑똑한 의사결정 능력 부여하기 🤔

조건문은 흐름이 특정 상황을 인지하고 그에 따라 다른 경로로 진행되도록 하는 역할을 합니다. 마치 “만약 ~라면, 이렇게 해라. 그렇지 않다면, 저렇게 해라.”와 같이 흐름에 의사결정 능력을 부여하는 것이죠. Power Automate에서는 주로 ‘조건(Condition)’과 ‘스위치(Switch)’ 액션을 사용합니다.

2.1. 조건 (Condition) 액션: 가장 기본적인 의사결정 도구

가장 일반적으로 사용되는 조건문입니다. 설정한 조건이 참(True)일 경우와 거짓(False)일 경우에 실행될 작업을 각각 정의할 수 있습니다.

  • 사용 시기:

    • 두 가지 경로(예/아니오)로 흐름을 분기해야 할 때.
    • 단일 조건 또는 여러 조건을 AND/OR 논리로 묶어 판단해야 할 때.
  • 예시 1: ‘긴급’ 메일에 대한 즉각적인 알림 📧

    • 시나리오: 특정 키워드(‘긴급’, ‘URGENT’)가 포함된 메일을 받으면 즉시 팀즈(Teams)로 알림을 받고, 그렇지 않은 메일은 일반적인 방식으로 처리합니다.

    • 흐름 단계:

      1. 트리거: ‘새 메일이 도착하면(V3)’ (When a new email arrives (V3)) – Outlook 커넥터
      2. 액션: ‘조건’ (Condition)
        • 조건 설정:
          • 제목 (Subject) 포함 (contains) 긴급
          • 또는 (OR)
          • 제목 (Subject) 포함 (contains) URGENT
        • ‘예(Yes)’인 경우:
          • ‘메시지 게시(V3)’ (Post a message (V3)) – Microsoft Teams 커넥터
          • 대상: 특정 채널 또는 개인 채팅
          • 메시지: “🚨 긴급 메일 도착! 🚨 제목: @{triggerBody()?[‘Subject’]}”
        • ‘아니요(No)’인 경우:
          • ‘알림 보내기’ (Send me a mobile notification) – Notifications 커넥터
          • 메시지: “새 메일 도착: @{triggerBody()?[‘Subject’]}” (또는 아무것도 하지 않음)
    • 팁: 조건을 설정할 때 AND (모든 조건 충족)와 OR (하나라도 조건 충족) 논리를 잘 활용하면 복잡한 시나리오도 처리할 수 있습니다. 예를 들어, “제목에 ‘보고서’가 있고, 보낸 사람이 ‘홍길동’인 경우” 와 같이 말이죠.

2.2. 스위치 (Switch) 액션: 여러 경로로 흐름 분기하기

스위치 액션은 하나의 값을 기준으로 여러 가능한 시나리오에 따라 흐름을 분기해야 할 때 유용합니다. If-Else If-Else 구조를 여러 번 사용하는 대신, 훨씬 깔끔하게 흐름을 구성할 수 있습니다.

  • 사용 시기:

    • 하나의 입력 값에 따라 세 개 이상의 다른 동작을 해야 할 때.
    • 특정 열거형(enum) 값에 따라 다른 흐름을 정의해야 할 때 (예: 상태, 유형, 우선순위).
  • 예시 2: SharePoint 목록 항목의 ‘우선순위’에 따른 작업 할당 🎯

    • 시나리오: SharePoint 목록에 새 작업 항목이 추가될 때, ‘우선순위’ 필드의 값에 따라 담당자를 다르게 지정하거나 다른 알림을 보냅니다.

    • 흐름 단계:

      1. 트리거: ‘항목이 생성되거나 수정되었을 때’ (When an item is created or modified) – SharePoint 커넥터
      2. 액션: ‘스위치’ (Switch)
        • 전환 기준: 우선순위 (SharePoint 목록의 동적 콘텐츠)
        • 사례(Case) 1:높음 (High)
          • ‘항목 업데이트’ (Update item) – SharePoint 커넥터 (담당자를 ‘팀장’으로)
          • ‘메시지 게시’ – Teams 커넥터 (긴급 알림)
        • 사례(Case) 2:보통 (Medium)
          • ‘메일 보내기(V2)’ (Send an email (V2)) – Outlook 커넥터 (담당자에게 일반 알림)
        • 사례(Case) 3:낮음 (Low)
          • ‘알림 예약’ (Schedule a reminder) – Reminders 커넥터 (나중에 알림)
        • 기본 사례(Default Case): (명시된 사례 외의 모든 경우)
          • ‘아무것도 하지 않음’ (No-op) 또는 ‘관리자에게 알림’
    • 팁: 스위치 액션은 드롭다운 메뉴나 선택 필드의 값에 따라 다양한 작업을 할당할 때 빛을 발합니다.


3. 반복문: 대량 작업 자동화의 핵심 🔄

반복문은 배열(Array)이나 목록(List)과 같이 여러 항목으로 구성된 데이터에 대해 동일한 작업을 반복적으로 수행해야 할 때 사용합니다. 수백, 수천 개의 데이터도 효율적으로 처리할 수 있게 해줍니다.

3.1. 각 항목에 적용 (Apply to each) 액션: 배열 처리의 핵심

가장 널리 사용되는 반복문으로, 배열 내의 각 항목에 대해 정의된 작업을 실행합니다.

  • 사용 시기:

    • Outlook 메일의 모든 첨부 파일을 저장해야 할 때.
    • SharePoint 목록에서 조회한 여러 항목을 일괄적으로 업데이트해야 할 때.
    • Excel 파일의 모든 행을 읽어와서 다른 시스템에 입력해야 할 때.
    • API 호출 결과로 받은 여러 레코드를 처리해야 할 때.
  • 예시 3: 첨부 파일 자동 저장 및 알림 📁

    • 시나리오: 특정 메일 주소로부터 첨부 파일이 포함된 메일을 받으면, 모든 첨부 파일을 OneDrive 또는 SharePoint 문서 라이브러리에 저장하고, 작업 완료 알림을 받습니다.

    • 흐름 단계:

      1. 트리거: ‘새 메일이 도착하면(V3)’ – Outlook 커넥터 (첨부 파일 포함 여부: ‘예’)
      2. 액션: ‘각 항목에 적용’ (Apply to each)
        • 출력 선택: 첨부 파일 (Attachments) – 동적 콘텐츠
        • ‘각 항목에 적용’ 내부:
          • ‘파일 만들기’ (Create file) – OneDrive for Business 또는 SharePoint 커넥터
          • 폴더 경로: 원하는 저장 경로
          • 파일 이름: 첨부 파일 이름 (Attachment Name) – 동적 콘텐츠
          • 파일 콘텐츠: 첨부 파일 콘텐츠 (Attachment Content) – 동적 콘텐츠
      3. 액션 (반복문 밖): ‘메시지 게시(V3)’ – Teams 커넥터
        • 메시지: “✅ @{triggerBody()?[‘Subject’]} 메일의 모든 첨부 파일이 성공적으로 저장되었습니다.”
    • 팁: ‘각 항목에 적용’ 액션은 기본적으로 순차적으로 실행되지만, ‘설정’에서 ‘동시성 제어’를 켜서 동시에 여러 항목을 처리하도록 설정할 수 있습니다. 이는 대량의 데이터를 더 빠르게 처리하는 데 유용하지만, 커넥터의 API 제한이나 데이터 일관성 문제를 고려해야 합니다.

3.2. Do Until 액션: 조건이 충족될 때까지 반복

Do Until 액션은 특정 조건이 참이 될 때까지 일련의 작업을 반복합니다. ‘각 항목에 적용’과는 달리, 배열의 항목을 순회하는 목적보다는 특정 상태를 기다리거나, 재시도(Retry) 로직을 구현하는 데 더 적합합니다.

  • 사용 시기:

    • 외부 시스템의 처리 완료를 기다려야 할 때.
    • 특정 API 호출이 성공적으로 완료될 때까지 재시도해야 할 때.
    • 승인 요청의 상태가 ‘승인됨’ 또는 ‘거부됨’으로 변경될 때까지 대기해야 할 때.
  • 예시 4: 외부 시스템 처리 완료 대기

    • 시나리오: 외부 시스템에 데이터를 전송한 후, 해당 시스템에서 ‘처리 완료’ 상태를 반환할 때까지 주기적으로 상태를 확인합니다.

    • 흐름 단계 (개념):

      1. 액션: ‘데이터 전송’ (HTTP 요청 등)
      2. 액션: ‘Do Until’
        • 조건 설정: 외부 시스템 상태 (외부 시스템으로부터 받은 응답) 같음 (is equal to) 완료
        • ‘Do Until’ 내부:
          • ‘지연’ (Delay) 액션 (예: 1분)
          • ‘외부 시스템 상태 조회’ (HTTP 요청)
      3. 액션 (반복문 밖): ‘다음 작업 진행’ (예: 알림, 데이터베이스 업데이트)
    • 팁: Do Until 내부에 ‘지연(Delay)’ 액션을 넣어 무한 루프에 빠지는 것을 방지하고, 외부 시스템에 과도한 요청을 보내지 않도록 주의해야 합니다.


4. 고급 흐름 구축을 위한 팁과 기술 🛠️

조건문과 반복문 외에도 Power Automate의 강력한 기능을 활용하면 더욱 정교하고 견고한 흐름을 만들 수 있습니다.

4.1. 변수 (Variables) 활용: 데이터 저장 및 조작

변수는 흐름 내에서 데이터를 저장하고, 조작하고, 다른 액션에 전달하는 데 사용됩니다. 흐름의 유연성과 재사용성을 높여줍니다.

  • 주요 변수 액션:

    • 변수 초기화 (Initialize variable): 변수를 선언하고 초기 값을 할당합니다. (문자열, 정수, 부울, 배열, 개체 등)
    • 변수 값 설정 (Set variable): 기존 변수의 값을 변경합니다.
    • 변수 증가 (Increment variable): 정수형 변수의 값을 1씩 증가시킵니다. (카운터로 활용)
    • 문자열 변수에 추가 (Append to string variable): 문자열 변수에 텍스트를 추가합니다.
    • 배열 변수에 추가 (Append to array variable): 배열 변수에 항목을 추가합니다.
  • 예시: 처리된 항목 수 계산

    • 각 항목에 적용 반복문 안에서 변수 증가 액션을 사용하여 처리된 항목의 총 개수를 셀 수 있습니다. 흐름 마지막에 이 변수 값을 활용하여 ‘총 @{variables(‘처리된항목수’)}개의 항목이 처리되었습니다.’ 와 같은 메시지를 보낼 수 있습니다.

4.2. 식 (Expressions)의 마법: 데이터 변환 및 가공

식은 Power Automate의 진정한 힘을 발휘하는 부분입니다. 동적 콘텐츠만으로는 불가능한 복잡한 데이터 조작, 변환, 계산 등을 수행할 수 있습니다. fx 버튼을 눌러 접근할 수 있습니다.

  • 주요 활용:

    • 문자열 함수: substring(), concat(), split(), toLower(), toUpper() 등 (문자열 자르기, 합치기, 대소문자 변환)
    • 날짜 및 시간 함수: utcNow(), formatDateTime(), addDays() 등 (현재 시간 가져오기, 날짜 형식 지정, 날짜 계산)
    • 컬렉션 함수: length(), first(), last() 등 (배열 길이, 첫/마지막 항목 가져오기)
    • 변환 함수: int(), string(), json() 등 (데이터 타입 변환)
    • 논리 함수: and(), or(), not() 등 (조건문에서 더 복잡한 논리 구성)
  • 예시:

    • formatDateTime(utcNow(), 'yyyy-MM-dd HH:mm:ss') : 현재 시간을 ‘2023-10-27 15:30:00’ 형태로 변환.
    • substring(triggerBody()?['Subject'], 0, 10) : 메일 제목의 첫 10글자만 추출.
    • length(outputs('Get_items')?['body']?['value']) : ‘항목 가져오기’ 액션으로 가져온 SharePoint 항목의 개수.

4.3. 오류 처리 (Error Handling): 견고한 흐름 만들기 🛡️

흐름이 실패했을 때를 대비하여 오류 처리 로직을 구현하는 것은 매우 중요합니다. 이를 통해 예상치 못한 문제에도 흐름이 멈추지 않고, 관리자에게 알림을 보내는 등의 후속 조치를 취할 수 있습니다.

  • 실행 후 구성 (Configure run after): 각 액션의 점 3개 메뉴에서 ‘실행 후 구성’을 통해 이전 액션의 상태(성공, 실패, 건너뛰기, 시간 초과)에 따라 현재 액션이 실행될지 여부를 설정할 수 있습니다.

    • 예시: ‘파일 만들기’ 액션이 실패한 경우에만 ‘관리자에게 알림’ 액션을 실행하도록 설정.
  • 범위 (Scope) 액션: 여러 액션을 논리적인 그룹으로 묶어 관리할 수 있습니다. Scope 액션 자체에도 ‘실행 후 구성’을 적용하여, 특정 그룹의 작업 중 하나라도 실패했을 때 일괄적으로 오류 처리 로직을 실행하도록 만들 수 있습니다.

  • 예시: 실패 시 Teams 알림 🚨

    1. 중요한 로직들을 범위 액션 안에 넣습니다.
    2. 범위 액션 바로 아래에 ‘메시지 게시’ (Teams) 액션을 추가합니다.
    3. ‘메시지 게시’ 액션의 ‘실행 후 구성’을 열어, 이전 작업이 성공했음의 체크를 해제하고, 이전 작업이 실패했음을 체크합니다. (선택적으로 이전 작업이 건너뛰었음, 이전 작업이 시간 초과되었음도 선택)
    4. 메시지: “❌ 흐름 실행 중 오류 발생! @{workflow()[‘run’][‘name’]}이(가) 실패했습니다.”

4.4. 병렬 분기 (Parallel Branches): 동시 작업 처리 👯‍♀️

흐름에서 두 가지 이상의 독립적인 작업을 동시에 수행해야 할 때 ‘병렬 분기’를 사용할 수 있습니다.

  • 예시: SharePoint에 파일이 업로드되면, 동시에 ‘관리자에게 승인 요청’을 보내고, ‘해당 파일에 대한 데이터베이스 업데이트’를 수행합니다. 이 두 작업은 서로의 완료를 기다릴 필요 없이 독립적으로 진행될 수 있습니다.

4.5. 중첩 (Nesting): 복잡한 논리 구현 🌀

Power Automate에서는 조건문 안에 조건문을, 반복문 안에 조건문을, 또는 조건문 안에 반복문을 넣는 등 액션들을 중첩하여 사용할 수 있습니다. 이는 매우 복잡하고 정교한 업무 자동화 로직을 구현하는 데 필수적입니다.

  • 예시: 각 항목에 적용 (첨부 파일) -> 조건 (파일 유형이 PDF인 경우) -> 파일 변환 (PDF를 텍스트로) -> 조건 (텍스트에 특정 키워드 포함) -> 알림

5. 마무리하며 🏁

Power Automate Cloud 흐름에서 조건문과 반복문은 여러분의 자동화 흐름에 생명을 불어넣는 핵심 요소입니다. 이들을 숙달한다면 단순 반복 작업뿐만 아니라, 복잡한 비즈니스 로직과 예외 상황까지 처리할 수 있는 진정한 ‘고급 흐름’을 구축할 수 있게 됩니다.

오늘 배운 내용들을 바탕으로 직접 흐름을 만들어보고, 다양한 커넥터와 액션들을 조합해보세요. 처음에는 어렵게 느껴질 수 있지만, 꾸준히 시도하고 경험을 쌓다 보면 여러분도 업무 자동화의 달인이 될 수 있을 겁니다! 궁금한 점이 있다면 언제든지 Power Automate 커뮤니티나 관련 자료를 찾아보세요.

여러분의 생산성 향상을 응원합니다! 💪 궁금한 점은 언제든지 댓글로 남겨주세요! 😊 D

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다