Querydsl로 프로젝트를 하면서 많은 쿼리문을 작성하는데 필요 시 계속 구글링하면서 하기도 귀잖고 해서 일반적인 사용 방법에 대해 정리하려고 한다. ◆기본적인 사용 //객체 조회 val foos = query.selectFrom(foo).fetch() //count 조회 val count = query.selectFrom(foo).fetchCount() //join val foos = query.selectFrom(foo) .leftJoin(food).on(foo.id.eq(food.foo.id) .fetch() //ordering val foos = query.selectFrom(foo) .orderBy(foo.name.asc(), foo.age.desc()).fetch() //update quer..
2개월동안 진행했던 속도 개선 작업에 관하여 간단한 정리를 하려고 한다. 추후 진행할 프로젝트에서 참고될수 있도록 정리해 놓는 목적이 크다. 실질적으로 속도 개선은 소량 데이터(만건이하)에서 약 70%개선, 많은 데이터(5만건 이상)에서 10배 정도 개선이 있지만 만약 제일 처음에 개선한 buik insert 변경은 속도 개선 효과는 결과에 반영하지 않았다. 만약 반영한다면 소량 데이터에서도 5배 속도 개선이 이루어 졌다고 봐도 된다. 개선 작업을 요약하면 아래와 같다. JPA save를 Buik insert로 수정 native query를 QueryDSL로 변경 및 projection 방식 채택 속도 느린 query 속도 개선 전체 Logic 수정하여 DB 접근을 최소화 데이터 불일치 문제 해결 재 배..
아래 내용은 현재 테크업이 읽고 있는 책들이다. 아직은 진행 중인 책들이 대부분이여서 완독할 때까지 이 포스트를 업데이트 할 예정이다. 추천해 주실 책들이 있으시면 댓글로 부탁드립니다. Kotlin Kotlin in Action 제일 처음 코틀린으로 입문하면서 본 책이다. Hands-On Data Structures and Algorithms with Kotlin 데이터 구조와 알고리즘 구현을 코틀린으로 재해석한 책이다. 기존적인 array부터 queue, map 까지 kotlin으로 구현한걸 설명과 함께 다루고 있다. Functional Kotlin Functional 프로그래밍관점으로 kotlin에 대하여 설명한 책이다 Kotlin Standard Library Cookbook 코틀린의 표준라이브러리..
lambda 로 간단한 프로그램을 작성하여 사용하는 경우가 많은데 라이브러이들을 layer로 저장하고 사용하면 여러 lambda 함수에서 공동으로 사용할 수 있어 개발 속도를 높이는데 도움이 된다. 이 글은 인터넷 상에 있는 여러가지 방법들 중 제일 간단하고 쉽게 할 수 있는 방법에 대해 소개 한다. ◆ 라이브러리 다운로드 라이브러리는 Linux 환경에서 다운받고 그 라이브러리를 사용하여 layer를 만드는 것을 추천한다. AWS lambda에서 사용하는 python 버전도 중요하다. 본 글에서는 python 3.8 기준으로 설명할 예정이다. 먼저 라이브러리를 다운받을 폴더를 생성 후 필요한 라이브러리 들을 다운 받는다. #폴더 생성 cd $HOME mkdir -p lib/python cd lib/pyt..
쉽고 편리하게 E-mail를 고객한테 보내려면 Gmail SMTP를 사용하는 방법은 검색하면 많이 나온다. 이번 글은 spring 프로젝트에서 AWS SES를 설정하고 메일을 보내는 방법을 설명 하려고 한다. AWS에서 서비스를 신청하고 도메인을 등록하고 권한을 부여하는 부분에 대한 내용은 생략하고 Spring에서 설정하고 메일을 보내는 방법에 대해 적으려고 한다. ◆Dependency 추가 com.amazonaws aws-java-sdk-ses 1.12.167 ◆Config Class import com.amazonaws.auth.AWSStaticCredentialsProvider import com.amazonaws.auth.BasicAWSCredentials import com.amazonaws.s..
Hibernate L2 Cache는 기본적인 설정으로는 default 영역에 모든 데이터가 저장된다. 이렇게 저장되면 정확히 cache가 동작여부를 알 수 없다. 분산 캐시를 구성하면 더더욱 확인하기 어렵다. 이를 정확히 확인 하기 위해서는 cache를 entity별로 Region를 설정하고 각 Region 의 통계 정보를 이용하면 된다. Region 설정 @Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "Foo") @Cache 이노테이션에 region 값을 넣으면 “Foo” region이 생성된다. 설정된 Region에 저장 @QueryHints(value ={@QueryHint(name = HINT_CACHEABLE, value = "tru..
Kolin에서 Json를 보통 Gson 라이브러리를 사용하여 다룬다. Gson를 사용해도 원만한 처리는 가능하다. Serialization은 Gson에서 지원이 미흡한 NEP문제에 대해 강력하게 제한함으로써 kotlin의 가치관를 그대로 반영한 라이브러리이다. 이글은 kotlin의 serialization에 대하여 설정부터 간단한 사용법을 정리할 예정이다. ◆ Maven 설정 1.6.10 1.3.2 버전 정보를 속성에 명시한다. org.jetbrains.kotlin kotlin-maven-plugin ${kotlin.version} compile compile compile kotlinx-serialization org.jetbrains.kotlin kotlin-maven-serialization ${k..
이글에서 JobRunr에 대하여 간단한 사용법에 대하여 알아 보았다. 이번 글은 JobRunr Pro 버전에서 Service node에 대하여 각기 다른 tag를 설정하는 방법 및 Recurring Job를 설정 시 ProgressBar를 이용하는 방법에 대해 정리한 곳이 없어 정리하려고 한다. ◆Server Tag 기능 보통 production 환경에는 여러개의 node가 존재하고 특정 업무를 수행하는 node도 존재하기 마련이다. Tag 기능은 특정 Job를 특정 node에서만 수행 하도록 하는 기능이다. 이 기능은 pro버전에만 제공한다. JobRunr 설정에 아래 내용을 추가 해야 Tag 기능을 사용 가능하다. @Configuration class JobRunrConfig( private val ..
Comment