본문으로 건너뛰기

CRUD 거래 연결과 검증

주제 목차 · 이전: 데이터 맵과 전문

이 문서의 결과: BOD010/BOD011/BOD012 거래 계약을 작성해 화면-거래-SQL 전체 흐름을 연결하고 검증한다.

시작 조건

BOD011.json: 등록 거래

{
"ApplicationID": "HDS",
"ProjectID": "BOD",
"TransactionID": "BOD011",
"Services": [
{
"ServiceID": "ID01",
"Authorize": false,
"ReturnType": "Json",
"CommandType": "D",
"TransactionScope": false,
"Inputs": [
{ "ModelID": "Dynamic", "Fields": [], "Type": "Row" }
],
"Outputs": []
}
]
}

BOD012.json: 조회·수정·삭제 거래

{
"ApplicationID": "HDS",
"ProjectID": "BOD",
"TransactionID": "BOD012",
"Services": [
{
"ServiceID": "GD01",
"Authorize": false,
"ReturnType": "Json",
"CommandType": "D",
"TransactionScope": false,
"Inputs": [{ "ModelID": "Dynamic", "Fields": [], "Type": "Row" }],
"Outputs": [{ "ModelID": "Dynamic", "Fields": [], "Type": "Form" }]
},
{
"ServiceID": "UD01",
"Authorize": false,
"ReturnType": "Json",
"CommandType": "D",
"TransactionScope": false,
"Inputs": [{ "ModelID": "Dynamic", "Fields": [], "Type": "Row" }],
"Outputs": []
},
{
"ServiceID": "DD01",
"Authorize": false,
"ReturnType": "Json",
"CommandType": "D",
"TransactionScope": false,
"Inputs": [{ "ModelID": "Dynamic", "Fields": [], "Type": "Row" }],
"Outputs": []
}
]
}

전체 흐름 검증하기

세 화면과 계약이 모두 준비되면 다음 순서로 전체 흐름을 확인합니다.

  1. BOD010.html을 열어 목록이 표시되는지 확인합니다(빈 목록이어도 오류가 없어야 합니다).
  2. BOD010에서 등록 버튼으로 BOD011 팝업을 열고 게시글을 저장합니다.
  3. 팝업이 닫히고 BOD010 목록이 자동으로 갱신되어 새 글이 보이는지 확인합니다.
  4. 목록에서 상세 버튼으로 BOD012를 열어 조회·수정·삭제가 모두 정상 동작하는지 확인합니다.

데이터 맵 불일치 재현하기

일부러 화면의 syn-datafield="Board"syn-datafield="BoardList"로 바꾸고 다시 조회해 봅니다. 거래는 성공(네트워크 탭에서 200, 응답 본문에 데이터 있음)하지만 그리드는 비어 있는 것을 확인할 수 있습니다. 이름을 원래대로 되돌리면 다시 정상 동작합니다. 이 재현 경험이 10. 테스트와 디버깅에서 실제 장애를 진단할 때 가장 먼저 떠올려야 할 패턴입니다.

완료 조건 확인

08. transact 거래 계약의 완료 조건을 확인한 뒤 09. 확장 모듈로 이동합니다.