본문 바로가기
  • 개발 삽질 블로그

데이터/데이터베이스10

[ElasticSearch] ElasticSearch 인덱스 생성하기 사전 준비이미 Spring Boot + MySQL로 간단한 게시판 서비스를 만들어 놓은 상태로 실습을 진행하였습니다.Elasticsearch와 Kibana는 둘 다 Elastic의 공식 Docker 이미지를 제공하며, Docker Compose를 사용하면 두 컨테이너를 쉽게 구성하고 실행할 수 있습니다.저는 로컬 환경에 도커 이미지를 받아 컨테이너 띄워서 실습을 진행하였습니다version: '3.8'services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.5.0 container_name: elasticsearch environment: - node.name=elasticsearch .. 2024. 11. 5.
[ElasticSearch] ElasticSearch 개념 정리 ElasticSearchElasticSearch는 Apache Lucene을 기반으로 하는 분산 검색 엔진으로, 대규모 데이터에서 빠른 검색과 집계 기능을 제공합니다. 실시간 검색 및 분석을 필요로 하는 시스템에서 많이 사용되며, JSON 기반의 RESTful API를 통해 상호작용합니다. 주요 특징1. 분산 아키텍처ElasticSearch는 클러스터로 구성되며, 각 클러스터는 여러 노드(Node)로 이루어집니다.샤드(Shard): 데이터를 분산 저장하며, 장애 복구를 위해 복제본(Replica)을 유지하여 데이터 안정성을 보장합니다. 2. RESTful APIHTTP 메서드를 이용한 JSON 문서 기반 상호작용이 가능합니다. 즉, HTTP 메서드(GET, POST, PUT, DELETE)를 사용하여 데.. 2024. 10. 24.
[Database] DB Lock의 종류와 DeadLock DB Lock여러 트랜잭션이 동시에 동일한 데이터를 액세스할 때 데이터 무결성을 유지하고 충돌을 방지하는 매커니즘종류는 아래와 같습니다LS-Shared Lock : 공유락LX-Exclusive Lock: 배타락 1. Lock의 종류공유 락(LS-Shared Lock)여러 트랜잭션이 동시에 동일한 리소스를 읽을 수 있도록 허용함공유 락이 걸린 데이터는 읽기 전용임, 변경 불가데이터 일관성을 유지하기 위해 주로 사용, SELECT 쿼리에서 사용(락 걸리니깐 무작정 사용하지는 말기...)--Transaction 1: 공유 락 설정SELECT * FROM member WHERE last_name = 'Kim' LOCK IN SHARE MODE;--Transaction 2: 공유 락 설정SELECT * FROM .. 2024. 8. 19.
[Database] Index(인덱스)와 최적화 ✨Index?인덱스는 데이터베이스 테이블의 특정 컬럼에 대해 빠른 검색을 가능하게 하는 데이터 구조입니다. 책의 색인처럼, 인덱스는 데이터의 위치를 신속하게 찾아낼 수 있도록 돕습니다. 데이터베이스에서 인덱스를 사용하면 검색, 정렬, 필터링 작업을 더욱 효율적으로 처리할 수 있습니다.숫자, 날짜, 텍스트 데이터에서의 정확한 일치 검색에 사용데이터를 빠르게 조회하고 정렬하는 데 사용테이블 간의 조인 작업을 빠르게 수행할 수 있음  인덱스의 기본 구조인덱스는 데이터베이스에서 다양한 형태로 구현될 수 있으며, 가장 일반적인 구조는 B-트리(Balanced Tree)입니다.(여기서 자세한 자료 구조 설명은 생략하겠습니다..ㅎㅎ)1. B-트리 인덱스특징: 균형 잡힌 트리 구조로, 모든 노드가 정렬된 상태를 유지장.. 2024. 8. 2.
[Database] MySQL User 생성 *현재 제가 참여한 프로젝트에서 사용하고 있는 MySQL 기준으로 정리했습니다User 생성Root(관리자)에게는 User 생성 권한이 있음create user_priv = ‘Y’인 유저는 유저를 생성할 수 있음CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';CREATE USER 'newuser2'@'%' IDENTIFIED BY 'password';newuser: 유저 이름localhost: 유저가 접속할 수 있는 호스트(host)특정 ip나 %를 이용하여 접근할 수 있는 호스트를 제한 가능%는 모든 호스트를 의미함password: user 비밀번호 User 삭제DROP USER 'newuser'@'localhost';DROP USER [유저 이름.. 2024. 7. 24.
[Database] DB Session & Connection DB Session vs Connection 두 개념과 차이를 간단하게 정리해보았습니다 Connection:정의: 클라이언트와 데이터베이스 서버 간의 물리적 또는 논리적 연결역할: 데이터베이스 서버와 통신할 수 있는 통로를 제공예시: 네트워크 소켓, 데이터베이스 드라이버 인스턴스 Session:정의: 특정 커넥션을 통해 데이터베이스와 상호작용하는 동안 유지되는 상태역할: 사용자의 인증 정보, 트랜잭션 상태, 설정된 옵션 등을 포함하여 상호작용의 논리적 컨텍스트를 관리예시: 로그인 정보, 트랜잭션 상태 등Connection vs Session  Connection  Session 정의DB와 Client 간의 물리적 통신 경로Client가 연결을 통해 서버에서 작업을 수행하는 동안의 상태기능데이터 전송 및.. 2024. 7. 24.