Nested Loop Join 조인 방식 중 하나로 조인 시 두 테이블의 레코드를 모두 확인하는 방식으로 중첩 포문과 같은 방식 이라고 할 수 있다. Driving 테이블의 레코드를 순차적으로 하나씩 읽어 Driven 테이블과 조인하는 방식 Driving 테이블의 레코드 개수가 너무 많으면 Driven 테이블을 읽는 횟 수가 늘어 속도에 이상이 생긴다. 즉, 레코드의 숫자가 적을 수록 성능이 좋다. Driving 테이블에 조인 컬럼으로 인덱스가 있을 때, 성능이 빨라진다. Hash Join Hash Table을 생성하여, Hash Function을 활용한 탐색으로 조인한다. Nested Loop Join 에 비해 Hash 알고리즘을 사용하기 때문에 순차 탐색보다 빠른 탐색 성능으로 Join 성능 향상에 ..
메시지 큐 ( MQ : Message Queue ) 메시지 큐란? MOM(Message Oriented Middleware)은 프로세스 혹은 인스턴스 사이에 비동기 통신 방법이다. 이를 구현한 시스템을 메시지 큐(Message Queue) 라고 한다. 이 때, 메시지는 요청, 응답, 오류 메시지등을 의미한다. MQ의 특징 MSA(Micro Service Architecture)에서 서비스 ↔ 서비스 간 비동기 통신 메시지를 큐(Queue)에 임시 저장하고, 해당 메시지가 소비자(Consumer)에 의해 처리 된 후 삭제된다. 큐는 메시지를 임시 저장하는 버퍼라고 할 수 있고, 메시지 큐는 메시지 생산자(Producer)와 소비자(Consumer)간의 일대일 통신 방법이다. 메시지가 큐에 저장된 메시지의 ..
병렬 스트림 ( Parellel Stream ) 스트림(Stream) 요소를 특정 단위(Chunk)로 작업을 분할하여 처리 할 수 있게 하는 방법이다. 특징 병렬 처리는 사용 방법에 따라 성능에 악영향을 가져오기도 한다. 대표적으로 잦은 박싱•언박싱, 데이터의 순서가 중요한 경우 또는 소량에 데이터를 처리할 때는 적합하지 않다. 올바른 자료구조를 사용해야 한다. ( ArrayList 🅾️ LikedList ❌ ) 요소의 순서가 중요하다면 순차 스트림이 병렬 스트림에 비해 성능이 좋을 수 있다. 박싱•언박싱 과정에 오버헤드가 상당하기 때문테 특화 스트림(IntStream 등)을 사용하는 것이 좋다. 내부적으로 ForkJoinPool 사용한다. 사용 방법 parallelStream 을 통해 병렬 스트림으로 ..
CAP 정리 분산 시스템의 유형을 정의하는 특성 3가지를 의미한다. 이 분산 시스템은 이 3가지 특성중 2가지만 제공할 수 있다고 한다. CAP의 3가지 특성 일관성 ( Consistency ) 가용성 ( Availability ) 파티션 허용 ( Partition tolerance ) 분산 시스템 이란? 동시에 둘 이상의 노드에 데이터를 저장하는 네트워크를 의미한다. 일관성 ( Consistency ) 어떤 노드에 연결 됐는지와 상관 없이 모든 노드에서 동일한 데이터를 볼 수 있음을 의미한다. MongoDB의 경우 일관성을 보장하기 위해 쓰기 작업은 Master Node에만 가능 하도록 하여, 일관성을 유지하고 있다. 반대로 CasandraDB의 경우 Master와 Slave를 구분하지 않아 Node별..
- Total
- Today
- Yesterday
- 세션 불일치
- 뾰족함
- Session
- 수직 분할
- Sticky Session
- 객체 풀
- pool
- 수평 분할
- RestAssured
- pass by reference
- 장애 해결기
- java
- Object Pool
- 외부 단편화
- Clean Architecture
- 육각형 아키텍처
- 메모리 단편화
- pass by value
- SpringBoot 2.2
- 클린 아키텍처
- ATDD
- 동적 타입 언어
- 내부 단편화
- OOP
- multimap
- Memory Fragmentation
- 정적 타입 언어
- 컴포짓 패턴
- 동적 디스패치
- 메모리 파편화
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |