Spring
-
Spring MVC Stack - Tomcat Thread Pool 성능 테스트Spring 2023. 6. 9. 16:20
Spring MVC Stack을 사용하는 경우의 기본 WAS 인 TOMCAT 9의 설정 변경을 통해 WAS의 성능 검증 및 EKS POD Spec에 따른 적절한 설정 값을 찾기 위해 진행한 테스트 입니다. Spring Embedded Tomcat 9 - Default Config Info's max-thread: 생성할 수 있는 thread의 총 개수.default 200 min-spare: 항상 활성화 되어있는(idle) thread의 개수. default 10 max-connections : 수립가능한 connection의 총 개수. default 8192 accept-count: 작업큐의 사이즈(max-connections 이후에 추가로 받을 연결 수). default 100 connection-t..
-
Spring MVC Stack - WebFlux/WebClient Logging with Reactor Context + MDCSpring 2021. 5. 21. 15:42
Reactor Context Reactor Context는 스트림을 따라 전달되는 인터페이스이며, Map과 유사하게 key/value store 구조이다. Runtime 단계에서 필요한 Context 정보에 엑세스 할 수 있도록 하는 것이다. 즉, 스트림에 Context를 제공할 수 있는 유일한 방법일 뿐만 아니라, 조립/구독 단계를 포함해 전체 런타임 동안 사용 할 수 있는 데이터를 동적으로 제공 전체 생명 주기 중에서 각 Subscriber에게 별도의 컨텍스트가 제공될 수 있는 유일한 단계는 '구독단계'이다 Reactor With MDC MDC 는 JAVA 로깅 프레임워크(logback, log4j 등) 에서 제공하는 로그 관련 라이브러리에서 여러 메타 정보를 넣을 수 있고 공유되는 Map으로 key..
-
Spring MVC Stack - Logging With AOP + MDCSpring 2021. 4. 14. 14:57
Spring Application 개발 간에 더 유의미한 로깅을 남기기 위한 AOP + MDC 를 활용 방법에 대하여 알려 드리겠습니다:D Spring MVC 를 사용하여 Application 개발을 진행하는 경우, Request/Response를 로깅하기 위해서 AOP 를 통해 공통된 Tracing ID를 설정하고 로그를 남기고 하나의 Context에 대하여 추적이 가능하도록 개발하며, 이를 통해 더 유의미한 로그를 남기고 있습니다. 그리고 Request/Response에 대한 로깅 뿐만 아니라 해당 Context 내의 로직 수행 시에 info, error 로그도 추적을 편하게 하기 위하여 Tracing ID를 로그에 같이 찍는 방법이 있습니다. 이를 조금더 편하게 하기 위하여, JAVA 로깅 프레임워..
-
Spring MVC Controller - Header(@RequestHeader) Validation 처리Spring 2020. 5. 22. 17:18
Spring MVC Controller에서 헤더 영역의 필드 값을 체크하기 위한 Validation 방법에 대하여 간단히 알려 드리려고 합니다. Controller 내에 다음과 같이 설정 해 주시면, 간단하게 Validation 처리가 가능합니다. Common 컨트롤러상단에 @Validated 추가필요. ( import org.springframework.validation.annotation.Validated ) import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RestController; @RestController @Validated public class S..
-
Spring/Java - ModelMapper 사용시 Source Object null 케이스 처리 방법Spring 2020. 2. 13. 16:47
ModelMapper는 Entity DTO 간 객체 전환 및 매핑 반복작업 작업을 줄여주는 라이브러리다. 이를 간편하게 Spring에서 사용하려면 다음과 같이 ModelMapper를 bean으로 등록하고 필요한 부분에서 DI받아 사용하면 된다. # Bean 등록 - MatchingStrategies.STRICT : source와 target의 같은 타입+타입명 일때 변환 처리하는 옵션 ( 디테일 옵션 정보 : http://modelmapper.org/user-manual/configuration/#matching-strategies ) @Configuration public class ModelMapperConfig { @Bean public ModelMapper modelMapper() { ModelM..