전체글623 JPA exists 쿼리 성능 개선 Spring Data Jpa를 사용하다보면 해당 조건의 데이터가 존재하는지 확인 하기 위해 exists 쿼리가 필요할때가 많습니다. 간단한 쿼리의 경우엔 아래와 같이 메소드로 쿼리를 만들어서 사용하는데요. boolean existsByName(String name); 조금이라도 복잡하게 되면 메소드명으로만 쿼리를 표현하기는 어렵습니다. 조건문이 3개 이상이거나, 필드명이 너무 길거나 조건문 자체가 복잡하는 등등 그래서 이런 경우엔 보통 @Query 를 사용하는데요. 다만 이럴 경우 JPQL에서 select의 exists 를 지원하지 않습니다. (select exists 문법) 단, where의 exists는 지원합니다. 그래서 exists 를 우회하기 위해 아래와 같이 count 쿼리를 사용합니다. @Q.. 2020. 8. 6. JPA에서 Reader DB 사용하기 (feat. AWS Aurora) 이전 시간 에 AWS Aurora 환경에서 Spring Batch ItemReader가 Reader DB를 사용 하는 것에 대해서 소개 드렸는데요. 이번엔 일반적인 JPA 기반의 웹 애플리케이션에서 Reader DB는 어떻게 사용할지에 대해서 소개드리겠습니다. AWS Aurora 기반의 환경이라고 하면 아래와 같은 환경을 이야기 합니다.일반적으로 DB의 확장이라고 하면 Write 요청은 Master로만 발생시키고, 나머지 Replica 되고 있는 DB들은 조회용 (ReaderDB) 으로 사용하는 구조인데요. 그렇다면 조회 요청에 한해서 어떻게 ReaderDB로 보낼지, JPA에서 문제는 없는지 알아보겠습니다. 1. 일반적인 사용법 이미 아시겠지만, @Transactional(readOnly=true) 가.. 2020. 8. 4. Jenkins 버전 업데이트하기 Jenkins 버전업을 할 수 있는 2가지 방법을 소개 드립니다. 1. yum 으로 install한 경우 만약 기존 Jenkins 설치를 yum install로 진행하셨다면 편하게 yum update로 진행하시면 됩니다. yum install로 설치하는 방법은 이전 포스팅에 있습니다. 먼저 기존에 작동 중이던 Jenkins를 종료합니다. sudo service jenkins stop 그리고 아래 명령어로 바로 업데이트를 진행합니다. sudo yum update jenkins -y yum install, yum update는 모두 LTS 버전 기준으로만 작동합니다. 다만, public key가 없다는 에러 메세지가 나올텐데요. 이때는 현재 업데이트 버전의 Key가 없기 때문입니다. 아래 명령어로 현재 버전.. 2020. 7. 28. AWS EC2의 Timezone KST로 변경하기 (Amazon Linux 1) AWS의 Amazon Linux 1을 사용할 경우 Timezone을 변경하고, 잘 적용되다가 인스턴스를 재시작하면 다시 UTC로 롤백되는 경우가 종종 있는데요. 이는 한가지 설정이 누락되어서 그렇습니다. 먼저 기존의 다른 포스팅처럼 아래 명령어를 차례로 입력합니다. root 계정으로 변경한 뒤, 진행합니다. root 계정으로 변경은 sudo su - root 명령어로 하시면 됩니다. sudo rm /etc/localtime sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime 이렇게 변경 후 date를 입력해보면 정상적으로 KST로 변경된 것을 볼 수 있는데요. 그리고 /etc/sysconfig/clock 파일을 열어 ZONE 값을 Asia/Seoul 으로.. 2020. 7. 26. Amazon Lightsail 시작해보기 웹 서비스를 구성하는 모든 요소들이 항상 고사양의 서버를 필요로 하진 않습니다. 이를 테면 관리자 어드민, Jenkins와 같은 설치형 CI/CD, Jira/Conflunce, 배치 애플리케이션 서버 등 트래픽에 영향을 안받지만 꼭 필요한 서비스들입니다. 최근엔 많은 서비스들이 클라우드 버전도 함께 지원하곤 합니다. Teamcity의 클라우드 버전, Jira/Conflunce의 클라우드 버전등이 있습니다. 이럴 경우 고사양의 EC2가 필요로 하지 않으며, 전문가 수준의 AWS 사용 방법도 필요로 하진 않습니다. Lightsail은 이렇게 작은 비용으로 시작할 수 있는 가상서버(VPS) 서비스입니다. VPS란? 하나의 물리 서버를 여러 개의 가상 서버로 쪼개어 사용하는 것을 의미합니다. 그렇게 쪼개어진 가.. 2020. 7. 24. 블로그 광고 200불 후기 구글 광고 정책 변경이 있었는지? 6월 1일부터 CPC (광고 클릭단가) 가 많이 올라서 블로그 월 광고 수익이 약 200불이 되었다.7월도 지금 추세면 그 정도 나올것 같다. 개인 AWS 계정으로 나가는 여러가지 비용들 (RDS, EC2, 도메인 등) 은 상쇄하고도 남게 되었다. 그래서 더 재밌는 시도들을 할 수 있게 되었다. 회사 놀이터 계정으로 여러가지 테스트는 하지만, 사이드 프로젝트 서비스를 회사 계정으론 할 수 없으니 많은 Java 개발자들이 이용하는 Baeldung 과 같은 컨텐츠 서비스가 되면 좋겠다는 생각을 한 적이 있다. 근데 내 블로그엔 나만 글 쓰고 싶단 생각에 포기. Baeldung은 원고료 기반으로 여러 사람들이 기고 하는 형식 그래서 요즘은 Vlad Mihalcea와 같은 사이.. 2020. 7. 19. 이전 1 ··· 42 43 44 45 46 47 48 ··· 104 다음