2022/08(6)
-
Bloom Filter, 제대로 이해하기 - Java
Bloom Filter의 개념과 특징, 그리고 Java에서의 사용법을 알아보는 것이 본 포스팅의 목표입니다. Bloom Filter Bloom filters는 집합 내에 특정 원소가 존재하는지를 확인할 때 사용되는 자료구조입니다. Hash Table을 사용해서 원소가 있는지 없는지를 판단하는 것과 비슷합니다. Burton H. Bloom 저의 "Space/Time Trade-offs in Hash Coding with Allowable Errors (1970)" 논문에서 소개되었습니다. 여기서 논문 제목만으로도 아래의 Bloom Filter의 특징을 직접 알 수 있습니다. # 1. 공간/시간의 트레이드 오프 # 2. 해시 # 3. 일부 에러를 허용 Bloom Filter는 공간과 시간의 효율성을 위해 일..
2022.08.31 -
Spring WebClient, 제대로 사용하기 - exchange
Spring WebClient의 retrieve를 사용한 요청 방법과 Exception Handling 방법을 알아보고, 테스트해보는 것이 본 포스팅의 목표입니다. | 이어지는 포스팅 | #1. WebClient 소개 : Spring WebClient, 어렵지 않게 사용하기 #2. WebClient.retrieve() 통신 방법 : Spring WebClient, 제대로 사용하기 - retrieve #3.WebClient.exchange() 통신 방법 : 현재 포스팅 Reactive Programming의 전반적인 흐름 및 개념은 Reactive Programming, 제대로 이해하기를 참고해주세요. 안녕하세요. 이번 포스팅에서는 exchange를 사용한 WebClient 통신 방법과 Error Hand..
2022.08.25 -
Spring WebClient, 제대로 사용하기 - retrieve
Spring WebClient의 retrieve를 사용한 요청 방법과 Exception Handling 방법을 알아보고, 테스트해보는 것이 본 포스팅의 목표입니다. | 이어지는 포스팅 | #1. WebClient 소개 : Spring WebClient, 어렵지 않게 사용하기 #2. WebClient.retrieve() 통신 방법 :현재 포스팅 #3.WebClient.exchange() 통신 방법 : Spring WebClient, 제대로 사용하기 - exchange Reactive Programming의 전반적인 흐름 및 개념은 Reactive Programming, 제대로 이해하기를 참고해주세요. 안녕하세요. 지난 포스팅 "Spring WebClient, 어렵지 않게 사용하기"에 이어 이번 포스팅에서는..
2022.08.24 -
MySQL Architecture, 제대로 이해하기
MySQL Server의 구조를 파악하는 것이 본 포스팅의 목적입니다. MySQL Architecture TLDR; MySQL 서버는 크게 MySQL Engine과 Storage Enigne으로 구분할 수 있습니다. ✔️ MySQL Engine: 요청된 SQL 문장을 분석하거나 최적화 등 처리. 논리적인 면에서 두뇌의 역할 ✔️ Storage Engine: 손발 역할. 실제 데이터를 디스크 스토리지에 저장하거나 디스크 스토리지로부터 데이터를 읽어옴 여기서 중요한 점은 하나의 쿼리 작업은 여러 하위 작업으로 나뉘는데, 각 하위 작업이 MySQL 엔진 영역에서 처리되는지 아니면 스토리지 엔진 영역에서 처리되는지 구분할 줄 알아야 한다는 점입니다. Big Picture 위의 그림을 위에서 부터 살펴보면 Cli..
2022.08.21 -
Spring Batch, SEQ ID 제대로 이해하기
Spring Batch에서 Job, Step Id를 관리하는 방법과 Batch Meta Table 중 SEQ Table에 대한 이해가 본 포스팅의 목표입니다. 안녕하세요. Deep Dive를 즐기는 입장으로 Spring Batch가 Job, Step의 Id 값을 관리하는 방식에 대해 궁금해져서 디깅을 하게 되었습니다. 배치를 사용하면서 Id 값에 대해 오류를 하나 만났는데, 문득 그 흐름이 궁금해지더라구요. 해당 오류는 포스팅 하단에서 확인할 수 있습니다 ㅎㅎ FYI:: Spring Batch Series Spring Batch, 제대로 이해하기 (1) - 개념 이해 Spring Batch, 제대로 이해하기 (2) - 동작 원리 Spring Batch, 제대로 이해하기 (3) - Meta Data Spr..
2022.08.21 -
Paging Optimization - Covering Index
Paging 시 성능 개선을 위해 No Offset 방식과 Covering Index를 활용하는 것이 해당 포스팅의 목표입니다. 지난 포스팅은 Covering Index에 대해 다뤘습니다. 이번 포스팅은 이 Covering Index를 사용해서 성능을 개선하는 방법에 대해 다루고자 합니다. 데이터베이스 성능 개선이기 때문에 Spring 뿐만 아니라 모든 곳에서 활용할 수 있습니다. Paging 일반적인 웹 서비스에서 Paging은 아주 흔하게 사용되는 기능입니다. 간혹 Paging과 Pagination이라는 단어를 둘 다 확인 할 수 있는데요. 궁금해서 찾아보았는데, 아래와 같은 뜻을 가진다고 합니다. Pagination는 "act of creating pages for a document, book, ..
2022.08.01