'DB' 카테고리의 글 목록
THE 1995 DevOps Note
DB
JPA 와 Mapper 파일 이 같이 쓰는 프로젝트
2025.10.01
보통 JPA를 쓰면 Entity 와 Repository 만으로도 DB CRUD 를 할 수 있는데, 현업에서는 JPA + Mapper(MyBatis 같은 매퍼) 를 같이 쓰는 경우 종종 있다!! 왜그런지 이유는??🔹 JPA만으로 부족한 부분복잡한 SQL 제어 어려움JPA는 객체 중심이라 동적 SQL, 복잡한 조인, 집계 쿼리 작성이 불편JPQL/Criteria API로 가능하긴 하지만, 가독성이 떨어지고 SQL 최적화 제어가 어려움DB 특화 기능 한계오라클의 힌트, Tibero/Postgres의 특정 함수, Window 함수 등은 JPA 표준으로 다루기 어렵습니다.NativeQuery로 가능하지만, 유지보수가 불편대용량 배치 처리JPA는 1차 캐시/영속성 컨텍스트를 사용하기 때문에 대량 데이터 처리 시..
DB
DB 파티션이란?
2025.09.12
DB에서 파티션(Partition) 이란??하나의 큰 테이블이나 인덱스를 여러 개의 작은 논리적 단위로 나누어 저장하는 방식 사용 이유???데이터가 너무 많아지면 검색이나 관리가 느려짐파티션을 적용하면 데이터를 나누어 저장하기 때문에 필요한 부분만 조회할 수 있어 성능이 향상또한 오래된 데이터와 최근 데이터를 분리해 관리하거나, 특정 파티션만 백업·삭제하는 등 유지보수가 용이파티션의 종류범위 파티션 (Range Partitioning): 날짜나 숫자 범위로 나눔리스트 파티션 (List Partitioning): 특정 값 집합으로 나눔 (예: 지역별)해시 파티션 (Hash Partitioning): 해시 함수를 이용해 고르게 분산복합 파티션 (Composite Partitioning): 위 방식을 조합
DB
정규화 / 반정규화 란??
2025.06.04
정규화(Normalization)와 반정규화(Denormalization)는 관계형 데이터베이스 설계에서 데이터 구조의 효율성과 성능을 조절하는 두 가지 접근 방식 ✅ 정규화 (Normalization)목적:데이터 중복 제거,데이터 무결성 유지,데이터 구조의 논리적 정합성 확보 장점:데이터 무결성 향상변경 시 일관성 유지저장 공간 최적화단점:조인이 많아져 성능 저하 가능실시간 처리에 불리할 수 있음 ✅ 반정규화 (Denormalization)목적:조회 성능 향상복잡한 조인 최소화방법:테이블 병합중복 데이터 허용집계 필드 추가컬럼을 별도로 분리하거나, 계산 결과 컬럼 저장장점:조회 성능 향상, 특히 대용량/실시간 시스템에서 유리조인 감소로 인한 단순한 쿼리 작성 가능단점:데이터 중복 증가 → 무결성 문제 ..

DB
JPA
2025.01.16
**JPA(Java Persistence API)**는 자바 애플리케이션에서 데이터를 관계형 데이터베이스에 매핑하고 관리하기 위한 표준 스펙, ORM(Object-Relational Mapping) 기술을 사용하여 객체 지향 프로그래밍과 관계형 데이터베이스의 차이를 효율적으로 해결하는 데 도움
DB
Mybatis
2024.12.02
MyBatis는 Java 기반의 SQL 매퍼 프레임워크로, 기존의 JDBC를 단순화하고, 개발자가 SQL을 작성하면서도 객체와 관계형 데이터베이스를 쉽게 연결할 수 있도록 돕는 도구입니다. 객체 지향 프로그래밍과 SQL을 통합한 프레임워크로, 복잡한 ORM(Object Relational Mapping)보다 SQL 작성의 자유도를 높여줌MyBatis의 주요 특징SQL 중심의 개발MyBatis는 개발자가 직접 SQL을 작성.ORM 프레임워크(예: Hibernate)와 달리, 자동 생성된 SQL이 아닌 개발자가 작성한 SQL을 그대로 사용SQL과 Java 코드의 명확한 분리를 제공Mapper XML 또는 어노테이션 지원SQL은 XML 파일로 작성하거나, Java 코드에 어노테이션으로 작성가능XML 파일을 통..