피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Rust 및 Skia 기반의 HTTP Rendering Service 전환을 통한 환경 독립적 리포팅 체계 구축
ACR is designed as a printer-independent report rendering service, not just a library.
AI 요약
Context
개발 환경, OS, Runtime에 따라 리포트 시스템을 개별적으로 구현해야 했던 파편화된 구조의 한계 직면. 라이브러리 방식의 종속성으로 인해 다국어 환경 및 플랫폼 간 일관된 렌더링 보장이 어려운 상황 분석.
Technical Solution
- Rust 기반 엔진과 Skia 렌더링 라이브러리 채택을 통한 고성능 및 OS 독립적 그래픽 처리 구현
- Library 형태에서 HTTP Interface 기반의 Rendering Service로 아키텍처를 전환하여 애플리케이션 간 결합도 제거
- Template과 Data의 완전한 분리 설계를 통한 데이터 변경 시 렌더링 엔진 수정 없는 유연한 대응 구조 확보
- HTTP 표준 프로토콜 채택을 통한 Node.js, C#, Python, Java 등 Language-independent 호출 환경 제공
- Windows, Linux, macOS 전 플랫폼에서 Daemon 형태로 동작하는 서비스 구조 설계로 배포 및 운영 효율성 증대
실천 포인트
- 플랫폼 종속적인 렌더링 로직을 HTTP 기반의 무상태(Stateless) 서비스로 분리하여 관리할 것 - 고성능 그래픽 처리가 필요한 경우 Rust와 같은 시스템 언어 및 Skia와 같은 크로스 플랫폼 렌더링 엔진 검토 - 입력 데이터와 출력 템플릿을 엄격히 분리하여 인터페이스 단순화 및 유지보수성 향상