JPA Repository 도 DTO Projection 이 가능하다.
궁금증 QueryDSL을 쓰다보니 좋았던 기능 중 하나가, 단순 조회 시 DTO Projection을 사용해서 필요한 컬럼만 조회할 수 있다는 점이었는데요. 이렇게 하면 성능상 유리하고, 영속성 컨텍스트도 필요 없어서 가볍게 조회할 때 매우 좋았습니다. 그런데 생각해보니 JPA Repository에서도 이런 DTO Projection 기능을 제공하...
궁금증 QueryDSL을 쓰다보니 좋았던 기능 중 하나가, 단순 조회 시 DTO Projection을 사용해서 필요한 컬럼만 조회할 수 있다는 점이었는데요. 이렇게 하면 성능상 유리하고, 영속성 컨텍스트도 필요 없어서 가볍게 조회할 때 매우 좋았습니다. 그런데 생각해보니 JPA Repository에서도 이런 DTO Projection 기능을 제공하...
시작하며 최근 회사에서 알림 서비스 재구축 프로젝트를 진행하게 됐습니다. 기존의 알림 시스템은 알림 API 서버가 직접 제3자 알림 서비스 제공 업체의 API를 호출하고 응답을 받아 실시간으로 처리하는 방식이었습니다. 겉으로 보기엔 단순한 구조였지만, 트래픽이 증가할수록 다양한 문제가 나타났습니다. 특히 요청이 집중될 때는 Rate Limit(요...
스레드 관리 스레드(Thread)의 개념 프로세스는 일반적으로 자원을 할당받아 작업을 수행하는 개체다. 이 프로세스 내에서 실제 작업을 수행하는 제어 흐름 단위를 스레드(Thread) 라고 한다. 하나의 프로세스는 여러 개의 스레드를 가질 수 있다. 스레드란? 스레드는 프로세스 내에서 독립적인 실행 흐름으로, 다음과 같은 고유 정보를 가진...
프로세스 관리 프로세스(Process) 작업(Job) vs 프로세스(Process) 작업(Job) / 프로그램(Program) 실행할 프로그램과 데이터가 디스크에 존재하는 상태 아직 실행되지 않은 상태로, 시스템에 실행 요청을 보내기 전 프로세스(Process) 실행을 위해...
오랜만에 글을 작성합니다. 사내에서 여러 spring, kotlin 프로젝트를 monorepo 로 이전하게 되면서 배운 점, 과정을 기록하기 위해 작성합니다. 1. Monorepo를 도입한 이유 1.1 기존 Polyrepo 구조에서의 문제 사내, 그리고 저희 팀은 Spring 프로젝트를 담당하는 개발자가 2~3명뿐이었습니다. 하지만 운영해야 할 ...
배경 회사에서 암호화 솔루션이 변경되면서 기존 컬럼 암호화가 적용된 수십 개 테이블의 데이터를 새로운 암호화 방식으로 마이그레이션해야 했습니다. 이 작업을 수동으로 처리하는 것은 비효율적이었기 때문에 Spring Batch를 활용하여 마이그레이션 배치 작업을 구성했습니다. 처음에는 큰 문제 없이 실행되는 듯했지만, 수만 건 이하의 데이터를 가진 테...