맨위로가기

WS-BPEL

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

WS-BPEL(Web Services Business Process Execution Language)은 웹 서비스 기반 비즈니스 프로세스를 정의하기 위한 XML 기반 언어이다. IBM과 마이크로소프트가 개발한 언어를 통합하여 2004년 OASIS에서 WS-BPEL 2.0으로 표준화되었다. BPEL은 '대규모 프로그래밍'과 '소규모 프로그래밍' 개념을 통해 비즈니스 프로세스를 구성하며, 웹 서비스를 외부 통신 메커니즘으로 사용한다. BPEL4People 및 WS-HumanTask 사양을 통해 인간 상호 작용을 포함하며, WS-BPEL 2.0은 새로운 활동 유형, 기능 개선 등을 제공한다.

더 읽어볼만한 페이지

  • XML 기반 표준 - XAML
    XAML은 마이크로소프트에서 개발한 XML 기반의 마크업 언어로, 사용자 인터페이스, 데이터 바인딩, 이벤트 처리 등을 정의하며 WPF, Silverlight, WF, WinRT API 앱, Xamarin.Forms 등에서 UI 개발에 널리 사용된다.
  • XML 기반 표준 - 아톰 (표준)
    Atom은 웹 사이트 업데이트 정보와 콘텐츠 배포를 위한 XML 기반 문서 형식으로, Atom 배포 형식과 Atom 출판 프로토콜로 구성되어 있으며, RSS를 대체하기 위해 고안되었고 국제화 지원 및 모듈성에서 차이를 보인다.
WS-BPEL
일반 정보
이름웹 서비스 비즈니스 프로세스 실행 언어
원어명Web Services Business Process Execution Language
약칭WS-BPEL 또는 BPEL
기술 정보
종류컴퓨터 실행 가능 언어
기반 표준XML
관련 표준해당 없음
도메인웹 서비스 통합
표준 정보
상태게시됨
시작 년도2001년
첫 게시일2003년 4월
버전2.0
버전 날짜2007년 4월 11일
기관OASIS
위원회OASIS 웹 서비스 비즈니스 프로세스 실행 언어 (WSBPEL) TC
편집자해당 없음
저자해당 없음
라이선스해당 없음
웹사이트WS-BPEL 2.0 OASIS 표준

2. 역사

IBM마이크로소프트는 2000년대 초 각각 웹 서비스 플로우 언어(WSFL)과 Xlang(XLANG)을 개발하여 웹 서비스 기반 비즈니스 프로세스 통합을 시도했다.[4][5] 이러한 상황에서 비즈니스 프로세스 모델링 언어(BPML)의 등장과 개방형 표준을 추진하는 움직임은 IBM과 마이크로소프트가 두 언어를 통합하여 BPEL4WS라는 새로운 언어를 만들도록 이끌었다.[6]

2003년 4월, BEA 시스템즈, IBM, 마이크로소프트, SAP, Siebel Systems는 BPEL4WS 1.1을 OASIS에 표준으로 제출했다.[7] 2004년 9월 14일, OASIS WS-BPEL 기술 위원회는 BPEL4WS 1.1과 WS-BPEL 2.0 간의 대폭적인 개선 사항을 반영하고, BPEL을 다른 웹 서비스 표준 명명 규칙과 일치시키기 위해 사양의 이름을 "WS-BPEL 2.0"으로 변경했다.[8]

2007년 6월에는 Active Endpoints, 어도비, BEA 시스템즈, IBM, 오라클, SAP가 BPEL4People 및 WS-HumanTask 사양을 발표하여 BPEL 프로세스에서 인간 상호 작용을 구현하는 방법을 제시했다.

2. 1. BPEL의 기원과 발전

IBM마이크로소프트는 2000년대 초 각각 웹 서비스 플로우 언어(WSFL)과 Xlang(XLANG)을 개발하여 웹 서비스 기반 비즈니스 프로세스 통합을 시도했다.[4][5] 이러한 상황에서 비즈니스 프로세스 모델링 언어(BPML)의 등장과 개방형 표준을 추진하는 움직임은 IBM과 마이크로소프트가 두 언어를 통합하여 BPEL4WS라는 새로운 언어를 만들도록 이끌었다.[6]

