Database(3)
-
Sharding
Sharding이란Sharding이란 단일의 데이터를 다수의 데이터베이스로 분산시키는 것을 말합니다. 이렇게 데이터를 분산시킴으로써 인덱스의 크기를 줄이고 작업 동시성을 늘릴 수 있습니다. Sharding은 Application Level에서도 가능하지만 Database Level에서도 가능합니다. 데이터베이스를 Sharding하게 되면 기존에 하나로 구성될 스키마를 다수의 복제본으로 구성하고 각각의 Shard에 어떤 데이터가 저장될지를 Shard Key를 기준으로 분리합니다.Sharding 방법Algorithm Sharding데이터베이스 ID를 단순하게 나누어 샤딩하는 방식입니다. Sharding Key는 hash(key) % NUM_DB 같은 방식입니다.장점같은 값을 가지는 key-value 데이터베..
2020.05.08 -
MyBatis
🗺️ MyBatis란? MyBatis는 Java 애플리케이션에서 SQL 데이터베이스와 상호작용하기 위한 SQL Mapper 프레임워크입니다. JPA처럼 SQL을 자동 생성하는 ORM과 달리, 개발자가 SQL을 직접 작성하고 Java 객체와 매핑합니다. 항목JDBCMyBatisJPA (Hibernate) SQL 제어직접 작성직접 작성자동 생성 코드 복잡도높음중간낮음 유연성높음높음낮음 복잡한 쿼리적합적합부적합 📋 SqlSession이란? MyBatis에서 SQL 실행 및 트랜잭션 관리를 담당하는 인터페이스입니다. Connection Pool에서 Connection을 빌려와 SQL을 실행하며, 요청마다 생성되고 끝나면 소멸합니다. ..
2020.03.26 -
DBCP
DBCP (Database Connection Pool)📌 개념 DBCP는 데이터베이스 연결(Connection)을 미리 생성해 놓고, 필요할 때 꺼내 쓰고 반납하는 연결 풀(Pool) 관리 기법입니다.❓ 왜 필요한가?데이터베이스 Connection 생성은 매우 비용이 큰 작업입니다. TCP 소켓 연결 DB 인증 (ID/PW 확인) 세션 초기화요청마다 Connection을 새로 만들면 성능 저하가 발생하므로, 미리 만들어 둔 Connection을 재사용합니다.⚙️ 동작 원리Connection Pool은 일정 개수의 Connection을 항상 보유하는 컨테이너입니다.내부적으로 Connection의 상태를 지속적으로 관리하며, 문제가 생긴 Connection은 자동으로 제거 후 재생성합니다. 애플..
2020.03.26