DBCP 설정 값 정하기

Spring/DB, Cache 연동 2024. 5. 1. 18:34

DBCP 를 사용할 때 다양한 설정 값들이 있다.설정 값을 어떻게 정하는지에 대한 간단한 가이드를 포스팅 해보겠다.설명은 HikariCP 옵션으로 진행하겠다. maximumPoolSizePool 이 제공할 수 있는 최대 커넥션 갯수이다. (idle + in-use) maximumPoolSize 설정 값을 정하기 위해서는..한 커넥션당 쿼리 실행 시간, 목표로하는 TPS 가 필요하다. 최대 TPS = 1 커넥션 당 초당 요청 처리 개수 * 동시 커넥션 개수위는 TPS 의 계산식이다.여기서 우리는 동시 커넥션 개수 (maximumPoolSize) 를 구할 것이다. 최대 TPS 는 목표로하는 TPS 이므로 알고 있는 값이다.1 커넥션 당 초당 요청 처리 개수는 1초를 1 커넥션당 쿼리 실행 시간으로 나눈 값이..

@Transactional 과 Test code 고찰 - 개발자들의 생각 모음

Spring/DB, Cache 연동 2024. 4. 22. 22:01

@Transactional 을 Test code 에서 사용할 때, 개발자 간에 논란이 좀 있다.. 개발자들의 생각을 알아보자.. 향로님 테스트 데이터 초기화에 @Transactional 사용하는 것에 대한 생각 https://jojoldu.tistory.com/761 테스트 데이터 초기화에 @Transactional 사용하는 것에 대한 생각 얼마 전에 2개의 핫한 컨텐츠가 공유되었다. 존경하는 재민님의 유튜브 - 테스트에서 @Transactional 을 사용해야 할까? 존경하는 토비님의 페이스북 2개의 컨텐츠에서 테스트 데이터 초기화에 @Transa jojoldu.tistory.com 토비님 테스트가 관리하는 트랜잭션 - 향로 님의 @Transactional 글을 읽고 https://toby.epril...

DBCP (HikariCP)

Spring/DB, Cache 연동 2024. 4. 22. 21:21

오늘 포스팅으로는Database Connection Pool (DBCP) 에 대해 정리해보겠다. 배경Application 과 Database 간의 통신은 TCP 기반으로 통신한다.따라서, 본격적으로 데이터를 주고 받기 이전에 연결을 하는 과정을 거친다. (TCP 연결 지향 특성)-> 3 way-handshaking또한, 데이터를 주고 받은 다음 연결을 끊어주는 과정도 거친다. (TCP 연결 지향 특성)-> 4 way-handshaking 실제 데이터를 주고 받기 전 후로 연결을 맺고 끊는 과정이 시간이 오래 걸리므로Backend API 응답 시간에 영향을 주게 되며이는 처리량에 영향을 주게된다 또한, Database Connection 개수의 제한을 두지 않으면 DB 과부하 상태가 될 수 있다. DBCP..

HttpHandler 생성과 동작

Spring Reactive Stack/Webflux 2024. 3. 15. 00:16

이전 포스팅에서 Netty 서버를 구동하기 위해 .. Spring 은 project reactor 의 Netty, Reactor Netty 를 의존하고 Reactor Netty 의 HttpServer 를 생성하기 위해 HttpServer 에는 HttpServer::handler 메서드가 있는데 Spring 에서는 HttpServer::handler 의 파라미터(함수형 인터페이스)에 사용할 구현체를 ReactorHttpHandlerAdapter 로 만들어 놨다. 그리고.. Spring 의 ReactorHttpHandlerAdapter 를 생성하기 위해서는 HttpHandler 를 주입받아야 하는 것을 확인했다. 이번 포스팅에서는 HttpHandler 의 생성과 동작에 대해 다뤄보겠다. HttpHandler..

Article Thumbnail
WebHandler 와 Spring

Spring Reactive Stack/Webflux 2024. 3. 10. 16:59

Spring 이 WebHandler 의 구현체인 DispatcherHandler(front handler) 를 등록하는 과정을 알아보자. spring boot autoconfigure 에서 자동 구성(Auto Configuration) 기능에 의해 동작하는 HttpHandlerAutoConfiguration 이다. 자동 구성 조건에 따라 HttpHandler 를 빈으로 등록하고 있는 것을 알 수 있다. HttpHandlerAutoConfiguration 에서 HttpHandler 를 생성할 때 호출하는 WebHttpHandlerBuilder::applicationContext 메서드 코드의 일부이다. Spring container 에서 WEB_HANDLER_BEAN_NAME("webHandler") 의 ..

Article Thumbnail
WebHandler 와 Netty 의 관계

Spring Reactive Stack/Webflux 2024. 3. 9. 00:21

WebHandler 에 대해 알아보겠다. WebHandler 는 .. Spring 5 부터 제공하는 web request 를 처리하는데 사용할 수 있는 인터페이스이다. 보통 Spring Reactive stack 에서 사용된다. Project Reactor 의 Reactor 에 의존한다. (Mono) 파라미터로 ServerWebExchange 는.. ServerHttpRequest, ServerHttpResponse 등을 얻을 수 있는 메서드를 제공하는 인터페이스이다. 즉, Servlet stack 의 Servlet, HttpServletRequest, HttpServletResponse 등의 역할과 유사하다고 볼 수 있다.. Spring Webflux 에서는 front handler 로.. WebHan..

Article Thumbnail