"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Java 및 Spring Boot를 사용하여 PWA를 구축하는 방법: 오프라인 기능에 대한 모범 사례?

Java 및 Spring Boot를 사용하여 PWA를 구축하는 방법: 오프라인 기능에 대한 모범 사례?

2024-08-24에 게시됨
검색:125

How to Build a PWA with Java and Spring Boot: Best Practices for Offline Functionality?

저는 현재 핵심 요구 사항 중 하나가 사용자의 장치가 일시적으로 오프라인 상태인 경우에도 특정 기능(예: 출근)에 액세스할 수 있도록 하는 노무 관리 프로젝트를 진행하고 있습니다. 드문 경우지만 필요에 따라 추가 오프라인 기능을 활성화하여 애플리케이션을 미래에도 사용할 수 있도록 하고 싶습니다.

사용 사례:

  • 백엔드: Spring Boot를 사용하는 Java
  • 프런트엔드: HTMX(또는 잠재적으로 Vaadin Flow)가 포함된 Thymeleaf
  • 주요 요구 사항: POST 요청을 캐시하고 오프라인일 때 캐시된 페이지로 이동하는 기능.

내가 고려 중인 기술:

  1. Thymeleaf와 HTMX를 사용한 Spring Boot: 제가 선호하는 스택입니다. 저는 TDD를 사용하여 구축하는 것을 좋아하며 이 조합은 제 경험과 잘 맞습니다. 저는 이미 service-worker.js를 사용하여 POST 요청을 캐시하고 다시 보내는 작은 데모 프로젝트를 구축했습니다. 앞으로도 오프라인 기능을 계속 추가하기 위한 최선의 선택인지는 잘 모르겠습니다.

  2. Vaadin Flow: 저는 Vaadin Flow가 전적으로 Java로 비즈니스 애플리케이션을 구축하는 데 중점을 두고 있다는 사실에 흥미를 느꼈습니다. 그러나 뷰를 동적으로 업데이트하기 때문에 오프라인 기능을 지원할 수 있을지 걱정됩니다. 내가 이해한 바에 따르면 오프라인 보기를 위해 전체 페이지를 캐시하는 것은 불가능합니다. 나는 Hilla를 알고 있지만 Typescript에서 모든 뷰를 생성해야 할 것이며 내 생각에는 Vaadin을 사용하는 목적을 무너뜨리는 것 같습니다.

  3. PWA Starter: PWA Starter를 살펴봤는데 Angular나 React와 같은 언어로 단일 페이지 앱(SPA)을 만드는 데 중점을 두는 것 같아서 내 취향에 맞지 않습니다. Spring Boot 생태계 내에 머물고 있습니다.

  4. Quarkus 또는 JHipster: Quarkus와 JHipster도 고려했지만 JHipster는 일반적으로 프런트엔드에 Angular 또는 Vue를 사용하는 것 같은데 그다지 관심이 없는 것 같습니다. 찾고 있습니다. Java 풀 스택 접근 방식에 더 가까운 것입니다. Quarkus는 마이크로서비스에 초점을 맞춘 것 같나요?

질문:

  1. Java 및 Spring Boot 애플리케이션 내에서 PWA 기능, 특히 오프라인 기능을 통합하기 위한 모범 사례 또는 프레임워크/도구는 무엇입니까? 예를 들어 서비스 작업자에게 도움이 되는 도구가 있을까요?
  2. 오프라인 캐싱과 함께 Vaadin Flow를 효과적으로 사용할 수 있는 방법이 있습니까, 아니면 서비스 워커에 대한 더 나은 제어를 위해 Thymeleaf 및 HTMX를 사용해야 합니까?
  3. Spring Boot 및 Thymeleaf 설정에서 서비스 워커를 구현하기 위해 권장하는 특정 리소스, 라이브러리 또는 패턴이 있습니까?

Java 생태계에 머무르고 중요한 새로운 프런트엔드 기술을 추가하지 않는 것을 선호한다는 점을 고려하여 이에 접근하는 방법에 대한 조언을 구하고 있습니다. 제가 고려하지 않은 질문이 많이 있을 거라 확신합니다. 어떤 통찰력이나 추천이라도 주시면 감사하겠습니다!

내가 시도한 것들에 대한 리뷰

  • 직접 서비스 워커를 작성하여 데모를 만들었습니다. 괜찮았지만 어디까지 갈 수 있을지 모르겠습니다.
  • Vadin Flow를 사용해 보았지만 모든 오프라인 기능에는 Typescript와 Hilla가 필요하다는 것을 깨달았습니다.
  • FlutterFlow를 살펴보기 시작했지만 사용자 기기가 오프라인 상태인 극단적인 경우를 고려하여 이는 큰 디자인 결정인 것 같습니다.
릴리스 선언문 이 기사는 https://dev.to/livenathan/how-to-build-a-pwa-with-java-and-spring-boot-best-practices-for-offline-functionity-4l3k?1에서 재현됩니다. 침해, 삭제를 원하시면 [email protected]으로 연락주시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3