db
-
프로젝트를 진행하다가 spring security jwt를 이용해 로그인을 구현하던 중 redis를 이용해 refresh 토큰을 보관하는 방식을 보게 되어 redis가 무엇인지 궁금해서 공부하고 해당 내용을 정리해보게 되었다. Redis란 무엇인가? Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)이다. 데이터베이스, 캐시, 메세지 브로커로 사용되며 인메모리 데이터 구조를 가진 저장소다. https://redis.io/ 공식 홈페이지에서는 Redis의 핵심기능을 다음과 같이 말하고 있다. Redis는 데이터베이스, 캐시, 메시지 브로커 및 스트리밍 엔진으로 사용되는 오픈소스(BSD 라이선스), 인메모리 데이터 구조 저장소이다...
[DB] Redis란?프로젝트를 진행하다가 spring security jwt를 이용해 로그인을 구현하던 중 redis를 이용해 refresh 토큰을 보관하는 방식을 보게 되어 redis가 무엇인지 궁금해서 공부하고 해당 내용을 정리해보게 되었다. Redis란 무엇인가? Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)이다. 데이터베이스, 캐시, 메세지 브로커로 사용되며 인메모리 데이터 구조를 가진 저장소다. https://redis.io/ 공식 홈페이지에서는 Redis의 핵심기능을 다음과 같이 말하고 있다. Redis는 데이터베이스, 캐시, 메시지 브로커 및 스트리밍 엔진으로 사용되는 오픈소스(BSD 라이선스), 인메모리 데이터 구조 저장소이다...
2023.04.21 -
인덱스란(Index)? 인덱스는 데이터베이스 테이블에 대한 검색 속도를 높여주는 자료 구조이다. 특정 컬럼에 인덱스를 생성하면 해당 컬럼의 데이터들을 정렬하여 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장된다. 이렇게 인덱스가 생성되면 앞으로 쿼리문에 인덱스 생성 컬럼을 WHERE 조건으로 거는 등의 작업을 하면 옵티마이저에서 판단하여 생성된 인덱스를 탈 수 있다. 아래 그림과 같이 인덱스를 타게 되고 먼저 인덱스에 저장되어 있는 데이터의 물리적 주소로 가서 데이터를 가져오는 식으로 동작하여 검색 속도를 향상시킨다. 인덱스는 책에 있는 목차라고 생각하면 편하다. 우리가 책에서 정보를 찾을 때도 먼저 원하는 카테고리를 목차에서 찾고 목차에 있는 페이지 번호를 보고 찾아가듯 인덱스도 내가 원하는 데..
[DB] Index, 인덱스란?인덱스란(Index)? 인덱스는 데이터베이스 테이블에 대한 검색 속도를 높여주는 자료 구조이다. 특정 컬럼에 인덱스를 생성하면 해당 컬럼의 데이터들을 정렬하여 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장된다. 이렇게 인덱스가 생성되면 앞으로 쿼리문에 인덱스 생성 컬럼을 WHERE 조건으로 거는 등의 작업을 하면 옵티마이저에서 판단하여 생성된 인덱스를 탈 수 있다. 아래 그림과 같이 인덱스를 타게 되고 먼저 인덱스에 저장되어 있는 데이터의 물리적 주소로 가서 데이터를 가져오는 식으로 동작하여 검색 속도를 향상시킨다. 인덱스는 책에 있는 목차라고 생각하면 편하다. 우리가 책에서 정보를 찾을 때도 먼저 원하는 카테고리를 목차에서 찾고 목차에 있는 페이지 번호를 보고 찾아가듯 인덱스도 내가 원하는 데..
2023.04.18 -
트랜잭션이란? 데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위이다. 데이터 베이스의 상태를 변화시킨다는 것은? 간단하게 아래의 질의어를 이용해 데이터베이스에 접근하는 것을 의미한다. SELECT INSERT DELETE UPDATE 착각하면 안되는 것은 작업의 단위는 질의어 한 문장이 아니라는 점이다. 게시판을 예로 들면 사용자가 게시글을 작성하고 완료 버튼을 누른 후에 게시판에 다시 돌아오면 자신의 글이 업데이트 된 게시판을 보게 된다. 이런 상황을 데이터베이스 작업으로 옮기면 사용자가 게시글을 올릴 때 insert 문을 사용해서 데이터를 추가하고 게시글이 추가된 데이터를 다시 select 문을 이용해 최신 정보를 불러온다. 여기서 작업의 단위는 insert문과 select문 두 명령어를 합친..
[DB] Transaction, 트랜잭션이란?트랜잭션이란? 데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위이다. 데이터 베이스의 상태를 변화시킨다는 것은? 간단하게 아래의 질의어를 이용해 데이터베이스에 접근하는 것을 의미한다. SELECT INSERT DELETE UPDATE 착각하면 안되는 것은 작업의 단위는 질의어 한 문장이 아니라는 점이다. 게시판을 예로 들면 사용자가 게시글을 작성하고 완료 버튼을 누른 후에 게시판에 다시 돌아오면 자신의 글이 업데이트 된 게시판을 보게 된다. 이런 상황을 데이터베이스 작업으로 옮기면 사용자가 게시글을 올릴 때 insert 문을 사용해서 데이터를 추가하고 게시글이 추가된 데이터를 다시 select 문을 이용해 최신 정보를 불러온다. 여기서 작업의 단위는 insert문과 select문 두 명령어를 합친..
2023.04.18 -
JDBC란? Hikari CP(히카리 커넥션풀)을 알아보기에 앞서 JDBC의 개념이 무엇인지 알아보면 JDBC는 Java Database Connectivity의 약자로 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다. JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공한다. DB 커넥션 풀이란? 일반적인 데이터 연동과정은 웹 어플리케이션이 필요할 때마다 데이터베이스에 연결하여 작업하는 방식이다. 하지만 이런 식으로 필요할 때마다 연동해서 작업할 경우 데이터베이스 연결에 시간이 많이 걸리는 문제가 발생한다. 동시에 몇천명이 데이터 조회를 하는데 매번 데이터베이스와 커넥션을 맺고 푸는 작업을 진행하면 굉장히 비효율적일 것이다. 이 문제를 해결하기 위해 웹 애플리케이션이 실행..
[DB] Hikari CP 알아보기JDBC란? Hikari CP(히카리 커넥션풀)을 알아보기에 앞서 JDBC의 개념이 무엇인지 알아보면 JDBC는 Java Database Connectivity의 약자로 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다. JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공한다. DB 커넥션 풀이란? 일반적인 데이터 연동과정은 웹 어플리케이션이 필요할 때마다 데이터베이스에 연결하여 작업하는 방식이다. 하지만 이런 식으로 필요할 때마다 연동해서 작업할 경우 데이터베이스 연결에 시간이 많이 걸리는 문제가 발생한다. 동시에 몇천명이 데이터 조회를 하는데 매번 데이터베이스와 커넥션을 맺고 푸는 작업을 진행하면 굉장히 비효율적일 것이다. 이 문제를 해결하기 위해 웹 애플리케이션이 실행..
2023.04.18