2003년 4월, BEA 시스템즈, IBM, 마이크로소프트, SAP, Siebel Systems는 BPEL4WS 1.1을 OASIS에 표준으로 제출했다.[7] 2004년 9월 14일, OASIS WS-BPEL 기술 위원회는 BPEL4WS 1.1과 WS-BPEL 2.0 간의 대폭적인 개선 사항을 반영하고, BPEL을 다른 웹 서비스 표준 명명 규칙과 일치시키기 위해 사양의 이름을 "WS-BPEL 2.0"으로 변경했다.[8]

2007년 6월에는 Active Endpoints, 어도비, BEA 시스템즈, IBM, 오라클, SAP가 BPEL4People 및 WS-HumanTask 사양을 발표하여 BPEL 프로세스에서 인간 상호 작용을 구현하는 방법을 제시했다.

2. 2. BPEL4People과 WS-HumanTask

2007년 6월, Active Endpoints, 어도비, BEA 시스템즈, IBM, 오라클, SAP는 BPEL4People 및 WS-HumanTask 사양을 출시했다. 이는 BPEL 프로세스에서 인간의 활동을 어떻게 포함시킬 것인지 설명하는 것이다. 웹 서비스가 분산 비즈니스 애플리케이션에서 널리 사용되었음에도 불구하고, 실제 비즈니스 프로세스에서는 사람과의 상호 작용이 없다는 점이 중요한 문제로 남아 있었다. 이러한 격차를 해소하기 위해, BPEL4People은 오케스트레이션을 웹 서비스 단독에서 역할 기반의 사람 활동까지 포함하도록 확장했다.

3. 목적

BPEL은 '대규모 프로그래밍'과 '소규모 프로그래밍'이라는 두 가지 개념을 통해 비즈니스 프로세스를 구성한다.[12][13]

'대규모 프로그래밍'은 일반적으로 프로세스의 고수준 상태 전이 상호 작용을 의미한다. BPEL은 이 개념을 추상 프로세스라고 지칭하며, 표준화된 방식으로 공개적으로 관찰 가능한 일련의 동작을 나타낸다. 추상 프로세스에는 메시지를 언제 기다릴지, 메시지를 언제 보낼지, 실패한 트랜잭션을 언제 보상할지 등에 대한 정보가 포함된다.

반대로 '소규모 프로그래밍'은 단일 트랜잭션으로 실행되고 파일, 데이터베이스 등과 같은 로컬 로직 및 리소스에 대한 액세스를 포함하는 단기적인 프로그래밍 동작을 다룬다. BPEL의 'if-then-elseif-else' 및 'while'과 같은 제어 구조와 변수 조작 기능은 로직을 제공하기 위해 '소규모 프로그래밍' 언어를 사용하는 데 의존한다. 모든 BPEL 구현은 기본 언어로 XPath 1.0을 지원해야 한다. 그러나 BPEL의 설계는 시스템 구축자가 다른 언어도 사용할 수 있도록 확장성을 고려한다. BPELJ는 Java가 BPEL 내에서 '소규모 프로그래밍' 언어 역할을 할 수 있게 될 수 있다.

BPEL은 다음과 같은 10가지 주요 설계 목표를 가지고 있다.[9]

# WSDL 1.1을 사용하여 정의된 웹 서비스 작업을 통해 외부 엔터티와 상호 작용하고, WSDL 1.1을 사용하여 정의된 웹 서비스로 나타나는 비즈니스 프로세스를 정의한다. 상호 작용은 포트 정의가 아닌 `portType` 정의에 대한 종속성이 있다는 점에서 "추상적"이다.[9]

# XML 기반 언어를 사용하여 비즈니스 프로세스를 정의한다. 프로세스의 그래픽 표현을 정의하거나 프로세스에 대한 특정 설계 방법론을 제공하지 않는다.[9]

# 비즈니스 프로세스의 외부 (추상적) 및 내부 (실행 가능) 보기에 모두 사용될 웹 서비스 오케스트레이션 개념 집합을 정의한다. 이러한 비즈니스 프로세스는 일반적으로 다른 유사한 피어 엔터티와 상호 작용하여 작동하는 단일 자율 엔터티의 동작을 정의한다. 각 사용 패턴 (즉, 추상 보기 및 실행 가능 보기)에는 몇 가지 특수 확장 기능이 필요하지만 이러한 확장은 최소한으로 유지하고 두 사용 패턴을 연결하는 가져오기/내보내기 및 적합성 검사와 같은 요구 사항에 대해 테스트해야 한다.[9]

