글을 작성하게 된 계기 비동기로 TRUNCATE 쿼리를 사용 하면서 겪은 문제와 해결과정을 정리하기 위해 글을 작성하게 되었습니다. 1. 문제 상황 회사에서 통합 테스트를 작성할 때, 테스트 격리(Test Isolation) 를 위해 TRUNCATE 쿼리를 사용하고 있습니다. @Component @Profile(value = "tes...
TRUNCATE 쿼리는 비동기 환경에서 의도대로 동작하지 않는다.
TRUNCATE 쿼리는 트랜잭션의 영향을 받을까?
글을 작성하게 된 계기 TRUNCATE 쿼리가 트랜잭션에 영향을 받는지 실험을 하게 됐고, 이를 정리하기 위해 글을 작성하게 되었습니다. 1. TRUNCATE TRUNCATE은 MySQL에서 테이블의 모든 데이터를 빠르게 제거하는 DDL(Data Definition Language) 문으로, DELETE와는 다르게 동작합니다. ...
GROUP BY에도 종류가 있다고?
글을 작성하게 된 계기 회사에서 GROUP BY를 사용하다가 에러가 발생했고, 알게 된 내용을 정리하기 위해 글을 작성하게 되었습니다. 사용한 데이터베이스는 MySQL 입니다. 1. 문제 상황 회사에서 가맹점 데이터를 조회할 때, GROUP BY를 사용해 특정 칼럼 값을 기준 으로 데이터를 그룹화 하고 있었습니다. 그랬더니 다...
FTP와 SFTP란 무엇일까?
글을 작성하게 된 계기 회사에서 정산 API를 개발 하면서 SFTP를 통해 가맹점의 데이터를 전송하게 되었고, 이 과정에서 알게 된 내용을 정리하기 위해 글을 작성하게 되었습니다. 1. FTP FTP(File Transfer Protocol)는 네트워크 상에서 파일을 전송하기 위해 오래전부터 사용된 대표적인 표준 프로토콜입니다. FTP...
JPA를 사용할 때, 하나의 서버, 여러대의 데이터베이스는 어떻게 처리할까?
글을 작성하게 된 계기 회사에서 하나의 서버에 두 개의 데이터베이스를 운영하고 있습니다. 이를 어떻게 JPA로 매핑하는지, 어떻게 스키마를 관리했는지 정리하기 위해 글을 작성하게 되었습니다. 1. 문제 상황 현재 회사에서 하나의 데이터베이스 서버 에 여러개의 데이터베이스를 사용 하고 있습니다. 예를 들어, 다음과 같이요. hello라는...
ElasticSearch JVM Options 설정과 살펴볼 점
1. 글을 작성하게 된 계기 ElasticSearch를 학습하며 JVM 옵션에 대해 학습하게 되었고, 알게된 내용을 정리하기 위해 글을 작성하게 되었습니다. 1. ElasticSearch의 JVM 설정 파일 ElasticSearch는 자바로 개발된 애플리케이션으로,.성능과 안정성에 있어서 JVM 관련 옵션 설정이 매우 중요합니다. JV...
역색인은 무엇이고 왜 빠를까?
글을 작성하게 된 계기 ElasticSearch를 학습하며 JVM 옵션에 대해 학습하게 되었고, 알게된 내용을 정리하기 위해 글을 작성하게 되었습니다. 1. 역색인과 역색인이 빠른 이유 역색인(Inverted Index)이란, 문서의 내용을 구성하는 각 단어를 기반으로, 해당 단어가 어떤 문서에 등장하는지 미리 저장해 두는 자료구조입니...
Window Operations를 살펴보자
글을 작성하게 된 계기 데이터 엔지니어링 학습을 하며 텀블링 윈도우(Tumbling Windows), 슬라이딩 윈도우(Sliding Windows)에 대해 학습하게 되었고, 이를 정리하기 위해 글을 작성하게 되었습니다. 1. Tumbling Windows 텀블링 윈도우(Tumbling Windows)는 일정 시간 간격으로 데이터를 처리...
운영체제의 스케줄링 코드 살펴보기
글을 작성하게 된 계기 이벤트 루프의 동작원리를 학습하며 운영체제의 스케줄링 코드에 관심을 가지게 됐고, 알게 된 내용을 정리하기 위해 글을 작성하게 되었습니다. 1. 코드 운영체제의 스케줄링과 이벤트 처리 코드를 살펴보겠습니다. 스케줄링 이벤트 처리 1-1. 스케줄링 운영체제는 schedule 함수를 통해 한 프로...
이벤트루프의 동작원리는 무엇일까?
글을 작성하게 된 계기 이벤트 루프의 동작원리를 학습하며 알게 된 내용을 정리하기 위해 글을 작성하게 되었습니다. 1. 이벤트 루프에 대한 의문점 이벤트 루프(Event Loop)는 프로그램이 대기 상태에 있다가 외부 또는 내부 이벤트를 감지하면, 해당 이벤트에 맞는 처리 함수를 호출해 처리합니다. 즉, 평소에는 프로그램이 대기중이다가...