1. 글을 작성하게 된 계기 알고 있던 몇 가지 페이징 성능 개선 방법을 정리하기 위해 작성한 글입니다. 커서 페이징 비동기 페이징 집계 테이블 활용 2. 커서 페이징 커서 페이징은 인덱스를 통해 데이터를 빠르게 조회하는 페이징 기법입니다. 너무 카운트 쿼리가 필요하지 않으며, 데이터베이스 인덱스만으로 전/후 데이터를 ...
페이징 성능 개선하기
파일 복사
1. 글을 작성하게 된 계기 로컬에 존재하는 파일을 컨테이너 혹은 AWS 내부로 복사할 일이 있었습니다. 이 과정에서 학습한 내용을 정리하기 위해 글을 작성하게 되었습니다. 2. 파일 복사 EC2 인스턴스에 띄워진 도커 컨테이너에서 로컬 PC로 파일을 이동하는 방법에 대해 살펴보겠습니다. 도커 컨테이너 -> EC2 내부로 파일...
S3 파일 검색/동기화
1. 글을 작성하게 된 계기 외부 업체가 S3에 파일을 업로드하면 이를 검사해야 할 일이 있었습니다. 이 과정에서 S3에 존재하는 파일을 어떻게 조회/내려받는지에 대해 간단한 명령어를 학습했고, 이를 정리하기 위해 글을 작성하게 되었습니다. 2. 조회 이는 아래 명령어로 조회할 수 있습니다. $ aws s3 ls ${BUCKET_PAT...
리버스 프록시를 세팅하며 고려한 점
1. 글을 작성하게 된 계기 회사에서 리버스 프록시를 세팅할 일이 있었는데, Nginx를 사용하게 되었습니다. 이 과정에서 어떤 것을 고려했는지, 새롭게 알게 된 내용은 무엇인지를 기록하고 싶어 글을 작성하게 되었습니다. 리버스 프록시를 세팅하게 된 계기는 해당 글을 참조해주세요. 2. Nginx 설정과 고려한 점 Nginx를 세...
인프라 아키텍처 개선 후기
1. 글을 작성하게 된 계기 입사 한 달 차에, 회사에서 인프라 아키텍처를 전면 개편해야 할 일이 있었습니다. 적응도 하기 전, 인프라 세팅을 혼자 맡아 진행하게 됐는데, 이 과정에서 어떤 문제가 있었고, 이를 어떻게 해결하려고 했는지에 대해 생각을 정리하기 위해 글을 작성하게 되었습니다. 개편 계기 문제 상황 해결책 역 제안 결...
JPA에서 insertable=false, updatable=false를 하면 반드시 값이 저장되지 않을까?
글을 작성하게 된 계기 JPA에서 insertable=false, updatable=false 설정 중, 알게 된 내용을 정리하기 위해 글을 작성하게 되었습니다. 1. 글을 작성하게 된 계기 회사에서 복합 키를 사용해 데이터를 저장할 일이 있었습니다. 이 과정에서 엔티티 간 연관관계를 잘못 맺어 제약 조건에 관한 오류가 발생했는데요, 똑...
JPA 프록시 컬렉션
JPA 프록시에 대해 학습하며 작성한 글입니다. 학습 과정에서 작성되었기 때문에 잘못된 내용이 있을 수 있으며, 이에 대한 지적이나 피드백은 언제든 환영입니다. 1. 글을 작성하게 된 계기 회사에서 컬렉션을 포함한 엔티티를 업데이트할 일이 있었는데, 아래와 같은 오류가 발생했습니다. 영속성과 프록시에 대한 이해가 부족했기 때문에 발생한 문...
Rest-Assured ObjectMapper
1. 글을 작성하게 된 계기 RestAssured를 사용하며 직렬화 및 출력 양식을 어떻게 설정하는지 알고 싶어졌습니다. 이 과정에서 내부 구현을 들여다 볼 일이 생겼고, 이를 정리해두고 싶어 해당 글을 작성하게 되었습니다. 2. Rest-Assured ObjectMapper Rest-Assured 라이브러리를 통해 받은 응답을 객체로...
IntelliJ Connection Read-Only 설정하기
글을 작성하게 된 계기 회사에서 운영 데이터베이스에 쿼리를 날려야 할 상황이 있었습니다. 데이터가 변경되면 안 되기 때문에 조금 불안했는데, 설정 하나로 문제를 해결할 수 있다는 것을 알게 되었고, 이를 정리하기 위해 글을 작성하게 되었습니다. 1. 설정 방법은 간단한데, 데이터베이스의 Properties의 Options를 클릭 후, ...
Spring ThreadPool
스프링의 쓰레드 풀에 대해 학습하며 작성된 글입니다. 학습 과정에서 작성된 글이기 때문에 잘못된 내용이 있을 수 있으며, 이에 대한 지적이나 피드백은 언제든 환영입니다. 1. 스프링과 쓰레드 풀 학습 과정에서 스프링 쓰레드 풀이 application.yml에 설정한 값 대로 동작할까?, 비동기 처리를 위한 쓰레드 풀은 어떻게 관리 될까?와...