[주니어 백엔드 개발자가 반드시 알아야 할 실무 지식]
·
📓
3. 성능을 좌우하는 DB 설계와 쿼리성능과 DB | 인덱스 설계 | 조회 성능 개선 방법 | 주의 사항 3. 성능을 좌우하는 DB 설계와 쿼리 | Notion3. 성능을 좌우하는 DB 설계와 쿼리www.notion.so 4. 외부 연동이 문제일 때 살펴봐야 할 것들외부 연동 문제 | 타임아웃과 재시도 | 동시 요청 제한과 서킷 브레이커 | DB와 외부 연동 | HTTP 커넥션 풀 | 이중화 4. 외부 연동이 문제일 때 살펴봐야할 것들 | Notion4. 외부 연동이 문제일 때 살펴봐야할 것들www.notion.so 5. 비동기 연동, 언제 어떻게 써야 할까비동기 연동 | 별도 스레드 이용한 비동기 연동 | 메시징 이용한 비동기 연동 | 트랜잭션 아웃박스 패턴 | CDC 5. 비동기 연동, 언제 어떻게 ..
[Real MySQL 8.0 1] 08 인덱스 - 7. 멀티 밸류 인덱스 / 8. 클러스터링 인덱스
·
📓/데이터베이스
7. 멀티 밸류 인덱스모든 인덱스는 레코드 1건 -> 1개의 인덱스 키 값 가짐 (전문 검색 인덱스 제외)= 인덱스 키 : 데이터 레코드는 1:1 관계 가짐 멀티 밸류(Multi-Value) 인덱스: 하나의 데이터 레코드가 여러 개의 키 값을 가질 수 있음-> 일반적인 RDBMS 기준: 정규화 위배But, JSON 데이터 타입 지원 -> JSON의 배열 타입의 필드에 저장된 원소들에 대한 인덱스 요건 발생 신용 정보 점수를 배열로 JSON 타입 칼럼에 저장하는 테이블CREATE TABLE user ( user_id BIGINT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(10), last_name VARCHAR(10), credit_info JSON..
[Real MySQL 8.0 1] 08 인덱스 - 4. R-Tree 인덱스 / 5. 전문 검색 인덱스 / 6. 함수 기반 인덱스
·
📓/데이터베이스
4. R-Tree 인덱스공간 인덱스(Spatial Index)R-Tree 알고리즘 이용해 2차원 데이터 인덱싱, 검색하는 목적의 인덱스내부 메커니즘 B-Tree와 유사 B-Tree 인덱스 구성하는 칼럼의 값 1차원 스칼라 값R-Tree 인덱스: 2차원 공간 개념의 값 MySQL 공간 확장에 포함된 3가지 기능공간 데이터 저장할 수 있는 데이터 타입공간 데이터 검색 위한 공간 인덱스(R-Tree 알고리즘)공간 데이터의 연산 함수(거리 or 포함 관계의 처리) 1) 구조 및 특성공간 정보의 저장 및 검색 -> 기하학적 도형(Geometry) 정보 관리할 수 있는 데이터 타입 제공POINT, LINE, POLYGON, GEOMETRY(3개 슈퍼 타입 -> 나머지 객체 모두 저장 O) MBR(Minimum Bo..
[이펙티브 자바] 2장 객체 생성과 파괴 - 아이템 8 finalizer와 cleaner 사용을 피하라 / 아이템 9 try-finally보다는 try-with-resources를 사용하라
·
💻/Java
아이템 8 finalizer와 cleaner 사용을 피하라 Java 2가지 객체 소멸자: finalizer, cleaner-> 예측 불가능, 성능 저하, 동시성 문제 유발finalizer: Java 9 deprecated API로 지정, 위험성 ↑cleaner: `finalizer`보다 덜 위험 But, 여전히 느리고, 불필요, 예측 X!= C++의 파괴자(destructor)(생성자 대척점) 객체 소멸될 때 그와 연결된 자원(메모리 + 비메모리) 자동 회수vs Java: GC) 접근할 수 없게 된 객체 회수(메모리만 관리)-> 비메모리 자원은 `try-with-resources`와 `try-finally` 사용해 해결finalizer와 cleaner 피해야 하는 이유1) 실행 시점 보장 XGC가 객체 ..
[이펙티브 자바] 2장 객체 생성과 파괴 - 아이템 7 다 쓴 객체 참조를 해제하라
·
💻/Java
아이템 7 다 쓴 객체 참조를 해제하라C,C++: 메모리 직접 관리 / Java: GC가 더 이상 사용 X 객체 회수-> 메모리 관리에 신경 쓰지 않아도 된다고 오해 메모리 누수 예시: 스택 구현public class Stack { private Ojbect[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public Stack() { elements = new Object[DEFAULT_INITIAL_CAPACITY]; } public void push(Object e) { ensureCapacity(); elements[s..
[이펙티브 자바] 2장 객체 생성과 파괴 - 아이템 6 불필요한 객체 생성 피하라
·
💻/Java
아이템 6 불필요한 객체 생성 피하라 똑같은 기능의 객체 매번 생성 -> 빠르고 세련됨/ 특히, 불변 객체는 언제든 재사용 O 불필요한 객체 생성 예시1) 하지 말아야 할 극단적인 예String s = new String("asdf");`new String("asdf")`: 실행될 때마다 새로운 `String` 인스턴스 생성생성자에 넘겨진 `asdf` 자체가 이미 동일한 `String` 객체 반복문 or 빈번히 호출되는 메서드에서 사용 -> 수백만 개의 불필요한 객체 생길 수 O 개선 버전String s = "asdf";새로운 인스턴스 매번 만드는 대신 하나의 `String` 리터럴 재사용JVM) 동일한 문자열 리터럴 사용하는 모든 코드가 같은 객체 공유하도록 보장 2) 정적 팩터리 메서드 사용생성자) ..
kimmeoww
'분류 전체보기' 카테고리의 글 목록