메모리 구조
Last updated
Last updated
일반적인 코딩과는 다르게 API Drag 서비스는 제한된 환경에서 제한된 기능을 제공합니다. 이런 환경적인 제약 때문에 API Drag는 모든 메모리 구조를 자유롭게 사용하도록 할 수 없기 때문에, 다음의 몇 가지 메모리 구조를 제공하고 있습니다.
global 메모리 구조는 하나의 Macro 서비스 내에서 언제든, 어디서든 접근이 가능한 구조 입니다.
처음 Macro 서비스가 실행되면 global 메모리 구조가 만들어지고, Macro 서비스가 종료됨과 동시에 사라집니다. 사용자는 언제든 아이템 블록 내에서 global 의 메모리에 접근하여 값을 등록하고, 값을 읽을 수 있습니다.
아래는 global 메모리 구조에 접근하는 예제 입니다.
위 예제는 Assign 아이템 블록을 이용하여 global 메모리 영역에 uName라는 변수를 선언하고, 그 값으로 "홍길동"이라는 값을 할당하는 예제입니다.
아래 이미지는 위 이미지와 연결하여 global 메모리 영역에 있는 uName 변수의 값을 glogal 메모리 영역에 있는 temp 변수에 다시 옮기는 예제입니다.
msg 메모리 영역은 global 메모리 영역과 마찬가지로 Macro 서비스가 처음 실행하면서 만들어지는 메모리 영역입니다. 그러나 API Drag 서비스는 이 msg 영역을 기본 메모리 영역으로 사용을 하고 있습니다.
API 호출과 관련 된 아이템 블록들은 외부 OPEN API를 호출하고 그 결과값을 받습니다. 그리고 이렇게 수신한 메시지를 항상 msg 메모리 영역에 payload 변수에 갱신을 하고 있습니다. 그리고 Input Data 카테고리 내 아이템 블록들도 msg.payload 에 확보한 데이터를 갱신합니다.
사용자가 이 메모리 영역을 custom 영역으로 사용을 하고자한다면, msg.payload 를 제외하고 사용을 하시면 됩니다. 그러나 msg.payload 에 사용자의 변수를 선언하시게 된다면, 언제든 아이템 블록에 의해 새롭게 바뀔 수 있다는 것을 염두에 두어야 합니다.
loop 영역은 Loop 아이템 블록의 하위에서 생성되며, 그 내부에서만 사용을 할 수 있습니다.
Loop 아이템 블록을 사용하고, 그 내부에서만 사용되어야 하는 값은 loop 메모리 영역을 활용하시면 됩니다. API Drag 서비스에서는 Loop 아이템 블록의 반복 설정에 따라 loop 메모리 영역 안에 loop.index, loop.key, loop.value 변수를 활용하여 값을 전달합니다. 그리고 전달받은 값을 loop.payload 에 등록하여 전달합니다.
아래는loop 메모리 영역의 활용 예제 이미지입니다.