개요
백엔드 서비스 원칙은 데이터베이스, 파일 저장소, 메시징, 메일, 외부 API 같은 리소스를 애플리케이션에 붙였다 떼는 자원으로 취급하라는 뜻입니다. 코드가 특정 서버나 특정 외부 서비스에 강하게 묶이면 환경 전환과 장애 대응이 어려워집니다.
HandStack은 dbclient, graphclient, repository, logger, function, command, prompter, forwarder, transact 같은 모듈을 통해 백엔드 리소스를 다룹니다. 화면이나 업무 로직이 직접 모든 리소스에 접근하기보다 계약과 모듈을 통해 접근하도록 설계되어 있습니다.
HandStack에서의 백엔드 서비스
HandStack에서 백엔드 서비스는 다음처럼 분류할 수 있습니다.
- 데이터베이스:
dbclient를 통한 SQL 실행 - 그래프 데이터베이스:
graphclient를 통한 Cypher 실행 - 거래 라우팅:
transact를 통한 계약 기반 요청 처리 - 서버 기능:
function을 통한 Node.js, C#, Python 기능 실행 - 명령 실행과 Web 요청:
command를 통한 계약 기반 CLI 및 URL 호출 - LLM 프롬프트 실행:
prompter를 통한 프롬프트 계약 처리 - 세션 유지 프록시:
forwarder를 통한 외부 사이트 요청 대행 - 파일 저장소:
repository와 모듈별 저장소 경로 - 로그:
logger와 파일/콘솔/운영 로그 - 외부 API: 메시징, 메일, 결제, 사내 시스템 등
핵심은 화면이 특정 DB나 API를 직접 알고 있지 않게 만드는 것입니다. 화면은 거래 계약을 호출하고, 계약은 HandStack 모듈의 라우팅 규칙에 따라 실제 서비스를 사용합니다.