# 계층적 및 그래프와 같은 제어 체계를 모두 제공하고 가능한 한 원활하게 혼합하여 사용할 수 있도록 한다. 이를 통해 프로세스 모델링 공간의 단편화를 줄여야 한다.[9]

# 프로세스 데이터 및 제어 흐름을 정의하는 데 필요한 데이터의 간단한 조작을 위한 데이터 조작 기능을 제공한다.[9]

# 애플리케이션 메시지 수준에서 인스턴스 식별자를 정의할 수 있도록 프로세스 인스턴스에 대한 식별 메커니즘을 지원한다. 인스턴스 식별자는 파트너에 의해 정의되어야 하며 변경될 수 있다.[9]

# 기본 라이프 사이클 메커니즘으로 프로세스 인스턴스의 암시적 생성 및 종료를 지원한다. "일시 중지" 및 "재개"와 같은 고급 라이프 사이클 작업은 향상된 라이프 사이클 관리를 위해 향후 릴리스에 추가될 수 있다.[9]

# 보상 작업 및 범위 지정을 사용하여 장기 실행 비즈니스 프로세스의 일부에 대한 실패 복구를 지원하는 입증된 기술을 기반으로 하는 장기 실행 트랜잭션 모델을 정의한다.[9]

# 웹 서비스를 프로세스 분해 및 조립 모델로 사용한다.[9]

# 가능한 한 조립 가능하고 모듈식 방식으로 웹 서비스 표준 (승인 및 제안)을 기반으로 한다.[9]

3. 1. 주요 설계 목표

BPEL은 다음과 같은 10가지 주요 설계 목표를 가지고 있다.[9]

# WSDL 1.1을 사용하여 정의된 웹 서비스 작업을 통해 외부 엔터티와 상호 작용하고, WSDL 1.1을 사용하여 정의된 웹 서비스로 나타나는 비즈니스 프로세스를 정의한다. 상호 작용은 포트 정의가 아닌 `portType` 정의에 대한 종속성이 있다는 점에서 "추상적"이다.[9]

# XML 기반 언어를 사용하여 비즈니스 프로세스를 정의한다. 프로세스의 그래픽 표현을 정의하거나 프로세스에 대한 특정 설계 방법론을 제공하지 않는다.[9]

# 비즈니스 프로세스의 외부 (추상적) 및 내부 (실행 가능) 보기에 모두 사용될 웹 서비스 오케스트레이션 개념 집합을 정의한다. 이러한 비즈니스 프로세스는 일반적으로 다른 유사한 피어 엔터티와 상호 작용하여 작동하는 단일 자율 엔터티의 동작을 정의한다. 각 사용 패턴 (즉, 추상 보기 및 실행 가능 보기)에는 몇 가지 특수 확장 기능이 필요하지만 이러한 확장은 최소한으로 유지하고 두 사용 패턴을 연결하는 가져오기/내보내기 및 적합성 검사와 같은 요구 사항에 대해 테스트해야 한다.[9]

# 계층적 및 그래프와 같은 제어 체계를 모두 제공하고 가능한 한 원활하게 혼합하여 사용할 수 있도록 한다. 이를 통해 프로세스 모델링 공간의 단편화를 줄여야 한다.[9]

# 프로세스 데이터 및 제어 흐름을 정의하는 데 필요한 데이터의 간단한 조작을 위한 데이터 조작 기능을 제공한다.[9]

# 애플리케이션 메시지 수준에서 인스턴스 식별자를 정의할 수 있도록 프로세스 인스턴스에 대한 식별 메커니즘을 지원한다. 인스턴스 식별자는 파트너에 의해 정의되어야 하며 변경될 수 있다.[9]

# 기본 라이프 사이클 메커니즘으로 프로세스 인스턴스의 암시적 생성 및 종료를 지원한다. "일시 중지" 및 "재개"와 같은 고급 라이프 사이클 작업은 향상된 라이프 사이클 관리를 위해 향후 릴리스에 추가될 수 있다.[9]

