기술 창고/DataBase(23)
-
[DB] H2 데이터베이스
H2는 Java 기반의 관계형 데이터 베이스(RDBMS)이다. 서버 모드와 임베디드 모드의 인메모리 DB 기능을 지원한다. 브라우저 기반의 콘솔모드를 사용할 수 있고, 별도의 추가적이고 복잡한 설치과정이 필요없고 용량도 매우 적어 사용하기 간편하다. H2의 작동 혹은 어플리케이션을 실행한 서버를 끄게 되면 DB에 저장된 내용들은 사라지게 된다. JDBC api 또한 지원하기 때문에 사용하기 편리하다. MYSQL과 같은 표준 SQL을 지원한다. 위와 같은 특징들 때문에 어플리케이션 개발 단계의 테스트 DB로서 많이 사용된다. H2 사용법 (Feat. 연동 방법) (1) H2 DB installer 다운 https://www.h2database.com/html/main.html H2 Database Engi..
2023.02.23 -
[DB] Redis (레디스)
Redis (레디스) Redis (Remote Dictionary Server)는 이름 그대로 외부에서 사용가능한 Key - Value 형식의 해시 맵 형태의 서버이다. 그래서 별도의 쿼리 없이 Key를 통해 원하는 데이터를 빠르게 가져올 수 있다. 디스크에 데이터를 쓰는 구조가 아니라 메모리에서 데이터를 처리하기 때문에 작업 속도가 상당히 빠르다. 즉, Redis는 고성능 Key - Value 형식의 데이터 저장소로서 String, List, Hash, Set, Sorted Set 과 같은 여러 다양한 자료 구조를 지원하는 NoSQL 이다. 혹은 Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터 베이스 관리 시스템 (DBMS) 이라고도 말할 수 있다. ..
2023.02.08 -
[DB] 인덱스 (Index)
인덱스는 데이터베이스의 테이블에 대한 검색 속도를 향상시켜주는 자료구조이다. 테이블의 특정 컬럼(속성)에 인덱스를 생성하면, 해당 컬럼의 데이터를 정렬한 후에 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장한다. 컬럼의 값과 물리적 주소를 해시맵처럼 key, value 한 쌍으로 관리한다. 쉽게 말해서 책에서 원하는 내용의 글을 찾을 수 있도록 도와주는 책갈피와 같은 역할이라고 보면 될 것 같다. 데이터 - 책의 내용 인덱스 - 책의 목차 물리적 주소 - 책의 페이지 번호 인덱스 장점 / 단점 인덱스 장점 DB 데이터 검색 속도 및 성능 향상. 인덱스에 의한 정렬된 형태를 갖는 데이터. 특정 조건의 데이터를 찾기 위해서는 Full Scan을 통해 전체적인 데이터 전부를 조건과 비교하여 찾았어야 했..
2023.01.23 -
[DB] 영속성 컨텍스트 (EntityManager)
Spring 프로젝트에서 DB를 관리하고 운영하는 작업은 반드시 필요하다. JPA가 대표적인 인터페이스 중 하나인데, JPA 내부 동작 원리를 알려면 영속성 컨텍스트를 반드시 알아야 한다. 영속성 컨텍스트 엔티티(도메인, DB테이블)를 영구 저장하는 환경이다. 애플리케이션과 데이터베이스 사이에서 객체를 보관하는 가상의 데이터베이스 혹은 논리적 개념이다. EntityManagerFactory에서 요청이 올 때마다 EntityManager를 생성한다. EntityManager는 Factory와 다르게 여러 스레드에서 접근하면 동시성 문제가 발생한다. 따라서, EntityManager 가 생성되면 영속성 컨텍스트가 1:1로 생성된다. EntityManager 를 통해서 영속성 컨텍스트에 접근한다. 엔티티 생명..
2023.01.10 -
[DB] 트랜잭션 (Transaction) with 4가지 특성
트랜잭션(Transaction) 트랜잭션(Transaction)은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능 (예 : Update, Delete)을 수행하기 위한 작업의 단위 혹은 일련의 연산들을 말한다. 트랜잭션 특성 1. 원자성(Atomicity) 트랜잭션의 연산은 데이터베이스에 전부 반영이 되어야하거나 전부 반영이 되지 않아야한다. 즉, 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느 하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 한다. 2. 일관성(Consistency) 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다. 시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가..
2023.01.09