피드로 돌아가기
Building a Full-Stack Java App with Quarkus — No React, No Angular, No Problem
Dev.toDev.to
Backend

Quarkus와 Qute 템플릿으로 SPA 프레임워크 없이 풀스택 Java 애플리케이션을 단일 JAR로 개발하는 접근법을 소개한다

Building a Full-Stack Java App with Quarkus — No React, No Angular, No Problem

Vinicius Senger2026년 3월 31일12intermediate

Context

기존 풀스택 개발에서는 React, Angular, Vue 같은 SPA 프레임워크와 별도의 Node.js 빌드 파이프라인, JSON API 계약 관리, 클라이언트 사이드 상태 관리, 수백 메가바이트의 node_modules 의존성이 발생한다. 이러한 복잡성은 내부 도구나 CRUD 중심 애플리케이션에 과도한 부담이 된다.

Technical Solution

  • Qute 템플릿 엔진을 활용하여 서버 사이드 렌더링을 구현하고, Java 객체가 HTML 페이지로 직접 주입되는 구조를 설계했다
  • quarkus-rest-qute 의존성 하나만 추가하고 TemplateInstance를 엔드포인트에서 반환하는 방식으로 REST와 템플릿을 통합했다
  • DynamoDB의 AttributeValue 맵을 Entry 모델로 변환하는 정적 팩토리 메서드 from()을 정의하여 데이터 매핑 로직을 모델 클래스에 포함시켰다
  • 추상 서비스 클래스에서 ScanRequest, PutItemRequest, DeleteItemRequest 빌더 패턴을 캡슐화하여 구체 서비스에서 공통 요청 로직을 재사용했다
  • HTML 폼과 Post-Redirect-Get 패턴만으로 90%의 CRUD 인터랙션을 처리하고, 모달, 토글, 인라인 편집은 바닐라 JavaScript로 구현했다

Impact

복잡한 SPA 빌드 파이프라인(Node, npm, Webpack/Vite)이 단일 Maven 빌드로 대체되며, 별도 프론트엔드 프로젝트 관리와 CORS 설정이 불필요해졌다

Key Takeaway

웹 플랫폼의 기본 기능(HTML 폼, 서버 사이드 렌더링)을 활용하면 SPA 프레임워크 없이도 충분히 동적인 웹 애플리케이션을 구축할 수 있으며, Quarkus의 CDI 기반 템플릿 주입은 타입 안전한 UI 개발을 보장한다


내부 도구나 CRUD 중심 애플리케이션에서 Quarkus Qute 템플릿을 @Inject Template와 REST 엔드포인트 연동 방식으로 적용 시 별도 프론트엔드 빌드 파이프라인 없이 서버 사이드 렌더링 UI를 단일 JAR로 배포할 수 있다

원문 읽기