# 보상 작업 및 범위 지정을 사용하여 장기 실행 비즈니스 프로세스의 일부에 대한 실패 복구를 지원하는 입증된 기술을 기반으로 하는 장기 실행 트랜잭션 모델을 정의한다.[9]

# 웹 서비스를 프로세스 분해 및 조립 모델로 사용한다.[9]

# 가능한 한 조립 가능하고 모듈식 방식으로 웹 서비스 표준 (승인 및 제안)을 기반으로 한다.[9]

3. 2. 대규모 프로그래밍과 소규모 프로그래밍

BPEL은 '대규모 프로그래밍'과 '소규모 프로그래밍'이라는 두 가지 개념을 통해 비즈니스 프로세스를 구성한다.[12][13]

'대규모 프로그래밍'은 일반적으로 프로세스의 고수준 상태 전이 상호 작용을 의미한다. BPEL은 이 개념을 추상 프로세스라고 지칭하며, 표준화된 방식으로 공개적으로 관찰 가능한 일련의 동작을 나타낸다. 추상 프로세스에는 메시지를 언제 기다릴지, 메시지를 언제 보낼지, 실패한 트랜잭션을 언제 보상할지 등에 대한 정보가 포함된다.

반대로 '소규모 프로그래밍'은 단일 트랜잭션으로 실행되고 파일, 데이터베이스 등과 같은 로컬 로직 및 리소스에 대한 액세스를 포함하는 단기적인 프로그래밍 동작을 다룬다. BPEL의 'if-then-elseif-else' 및 'while'과 같은 제어 구조와 변수 조작 기능은 로직을 제공하기 위해 '소규모 프로그래밍' 언어를 사용하는 데 의존한다. 모든 BPEL 구현은 기본 언어로 XPath 1.0을 지원해야 한다. 그러나 BPEL의 설계는 시스템 구축자가 다른 언어도 사용할 수 있도록 확장성을 고려한다. BPELJ는 Java가 BPEL 내에서 '소규모 프로그래밍' 언어 역할을 할 수 있게 될 수 있다.

4. BPEL 언어

BPEL은 오케스트레이션 언어이며, 코레오그래피 언어는 아니다.[14] 오케스트레이션은 중앙 집중식 제어 방식으로, 실행 가능한 프로세스를 지정하며 메시지 교환 순서는 오케스트레이션 설계자에 의해 제어된다. 반면 코레오그래피는 분산 제어 방식으로, 피어 투 피어 상호 작용을 위한 프로토콜을 지정하며, 메시지 교환의 적법한 순서를 정의한다.[14] 코레오그래피는 각 피어에 대해 오케스트레이션(예: BPEL 프로세스 형태)을 작성하여 구현할 수 있다.

오케스트레이션과 코레오그래피의 구분은 비유를 통해 설명할 수 있다. 오케스트레이션은 오케스트라 지휘자와 같이 중앙 집중적인 제어를 통해 동작하는 반면, 코레오그래피는 안무된 댄스처럼 중앙 집중적인 제어 없이 댄서들이 서로의 짝의 행동에 반응하도록 각 참가자가 외부 이벤트에 기반한 처리를 수행하는 분산 제어적인 행동을 기술한다.

BPEL은 현대 비즈니스 프로세스에 중점을 두었고, WSFL 및 XLANG의 역사를 바탕으로 웹 서비스를 외부 통신 메커니즘으로 채택했다. 따라서 BPEL의 메시징 기능은 나가는 메시지와 들어오는 메시지를 설명하기 위해 WSDL 1.1을 사용한다.

4. 1. 오케스트레이션과 코레오그래피

BPEL은 오케스트레이션 언어이며, 코레오그래피 언어는 아니다.[14] 오케스트레이션은 중앙 집중식 제어 방식으로, 실행 가능한 프로세스를 지정하며 메시지 교환 순서는 오케스트레이션 설계자에 의해 제어된다. 반면 코레오그래피는 분산 제어 방식으로, 피어 투 피어 상호 작용을 위한 프로토콜을 지정하며, 메시지 교환의 적법한 순서를 정의한다.[14] 코레오그래피는 각 피어에 대해 오케스트레이션(예: BPEL 프로세스 형태)을 작성하여 구현할 수 있다.

