본문 바로가기
728x90
반응형
SMALL

IT281

CompletableFuture 를 이용한 Mybatis 쿼리 여러개 동시 수행 {dd} 별로 로그성 테이블이 있고 6월 한달동안의 데이터를 조회해서 보고서용 데이터를 합계 하려고 할 때 1. 일배치를 통해 매일 요약본을 만들고 해당 데이터를 이용하여 하나의 테이블에 insert 한 후 한번에 쿼리할수도 있고 2. 배치수행을 하지 않고 필요할 때만 조회해서 조합할수도 있다. 2번으로 진행해야 할 경우 {dd} 테이블의 데이터를 6월 1일부터 현재날짜까지 반복해서 조회해야 하고 조회한 결과를 collection 에 담아 이후 작업을 진행해야 한다. {dd} 테이블 조회 쿼리 수행이 느린 경우 그리고 이와 같은 상황 (많은 테이블에 select 해야 하는 경우)에서는 각 쿼리 수행을 async 하게 수행하고 결과를 merge 하면 된다. Future, ListenableFuture, C.. 2022. 6. 24.
Elasticsearch Mappings - Nested type Elasticsearch는 기본적으로 동적매핑을 지원하기 때문에 index 에 doc를 추가하면 자동으로 매핑이 생성된다. 하지만 보다 더 디테일하게 작업하기 위해서는 미리 매핑 정보를 설정해 두는 것이 좋다. 개발/테스트를 하다보면 mapping 정보를 추가/수정/삭제 해 보면서 문제를 해결하는 경우가 많다. mapping 정보는 한번 추가하면 수정이 불가능하기 때문에 (다른 index를 만들고 기존 index data를 다시 insert 하고 index name 을 변경하는 방법으로는 가능) 초기 설계가 중요하다. mapping 확인 GET {index_name}/_mapping mapping 정의 PUT {index_name} { "mappings": { "properties": { "logTime.. 2022. 6. 23.
Error querying database. Cause: java.lang.IndexOutOfBoundsException Mybatis + Spring 의 Mapper 이용 시 아래와 같은 오류를 만난다면 ### Cause: java.lang.IndexOutOfBoundsException: Index 18 out of bounds for length 18 at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:78) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440) at com.sun.proxy.$Proxy92.selectList(Unknown Source) .. 2022. 6. 15.
Spring Reactive Programming 먼저 읽어보면 좋은 글 https://kimyhcj.tistory.com/343 Spring WebFlux Spring5에 도입된 WebFlux Spring MVC 는 Java EE의 Servlet Spec에 기반하여 만들어 졌고 본질적으로 Blocking + 동기방식입니다. Spring Framework 3.x부터 비동기 방식을 지원하고 있지만 S.. kimyhcj.tistory.com 함께 읽어보면 좋은 글 https://kimyhcj.tistory.com/346 Microservice Architecture Microservice Architecture Maven module 개발 방식을 시스템 아키텩처에 대한 시선으로 설명하면 microservice architecture 이며 이에 대한 이해도를.. 2022. 5. 4.
728x90
반응형
LIST