본문으로 건너뛰기

Data & State Management (데이터 & 상태 관리)

데이터 개념 한눈에 보기

정보

이 위젯은 Free 플랜에서 잠겨 있으며, Pro·Enterprise 플랜에서 사용할 수 있습니다.

Lucy Studio에서 Data Management는 아래 개념이 순서대로 이어지는 흐름입니다.

  1. Data Provider - 외부 서버와 어떻게 통신할지 정의
  2. Provider Instance - 그 정의를 실제로 호출하기 위해 이름 붙여 만드는 실행 단위
  3. Data Set - Provider Instance의 응답 구조를 복제해서, 메모리에 담아둔 데이터들
  4. Data Binding - 위젯 속성에 연결하는 작업

Data Provider - 외부 데이터 연동 정의

Data Provider는 외부 API(또는 실시간 소켓) 연결 하나를 이름 붙여 등록해두는 것입니다. 아직 "호출"하는 단계는 아니고, 어떤 주소로, 어떤 값을 보내고, 어떤 값을 받을지를 미리 정의해 둡니다.

Data Provider 설정 화면

Data Provider를 만들 때 정하는 것:

  • 이름/설명: 다른 화면에서 이 Provider를 찾아볼 때 쓰는 이름
  • 연동 방식: 일반 API 호출인지, 실시간으로 데이터가 계속 들어오는 소켓 방식인지
  • 요청 형식: 서버로 보낼 값들 (헤더/쿼리/바디에 어떤 항목이 들어가는지, 각 항목이 텍스트/숫자/참거짓/날짜 중 무엇인지, 목록 형태인지)
  • 응답 형식: 서버가 돌려주는 값들도 같은 방식으로 항목별로 정의

여러 항목이 있는 복잡한 응답이라도, Call / Response 필드를 정의해두면 이후 화면 어디서든 그 구조를 그대로 재사용할 수 있습니다.

Provider Instance - Provider 실제 사용하기

Data Provider는 "정의"일 뿐이라, 화면에서 실제로 데이터를 요청하려면 그 Provider를 바탕으로 Provider Instance를 만들어 둡니다. Provider Instance는 Provider에 실제로 보낼 값(파라미터)을 채워 넣고 이름을 붙인, "바로 호출 가능한 상태"의 실행 단위입니다.

Provider Instance 설정 화면

같은 Data Provider 하나로 파라미터만 다르게 해서 여러 개의 Provider Instance를 만들 수도 있습니다. 예를 들어 "목 시세 조회"라는 Provider 하나를 가지고, 종목코드만 다르게 지정한 Provider Instance를 여러 개 만들어 화면 여러 곳에서 각각 다른 종목을 조회하는 식입니다.

스크립트에서 데이터를 요청할 때는 Provider가 아니라 Provider Instance의 이름을 사용합니다.

// "stockInfo"라는 이름의 Provider Instance에 데이터 요청
$vm.requestData("stockInfo");

요청에 대한 응답을 받으면 그 Provider Instance에 연결된 변수·Data Set·위젯이 자동으로 갱신되며, 스크립트를 이용하여 Data Set 값을 읽거나 쓸 수 있습니다.

Data Set - 데이터 셋 정의

Data Set은 특정 Provider Instance의 응답 구조를 복제(clone)해서, 받아온 데이터를 화면(폼)이 실행되는 동안 메모리에 담아둘 수 있게 해주는 구조입니다. Provider Instance 자체를 가리키는 게 아니라, 만드는 순간의 응답 구조를 복제해 독립적으로 보관한다는 점이 특징입니다.

Data Set 설정 화면

Data Set을 만들 때 정하는 것:

  • 이름/설명
  • 기반이 될 Provider Instance - 이 Instance의 요청 또는 응답 구조를 가져와 Data Set의 틀로 쓰려면, 먼저 이 Provider Instance와 Data Set을 연결해야 합니다. 연결해두면 이후 이 Provider Instance로 데이터를 요청할 때마다 그 응답이 이 Data Set에 자동으로 채워집니다.
  • Data Field 구성 - Provider Instance 구조를 가져오거나 빈 Data Set에서 시작한 뒤, 실제로 보관할 필드를 자유롭게 추가·삭제·수정할 수 있습니다.

Data Set은 "지금 이 구조를 기준으로 화면을 만들겠다"고 스냅샷을 떠두는 것이라, 이후 원본 Provider Instance의 응답 구조가 바뀌어도 Data Set이 자동으로 따라 바뀌지는 않습니다. 구조가 바뀌면 Data Set도 다시 맞춰줘야 합니다.

위젯 속성 연결하기 (Binding)

Binding은 위젯 속성 하나의 값을 Data Set이나 변수와 연결해두는 기능입니다.

위젯을 선택하면 속성 패널에 Property / Event / Binding 세 가지 탭이 나타나는데, 이 중 Binding 탭을 선택하면 이 위젯에서 바인딩 가능한 속성들이 목록으로 표시됩니다.

연결은 드래그 앤 드롭으로 합니다. "Select Data Source and Variable" 창에서 연결하고 싶은 Data Set의 필드나 변수를 찾아, 목록에 있는 속성 위로 끌어다 놓으면 연결이 완료됩니다.

Binding 설정 화면

연결한 값은 그대로 쓰는 것 외에도, 컨버터·자릿수 반올림·정규식·문자열 자르기(Slice)/합치기(Join) 같은 값 가공 설정을 추가로 적용할 수 있습니다.