계약 중심 거래
거래의 사전적 의미는 '주고 받는 것 또는 사고 파는 것'이지만 처리 방식 또는 업무에 따라 차이가 있습니다. 예를 들어 거래를 영어 단어로 Transaction로 표현하며, 일반적으로 돈이나 물건을 주고 받는 것을 의미하지만, IT 업계의 데이터베이스 분야에서는 데이터의 상태를 변화시키기 위해 수행하는 논리적인 작업 단위를 의미합니다.
HandStack은 거래의 의미를 출발지와 도착지간의 시스템 간 거래에 사용되는 헤더(설명)과 바디(정보)로 구성된 메시지 구조를 주고 받는 작업 단위를 정의합니다. 이에 대해 화면 및 업무 개발자나 엔지니어가 소통하기 위해 다음과 같이 표현할 수 있습니다.
- 클라이언트에서 업무 서버간에 거래를 합니다.
- 업무 서버에서 어플리케이션 서버간에 거래를 합니다.
- 어플리케이션 서버에서 데이터베이스 서버간에 거래를 합니다.
- 어플리케이션 서버에서 외부 서비스간에 거래를 합니다.
다양한 시스템 간 거래를 위해 클라이언트와 서버간에는 반드시 어떻게 요청과 응답이 이뤄질 것인지 JSON/XML 포맷으로 되어진 계약을 정의 해야 합니다.
각 시스템간의 요청/응답 거래가 정상적으로 이뤄졌는지 아닌지에 따라 어느 구간에서 거래 에 이슈가 있는지 일관된 방식으로 처리를 하기 때문에 개발자와 엔지니어는 메시지 구조에 대해 알아두면 좋습니다.
transact 모듈 거래 전문 프로토콜
HandStack 기반의 모든 거래 메시지는 transact 모듈에 있는 하나의 Endpoint에서 처리합니다. 그래서 올바른 요청과 정확한 응답에 대한 처리를 검증하기 위한 계약 정보를 JSON 파일로 정의합니다.
이러한 방식은 API를 더욱 빠르고 유연하게 개발자 친화적으로 거래 처리를 위한 기능을 만들기 위해 설계되었습니다. 개발자가 단일 API 호출로 다양한 데이터 소스에서 데이터를 CRUD 처리를 구성하는 기능을 구현 할 수 있도록 지원하고 엔지니어에게 기존 운영에 영향을 미치지 않고 API를 추가하거나 폐기할 수 있는 유연성을 부여합니다.
개발자는 업무 기능을 SQL/Batch/OpenAPI/C#/Node.js 등등 선호하는 방식으로 API를 빌드할 수 있으며, transact 모듈 거래 전문 프로토콜은 이러한 API가 예측 가능한 방식으로 작동하도록 보장합니다. 이는 효과적인 API 관리를 위한 핵심 사항입니다.
transact 모듈은 거래를 할 때 최소한의 네트워크 왕복으로 클라이언트에서 원하는 데이터를 응답 받을 수 있도록 하는 업무에 목적을 두고 있습니다. 이 방식은 클라이언트/서버 개발 담당자의 협업 방식에도 영향을 줍니다. (기본적으로 화면 개발자는 서버 개발자가 작성한 API의 요청과 응답 형식에 의존하게 됩니다.)