반응형
2주차 - 4~5일차: 서버 통신 (Transaction)
학습 목표
- 넥사크로에서 서버 API를 호출하는
transaction함수의 사용법을 익힌다. - 서버와 데이터를 주고받는 전체 과정을 이해한다.
1. Transaction 이란?
- 넥사크로가 서버와 비동기(Asynchronous)로 통신하기 위해 사용하는 기능입니다.
- Spring 서버의
@RestControllerAPI를 호출하고, 그 결과를 데이터셋으로 받는 역할을 합니다. fetch나axios와 유사하지만, 데이터셋을 직접 주고받을 수 있도록 최적화되어 있습니다.
2. transaction 함수의 주요 파라미터
this.transaction(
"strSvcID", // 1. 서비스 ID (임의의 Unique한 문자열)
"strURL", // 2. 요청할 서버 API 주소
"strInDatasets", // 3. 서버로 보낼 데이터셋 ( "전송할_데이터셋_이름=로컬_데이터셋_이름" )
"strOutDatasets", // 4. 서버로부터 받을 데이터셋 ( "로컬_데이터셋_이름=응답받을_데이터셋_이름" )
"strArgument", // 5. 서버로 보낼 일반 파라미터 (Key=Value 형태)
"strCallbackFunc" // 6. 통신 완료 후 실행될 콜백 함수 이름
);
- In/Out Datasets 형식:
서버에서 사용할 이름=로컬 데이터셋 이름입니다.ds_search=ds_search처럼 보통 동일하게 맞춥니다. - 비동기 처리:
transaction함수는 호출 즉시 다음 코드로 넘어가며, 서버 응답이 오면 지정된strCallbackFunc함수가 실행됩니다.
3. 통신 실습: 공공 데이터 API 호출하기
Spring 서버가 준비되지 않았으므로, 우선 외부에 공개된 기상청 동네예보 조회서비스를 호출하여 그리드에 날씨 정보를 표시해 봅시다.
데이터셋 준비:
ds_weather데이터셋을 만들고, API 응답에 맞춰category,fcstValue,fcstTime등의 컬럼을 추가합니다.화면 준비:
Button(btn_search),Grid(grd_weather)를 배치합니다. 그리드의binddataset은ds_weather로 설정합니다.스크립트 작성:
// [조회] 버튼 클릭 이벤트 this.btn_search_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo) { // 서비스 URL (실제로는 환경설정 등에서 관리) var strURL = "https://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getVilageFcst"; // 요청 파라미터 var strArgument = ""; strArgument += " serviceKey='[발급받은 서비스키]'"; // 공공데이터포털에서 발급받은 키 strArgument += " pageNo=1"; strArgument += " numOfRows=100"; strArgument += " dataType=XML"; // 넥사크로는 XML/JSON 모두 처리 가능 strArgument += " base_date=20250923"; strArgument += " base_time=0500"; strArgument += " nx=55 ny=127"; this.transaction( "getWeather", strURL, "", // 보낼 데이터셋 없음 "ds_weather=response.body.items.item", // 응답 데이터의 item 목록을 ds_weather에 담기 strArgument, "fn_callback" ); }; // 콜백 함수 this.fn_callback = function(strSvcID, nErrorCode, strErrorMsg) { if (nErrorCode < 0) { // 통신 실패 시 this.alert("통신 실패: " + strErrorMsg); return; } // 통신 성공 시 if (strSvcID == "getWeather") { this.alert("총 " + this.ds_weather.getRowCount() + "건의 날씨 정보가 조회되었습니다."); } };strOutDatasets경로:response.body.items.item처럼 응답 데이터의 구조에 맞춰 원하는 데이터의 경로를 지정할 수 있습니다.
2주차 마무리 과제
- 위 기상청 API 예제를 직접 구현해보기 (서비스키는 공공데이터포털에서 발급)
-
transaction함수의 각 파라미터가 어떤 의미인지 다시 한번 복습하기 - 성공 콜백과 실패 콜백의 차이점 이해하기
반응형
'프론트엔드 > 넥사크로' 카테고리의 다른 글
| [Nexacro] 3주차 이후 - 6일차: 심화 학습 및 다음 단계 (0) | 2025.09.24 |
|---|---|
| [Nexacro] 3주차 이후 - 4~5일차: 실전 CRUD - 상세/등록/수정 화면 개발 (0) | 2025.09.24 |
| [Nexacro] 3주차 이후 - 2~3일차: 실전 CRUD - 목록 화면 개발 (0) | 2025.09.24 |
| [Nexacro] 3주차 이후 - 1일차: 실전 CRUD 프로젝트 - 기획 및 백엔드 준비 (0) | 2025.09.24 |
| [Nexacro] 2주차 - 3일차: 데이터 바인딩(Data Binding) (0) | 2025.09.24 |
| [Nexacro] 2주차 - 1~2일차: 데이터셋(Dataset) 완전 정복 (0) | 2025.09.24 |
| [Nexacro] 1주차 - 4~5일차: "Hello World" 및 이벤트 처리 (0) | 2025.09.24 |
| [Nexacro] 1주차 - 2~3일차: 핵심 용어 및 넥사크로 스튜디오 탐색 (0) | 2025.09.24 |