2023-04-20-TIL

Today I Learned

대용량 엑셀처리를 위해서 메시지큐를 통해 요청하는 구조

대용량 엑셀 다운로드를 위해 메시지 큐를 사용하여 요청을 처리하는 방법이 있습니다.

메시지 큐는 시스템 간 통신을 위해 사용되는 소프트웨어 패턴으로, 엑셀 다운로드 요청이 큐에 삽입되면 백그라운드에서 처리됩니다. 이를 통해 엑셀 다운로드 작업이 바로 처리되지 않아도 사용자는 다른 작업을 계속 수행할 수 있으며, 다운로드가 완료되면 알림을 받을 수 있습니다.

메시지 큐를 구현하는 방법은 다양하지만, 대표적으로 RabbitMQ, Apache Kafka, AWS SQS 등이 있습니다. 이러한 메시지 큐를 사용하여 엑셀 다운로드 요청을 처리하면, 시스템 성능을 향상시키고, 사용자 경험을 개선할 수 있습니다.

  • https://honinbo-world.tistory.com/97
  • https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_function&wr_id=447553&sca=&sfl=wr_subject%7C%7Cwr_content&stx=%BF%A2%BC%BF&sop=and
  • https://techblog.woowahan.com/2698/
  • https://funprojects.blog/2019/12/01/rabbitmq-and-excel/
  • https://stackoverflow.com/questions/29330916/excel-and-rabbitmq-process-rabbitmq-messages-in-excel

Facade Pattern in Layer

  • https://joanne.tistory.com/167
  • https://velog.io/@lsj8367/Facade-Pattern-%EC%A0%81%EC%9A%A9%EA%B8%B0

Proxy Pattern in Real World

  • https://velog.io/@suhongkim98/JDK-Dynamic-Proxy%EC%99%80-CGLib

@RequestPart로 Multipart Request 하나에 Content-Type 두 개 동시에 보내기

  • https://stackoverflow.com/questions/21329426/spring-mvc-multipart-request-with-json
  • https://minholee93.tistory.com/entry/Spring-Json-with-MultipartFile
  • https://blogs.perficient.com/2020/07/27/requestbody-and-multipart-on-spring-boot/
  • https://www.baeldung.com/sprint-boot-multipart-requests

Optimistic Lock vs Pessimistic Lock

  • https://vladmihalcea.com/optimistic-vs-pessimistic-locking/
  • https://www.baeldung.com/jpa-optimistic-locking
  • https://stackoverflow.com/questions/6541628/jpa-pattern-for-handling-optimisticlockexception
  • https://forum.cuba-platform.com/t/optimistic-lock-exception-correct-handling/11968

Waiting for Bulk Processing UX

대용량 처리를 기다리는 UX는 어떤 방식으로 해결하는게 좋을까? 사용자 경험이 좋은 방향으로 UI를 구성하고 서버에서도 이에따라 적절한 아키텍처를 구성하여 처리하면 될 것이다.

  • https://uxpickle.com/how-long-will-the-busy-spinner-keep-your-user-waiting/
  • https://bootcamp.uxdesign.cc/ux-case-study-bulk-upload-feature-785803089328
  • https://carolinegabriel.com/portfolio/bulk-orders-from-ux-to-ui-integration/
  • https://doc.nuxeo.com/nxdoc/web-ui-bulk-actions/
  • https://brunch.co.kr/@dalgudot/110
  • https://redbrix.co/works/batch-processing-erp-saas/
  • https://bootcamp.uxdesign.cc/ux-case-study-bulk-upload-feature-785803089328