오케스트레이션과 코레오그래피의 구분은 비유를 통해 설명할 수 있다. 오케스트레이션은 오케스트라 지휘자와 같이 중앙 집중적인 제어를 통해 동작하는 반면, 코레오그래피는 안무된 댄스처럼 중앙 집중적인 제어 없이 댄서들이 서로의 짝의 행동에 반응하도록 각 참가자가 외부 이벤트에 기반한 처리를 수행하는 분산 제어적인 행동을 기술한다.

BPEL은 현대 비즈니스 프로세스에 중점을 두었고, WSFL 및 XLANG의 역사를 바탕으로 웹 서비스를 외부 통신 메커니즘으로 채택했다. 따라서 BPEL의 메시징 기능은 나가는 메시지와 들어오는 메시지를 설명하기 위해 WSDL 1.1을 사용한다.

4. 2. BPEL의 기능

BPEL은 웹 서비스를 외부 통신 메커니즘으로 사용하는 오케스트레이션 언어이다.[14] BPEL의 메시징 기능은 WSDL 1.1을 사용하여 입출력 메시지를 기술한다.

BPEL 프로그래밍 언어는 메시지 송수신 기능 외에도 다음과 같은 기능을 지원한다.[15][16][17][18]

  • 속성 기반 메시지 상관 관계 메커니즘
  • XML 및 WSDL 형식 변수
  • XPath 1.0을 기본 지원하는 확장 가능한 언어 플러그인 모델
  • 구조적 프로그래밍 구성 (연결, 분기, 반복, 병렬)
  • 로컬 변수, 오류/보상/이벤트 핸들러를 사용한 로직 캡슐화를 지원하는 스코핑 시스템
  • 변수에 대한 동시 접근을 제어하는 직렬화된 스코프


오케스트레이션은 분산 시스템의 동작에 대한 중앙 제어(지휘자)를 의미하는 반면, 코레오그래피는 규칙(안무)에 따라 작동하지만 중앙 집중식 제어 없이 작동하는 분산 시스템(댄스팀)을 의미한다.

4. 3. BPEL과 BPMN의 관계

WS-BPEL에는 표준 그래픽 표기법이 없으며, OASIS 기술 위원회에서 이는 범위를 벗어난다고 결정했다.[10] 일부 벤더는 자체 표기법을 개발했는데, 이러한 표기법은 BPEL의 대부분의 구성 요소가 블록 구조(예: 시퀀스, while, pick, scope 등)라는 사실을 활용하여 Nassi–Shneiderman 다이어그램을 연상시키는 스타일로 BPEL 프로세스 설명을 직접 시각적으로 표현할 수 있게 해준다.

다른 한편으로는, BPMN을 사용하여 BPEL 프로세스 설명을 캡처하기 위한 그래픽 프론트 엔드로 사용하자는 제안이 있었다. BPMN 사양에는 BPMN에서 BPEL 1.1로의 비공식적이고 부분적인 매핑이 포함되어 있다.[10] BPMN2BPEL로 알려진 오픈 소스 도구를 포함한 여러 도구에서 BPMN에서 BPEL로의 더 자세한 매핑이 구현되었다.[11] 그러나 이러한 도구의 개발은 BPMN과 BPEL 간의 근본적인 차이점을 드러냈으며, 이로 인해 BPMN 모델에서 사람이 읽을 수 있는 BPEL 코드를 생성하는 것이 매우 어렵고, 경우에 따라 불가능하게 되었다. 더 어려운 문제는 BPMN-to-BPEL 왕복 엔지니어링 문제, 즉 BPMN 다이어그램에서 BPEL 코드를 생성하고, 하나에 대한 수정 사항이 다른 쪽으로 전파되는 의미에서 원래 BPMN 모델과 생성된 BPEL 코드를 동기화하는 것이다.

4. 4. BPEL4People

웹 서비스가 분산 비즈니스 애플리케이션에서 널리 사용되었음에도 불구하고, 실제 비즈니스 프로세스에서는 사람과의 상호 작용이 없다는 점이 중요한 문제로 남아 있었다.

