콘텐츠로 이동

병렬 실행

여러 동작을 동시에 실행하기 위한 카드들입니다.

무엇을 하는 단계인가요?

기본적으로 카드는 위에서 아래로 순차 실행됩니다. 두 가지 동작을 동시에 진행하고 싶을 때 (예: 컨베이어가 돌면서 동시에 메시지 표시) 병렬 카드를 사용합니다.

카드 종류

  • 동시에 시작


    동시에 시작 (PARALLEL_START)

    여러 작업을 동시 진행 시작

  • 작업 나누기


    작업 나누기 (PARALLEL_BRANCH)

    각 분기를 구분하는 마커

  • 모두 완료되면


    모두 완료되면 (PARALLEL_END)

    모든 분기 완료 후 다음 카드로

카드 사용법

동시에 시작 → 작업 나누기 → 모두 완료되면

3개 카드는 항상 함께 사용됩니다.

동시에 시작
  [작업 1]              ← 첫 번째 분기
  작업 나누기
  [작업 2]              ← 두 번째 분기 (작업 1 과 동시 실행)
  작업 나누기
  [작업 3]              ← 세 번째 분기 (다른 분기와 동시)
모두 완료되면
  [다음 카드]           ← 모든 분기 완료 후 실행
  • 모든 분기는 동시에 시작됩니다.
  • 다음 카드는 가장 오래 걸리는 분기가 끝난 후 실행됩니다.

사용 예시

예시 1 — 음성과 동작 동시

시작
동시에 시작
  [말하기 ("작업을 시작합니다")]    ← 음성 안내
  작업 나누기
  [컨베이어 켜기]                  ← 동시에 벨트 시작
모두 완료되면
[다음 카드]

음성 안내가 끝나기 전에 벨트가 이미 돌아가기 시작합니다.

예시 2 — 두 로봇 동시 동작

동시에 시작
  [로봇 #1] 로봇 이동 (A)
  작업 나누기
  [로봇 #2] 로봇 이동 (B)         ← 두 로봇이 동시에 다른 위치로
모두 완료되면
메시지 ("두 로봇 모두 도착")

예시 3 — 센서 모니터링 + 작업

동시에 시작
  [WHILE 센서 감지 → 메시지 표시]   ← 센서 계속 모니터링
  작업 나누기
  [로봇 픽 앤 플레이스 시퀀스]      ← 메인 작업 진행
모두 완료되면

주의사항 (자원 충돌)

한 자원은 한 분기에서만 제어

잘못된 사용 (충돌 발생):

동시에 시작
  [로봇 #1] 로봇 이동 (A)
  작업 나누기
  [로봇 #1] 로봇 이동 (B)         ← 같은 로봇을 동시에 다른 위치로
모두 완료되면

같은 로봇 #1 을 두 분기에서 동시에 제어 → 충돌 (Race Condition)

올바른 사용:

  • 각 분기마다 다른 자원 사용 (로봇 #1 vs 로봇 #2)
  • 또는 두 작업을 순차 (병렬 없이) 로 변경

자원별 충돌 위험

자원 충돌 위험
로봇 한 로봇은 한 분기에만
컨베이어 한 컨베이어는 한 분기에만 (켜기·끄기 분기 분리 금지)
센서·카메라 동시 읽기는 일반적으로 안전
변수 동시 쓰기는 마지막 값 우선 (예측 어려움)

자주 발생하는 문제

한 로봇을 두 분기에서 제어 → 동작 이상

경합 상태입니다. 한 로봇은 항상 한 분기에서만 제어하세요. 다른 분기에서는 다른 로봇 또는 컨베이어·메시지 등 다른 자원을 사용합니다.

병렬 분기가 다음 카드로 안 넘어감

가장 오래 걸리는 분기가 완료되어야 다음 카드 실행됩니다. 분기 안의 [센서 감지 대기] 등의 timeout 이 너무 크지 않은지 확인하세요.

동시에 시작 / 작업 나누기 / 모두 완료되면 누락

3개 카드는 항상 짝으로 사용. 하나라도 누락되면 파싱 오류가 발생합니다.

강사 팁

병렬은 익숙해진 후 도입

학생이 순차 흐름·IF·LOOP 에 충분히 익숙해진 후 병렬을 가르치는 것이 좋습니다. 병렬은 자원 충돌 개념이 추가되어 디버깅이 어려워집니다.

안전한 병렬 패턴

가장 안전한 병렬 사용:

  • 음성 / 메시지 (말하기) + 다른 동작
  • 다른 로봇끼리 동시 동작
  • 센서 모니터링 + 메인 작업

E-STOP 시 모든 분기 즉시 정지

[비상 정지] 누르면 모든 병렬 분기가 동시에 중단됩니다. 이건 안전상 의도된 동작입니다.

다음 단계

병렬까지 익혔다면 첫 프로그램 만들기 → 으로 통합 예제를 만들어 봅시다.


이 페이지에 빠진 내용이나 잘못된 부분을 발견하시면 페이지 하단 📮 피드백 보내기 를 활용해 주세요.