Spring MVC 3

[Spring] Spring WebFlux 개요

Spring WebFlux 탄생 배경리액티브 웹 애플리케이션 구현을 위해 Spring 5.0부터 지원하는 리액티브 웹 프래임워크기술의 발달에 따른 대량의 요청 트래픽을 Spring MVC 방식이 처리하지 못하는 상황이 잦아짐에 따라 적은 수의 쓰레드로 대량의 요청을 안정적으로 처리할 수 있는 비동기 Non-Blocking I/O 방식의 Spring WebFlux가 탄생 Spring Reactive Stack주요 구성 요소설명Netty, Servlet 3.1+ ContainersNetty: 네트워크 애플리케이션 프레임워크로 고성능 non-blocking 서버를 구현하는데 사용Servlet 3.1+ Containers: Servlet API 3.1 이상을 지원하는 컨테이너로 non-blocking I/O를 ..

[SpringBoot] parallel stream 버그 해결

개요Hibernate의 CurrentTenantIdentifierResolver와 AbstractDataSourceBasedMultiTenantConnectionProviderImpl를 이용해 멀티 테넌시를 적용한 서비스에서, 시간이 비교적 오래 걸리는 import 기능을 제공합니다.이는 RDBMS 특성상 테이블들이 정규화되어 있어, 여러 테이블에 데이터를 넣어줘야 하고 넣을 때 외래키 제한에 걸리지 않도록 순서를 맞춰야 하기 때문입니다.저희 팀은 처리 시간을 단축시키기 위해 연관되어 있지 않은 테이블끼리 묶어서 parallel stream을 적용해 병렬 처리를 시도했으나, 간헐적으로 ThreadLocal에서 다른 테넌트, 즉 다른 스키마로 요청을 보내는 문제가 발생하여 foreign key constr..

[DEV] 기록 2024.07.07

Spring MVC 구조 정리

복습 기존에 작성한 Front Controller 패턴 게시물을 보고 오면 이해하는데 도움이 될 것입니다! (https://jaimemin.tistory.com/1817) Spring MVC 구조 Front Controller 패턴과 동일한 구조 Front Controller 역할을 Spring MVC 구조에서는 Dispatcher Servlet이 맡음 전체적인 플로우는 아래와 같음 HTTP 요청 Handler 조회 Handler를 처리할 수 있는 HandlerAdapter 조회 Handler 어댑터에서 Handler 호출 ModelAndView 반환 ViewResolver 호출 (JSP의 경우 InternalResourceViewResolver, 타임리프의 경우 ThymeleafViewResolver)..

Spring 2021.06.09