이러한 격차를 해소하기 위해, BPEL4People은 오케스트레이션을 웹 서비스 단독에서 역할 기반의 사람 활동까지 포함하도록 확장했다. BPEL4People은 비즈니스 프로세스 내에서 역할 기반의 사람 상호 작용을 지원하며, 일반적인 사람 역할에 사용자를 할당하고, 작업 소유권을 한 사람에게만 위임하도록 한다. 4눈 시나리오, 지명, 에스컬레이션, 체인 실행과 같은 시나리오를 지원한다.

''WS-HumanTask'' 명세는 인간 작업의 속성, 동작 및 인간 작업을 조작하는 데 사용되는 일련의 작업을 포함하여 인간 작업과 알림의 정의를 소개한다. 상호 운용 가능한 방식으로 서비스 지원 인간 작업의 자율성과 수명 주기를 제어하기 위해 조정 프로토콜이 도입되었다.

''BPEL4People'' 명세는 일급 시민으로서 WS-BPEL에서 인간 상호 작용을 처리하기 위한 WS-BPEL 확장을 소개한다. 이는 인간 작업을 구현으로 사용하는 새로운 유형의 기본 활동을 정의하고, 프로세스에 로컬인 작업을 지정하거나 프로세스 정의 외부에 정의된 작업을 사용할 수 있도록 한다. 이 확장은 WS-HumanTask 명세를 기반으로 한다.

5. WS-BPEL 2.0의 변경 사항

WS-BPEL 2.0 버전은 여러 변경 사항과 새로운 기능을 도입했다.


  • 새로운 활동 유형으로 `repeatUntil`, `validate`, `forEach`(병렬 및 순차), `rethrow`, `extensionActivity`, `compensateScope`가 추가되었다.
  • `switch/case` 활동은 `if/else`로, `terminate` 활동은 `exit`로 이름이 변경되었다.
  • 종료 핸들러가 스코프 활동에 추가되어 종료 시 명시적인 동작을 제공한다.
  • 변수 초기화 기능이 추가되었다.
  • 변수 변환을 위한 XSLT가 추가되었으며, 새로운 XPath 확장 함수 `bpws:doXslTransform`를 포함한다.
  • `XPath` 변수 구문 `$variable[.part]/location`를 사용하여 변수 데이터에 대한 XPath 접근이 가능해졌다.
  • WS-I doc/lit 스타일 서비스 상호 작용을 위한 웹 서비스 활동의 XML 스키마 변수가 추가되었다.
  • 지역적으로 선언된 `messageExchange`를 통해 수신 및 응답 활동의 내부 상관 관계를 정의할 수 있게 되었다.
  • 추상 프로세스의 구문 및 의미가 명확화되었다.
  • 각 활동에서 표현 언어를 재정의할 수 있게 되었다.

6. 한국 정보화 및 정부 정책과의 연관성

6. 1. 전자정부 프레임워크와의 연동

6. 2. 중소기업 지원

6. 3. 더불어민주당의 디지털 경제 정책

참조

[1] 간행물 OASIS Standard WS-BPEL 2.0
[2] Webarchive Business Process Execution Language for Web Services, Version 1.1 http://download.boul[...] 2003-05-05
[3] 웹사이트 OASIS Members Form Web Services Business Process Execution Language (WSBPEL) Technical Committee https://www.oasis-op[...] OASIS WSBPEL Technical Committee 2003-04-29
[4] 웹사이트 Cover Pages: Web Services Flow Language (WSFL) http://xml.coverpage[...] xml.coverpages.org 2001-06-06
[5] 웹사이트 XLANG http://xml.coverpage[...] xml.coverpages.org 2001-01-01
[6] 웹사이트 XLANG/s Language http://msdn.microsof[...] Microsoft
[7] 웹사이트 Web Services BPEL Technical Committee http://www.oasis-ope[...]
[8] 웹사이트 choreology.com http://www.choreolog[...] choreology.com
[9] 논문 Representing business processes: conceptual model and design methodology. https://www.academia[...] 2009-01-01
[10] 웹사이트 Archived copy http://www.omg.org/b[...]
[11] 웹사이트 BPMN2BPEL https://code.google.[...]
[12] Webarchive BPELJ http://ftpna2.bea.co[...] 2005-05-16
[13] 웹사이트 JSR 207 http://www.jcp.org/e[...]
[14] 문서 choreography
[15] 문서 sequence
[16] 문서 if-then-elseif-else
[17] 문서 while
[18] 문서 flow、コマンドを並列に実行する。



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com