최근에 작성된 글 [SQL] Window 함수를 사용하면 Group By 가 못하는 것을 할 수 있다 배경회사에서 어떤 업무를 처리하던 도중 아래와 같은 요구사항을 만족하는 SQL 을 짜야했다. 특정 일에 발생한 transaction 중 가장 최신 transaction 데이터를 뽑아라 이 tx 데이터는 매일마다 대량으로 발생하는 데이터로 append only 테이블이다. userId 가 key 로 잡혀있고 n 개의 tx 데이터가 있는데 날짜 순으로 정렬된 최신의 데이터를 뽑기 위해 distinct 가 필요했다. 나는 자연스럽게 group by 쿼리를 짰는데 생각해보니 당연히 group by 로는 해당 요구사항을 만족할 수 없었다. 그러다 데이터 엔지니어링 팀에게 도움을 요청하였고 window 함수를 사용하면 내가 원하는 상황을 100% 만족시킬 수 있었고 이에 대한 내용을 공유해보려 한다. Group B.. 2025.02.09 100만개 1000만개의 더미데이터를 생성하는 가장 쉬운 방법 TL;DR 이번 글의 핵심을 요약하면 다음과 같다 가장 효율적인 더미데이터 생성 방법temp table 을 이용하여 insert Query 날리기temp table 생성generate_series 와 random 함수를 이용하여 insertdocker-compose 로 실행docker-compose 이용하기application runner 이용하기등등 가장 효율적인 더미데이터 생성 방법 DB 나 Application 의 처리량 혹은 특정 대량 데이터의 상황을 테스트하기 위해 더미 데이터가 필요하다. excel, mockaroo, bulk insert 등등 다양한 방법을 이용해서 대량의 데이터가 있는 실습 환경을 구성해봤는데 케이스에 따라 다르겠지만 이 방법이 가장 효율적이었다. 아래의 핵심 컨셉만 이해한.. 2024.10.20 Multi Datasource Application 세팅하기 (with Spring Boot 3.3 + JPA + kotlin) 목차Multi DataSource Application 환경실습 환경 구성Spring Application 구성 - 1. DataSource 구성Spring Application 구성 - 2. EntityMangager TxManager 구성 1. Multi DataSource Application 환경 Spring Application 을 개발하다 보면 분명 하나의 applcation 에서 두개 이상의 DB 를 바라봐야 하는 경우가 존재한다. 이번 실습에서는 하나의 Spring Container 에서 두개 이상의 DataSource 를 설정하는 방법에 대해서 알아볼 예정이다. 2. 실습 환경 구성kotlin (jdk 21)Spring Boot 3.3.4Spring Data JpaMySQL & Post.. 2024.09.30 AWS SDK 로 DLQ 에 쌓인 메시지 처리하는 2가지 방법 관련 글AWS SQS + Spring Boot 3 + kotlin 인프라 구축하기AWS SQS Consumer 에러를 DLQ 로 처리하기message converter 를 이용한 sqs message serializerAWS SDK 로 DLQ 에 쌓인 메시지 처리하기 앞선 시간에 우리는 SQS 를 생성하고 Spring Boot 3 로 producer/consumer 를 구현 하여 DLQ 를 이용하여 에러를 처리 하였다. DLQ 에 쌓인 메시지들을 처리하는 방법은 다양하다. 직접 console 을 이용할 수도 있고 programmatically 하게 처리할 수도 있다. 이번 시간에는 web console UI 가 아닌 programmatically 한 방법으로 메시지를 처리하는 2가지 방법에 대해서 알아볼.. 2024.08.04