DB 6

[Redis] 레디스 자료형 8가지

요즘 Redis를 찾아보며 자료형이 정말 다양하다는 걸 깨달았다.처음엔 그냥 Key-Value 저장소인 줄 알았는데, 알고 보니 8가지나 되는 자료형을 지원하였다. 📚 기본 자료형 5가지1. String> SET mykey "안녕하세요!"OK> GET mykey"안녕하세요!"> SET counter 100OK> INCR counter(integer) 101 가장 기본적이고 많이 사용되는 자료형텍스트, 숫자, 이진 데이터 모두 저장 가능최대 512MB까지 저장 가능숫자라면 INCR, DECR 같은 연산 가능사용하기 유용한 상황간단한 캐싱할 때세션 정보 저장할 때카운터 (조회수, 좋아요 수 등)API 토큰 저장할 때2. List - 순서가 중요한 데이터들> LPUSH mylist "첫번째"(integer)..

DB 2025.06.24

[DB] Connection Pool, HikariCP

JDBC API를 사용하여 DB와 연결하기 위해 Connection 객체를 생성하는 작업은 비용이 많이 드는 작업 중 하나이다.이러한 문제를 해결하기 위해 애플리케이션 로딩 시점에 Connection 객체를 미리 생성하고,애플리케이션에서 데이터베이스에 연결이 필요할 경우 미리 준비된 Connection 객체를 사용하여 애플리케이션의 성능을 향상하는 커넥션 풀 (Connection Pool)이 등장하였다. Connection PoolJava에서 JDBC의 Connection Pooling을 관리하는 라이브러리빠르고 안정적인 성능으로 많은 Spring Boot 및 Java 기반 애플리케이션에서 사용된다 커넥션 풀이란 (Connection Pool)1) 커넥션 풀 (Connection Pool) (1) ..

DB 2025.03.27

FETCH JOIN

FETCH JOINORM(Object-Relational Mapping) 프레임워크나 SQL에서 JOIN 된 엔티티를 한 번의 쿼리로 가져오는 기법일반적으로 SQL의 JOIN은 기본적으로 지연 로딩(Lazy Loading) 방식으로 동작한다FETCH JOIN을 사용하면 즉시 로딩(Eager Loading) 방식으로 가져와 여러 번의 쿼리를 실행(N+1) 하는 것을 방지할 수 있다2. FETCH JOIN in SQL (JPA / Hibernate)📌 일반 JOIN (Lazy Loading)SELECT e FROM Employee e JOIN e.department d;이 경우, 지연 로딩(Lazy Loading)으로 처리되며, department 데이터는 필요할 때 추가 쿼리가 발생한다📌 FETCH J..

DB 2025.03.18

Java - DB 연결2: ORM

ORM이란 객체와 관계형DB(RDBMS)의 데이터를 자동 매핑(연결)해주는 도구이다. Java에서는 JPA, Hibernate이 있다. RDBMS는 테이블 형태로 데이터를 저장하고 java는 객체라는 개념으로 데이터를 표현한다. - JPA(Java Persistence API) JPA는 인터페이스와 어노테이션을 정의하고, 이를 사용하여 객체와 테이블 간의 매핑 규칙을 정의한다. 이를 구현한 프레임워크(예: Hibernate)와 연결하여 사용한다 - Hibernate: 자바 프로그래밍 언어를 기반으로 한 오픈 소스 ORM(Object-Relational Mapping) 프레임워크 - JPA에서 구현한 인터페이스와 어노테이션을 사용하여 ORM을 구현 - 객체 지향적인 방식으로 DB(데이터)를 다룰 수 있다...

DB 2023.06.26

Java - DB 연결1: JDBC

DB 데이터 접속이란 코드와 DB의 데이터를 연결하는 것을 의미한다. SQL Mapping과 ORM 방법 두가지가 존재하며, 이 글에서는 SQL Mapping 방식인 JDBC에 대해 알아볼 것이다. 우선 SQL Mapping이란, 코드 내에 SQL을 직접 입력하여 DBMS에 접속하는 방법이다. ORM에 비해 사용하기 복잡하며, Java에선 JDBC이 SQL Mapping 방식을 통하여 연결시킨다. JDBC란? JDBC는 "Java Database Connectivity"의 약자로, 자바의 표준 API이다. 자바 프로그램에서 데이터베이스와 연결하고 상호 작용하기 위한 API(응용 프로그램 인터페이스)이다. JDBC를 사용하면 자바 환경으로 관계형 데이터베이스에 액세스하여 데이터를 검색, 삽입, 업데이트, ..

DB 2023.06.26

Python mongoDB Join 사용 코드

mongoDB는 NoSql DB로, Join문을 사용할 수 없다. 하지만 $lookup을 사용하여 MongoDB에서 여러 개의 컬렉션 간 조인을 수행할 수 있다. $lookup은 RDBMS의 조인 기능과 유사한 기능을 제공하는 파이프라인 연산자이다. 코드 작성 예시 import pymongo my_client = pymongo.MongoClient('mongodb://localhost:27017/') my_db = my_client['Orders'] my_collection = my_db['buy_orders'] result = my_collection.aggregate([{ '$lookup' : { 'from': 'sell_orders', 'localField': 'id_transaction', 'fo..

DB 2023.06.09