목록2025/05 (66)
변수의 기록

B-Tree : 구조, 작동 원리, DB에서의 활용1. B-Tree란?B-Tree는 **Binary Search Tree(이진 탐색 트리)**를 일반화한 트리 자료구조입니다. 데이터베이스와 파일 시스템 등, 디스크 기반의 저장 시스템에서 대량의 데이터를 효율적으로 검색, 삽입, 삭제할 수 있도록 설계된 구조입니다.왜 B-Tree가 필요한가?일반 이진 탐색 트리는 삽입 순서에 따라 한쪽으로 치우칠 수 있어 최악의 경우 O(n) 시간복잡도를 가집니다.반면 B-Tree는 항상 균형을 유지하며, 트리의 높이를 제한해 모든 연산이 O(log n) 시간에 수행됩니다.특히 디스크 I/O 비용이 큰 환경에서 적은 횟수의 블록 접근으로 원하는 데이터를 찾을 수 있도록 설계되었습니다.2. B-Tree의 구조기본 구성M차 ..

✅ NoSQL이란?**NoSQL (Not Only SQL)**은 전통적인 관계형 데이터베이스(RDB)와는 다른 방식으로 데이터를 저장하고 처리하는 데이터베이스의 총칭입니다.NoSQL은 다음과 같은 특징을 갖습니다:스키마 유연성 (Flexible Schema)고속의 읽기/쓰기 성능수평적 확장성 (Scale-Out)다양한 데이터 모델 지원 (문서형, 키-값형, 컬럼형, 그래프형 등)📌 NoSQL이 등장하게 된 배경은 빅데이터, 고속 트래픽, 비정형 데이터 증가에 따른 RDB의 한계를 보완하기 위함입니다.✅ RDB vs NoSQL 간단 비교 항목RDB (관계형 DB)NoSQL구조고정 스키마 (정규화)유연한 스키마확장성수직 확장 (Scale-Up)수평 확장 (Scale-Out)트랜잭션ACID 완전 지원대부분 ..

import java.util.*;import java.io.*;/*330 1 01 0 10 1 01 2 3 */public class Main { static int N,M; static int[] parents; static int[][] map; public static void main(String[] args) throws IOException{ // TODO Auto-generated method stub BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); N = Integer.parseInt(st.nex..

실전에서의 DBCP 설정 최적화: HikariCP 튜닝부터 병목 분석까지1. 개요: DBCP란 무엇인가?DBCP(Database Connection Pooling)는 DB 연결(Connection)을 매번 생성·종료하지 않고 재사용하도록 설계된 구조이다. Java/Spring 환경에서는 HikariCP가 가장 널리 사용되는 DBCP 구현체다.매 요청마다 TCP 3-way/4-way handshake를 반복하는 것은 불필요한 I/O 및 컨텍스트 스위칭 비용을 유발한다.따라서 HikariCP 같은 커넥션 풀을 사용하면 성능 최적화 및 리소스 안정성 확보에 유리하다.2. HikariCP 핵심 설정✅ maxLifetime커넥션 객체의 최대 수명 (ms 단위)유휴 상태일 경우 바로 제거되고, 사용 중일 경우 반환..
DB 커넥션 오버헤드: 단순한 열고 닫기가 아니다1. 커넥션 오버헤드란?DB 커넥션을 열고 닫는 작업은 단순한 네트워크 통신을 넘어서서 다음과 같은 리소스 비용이 발생한다.📌 네트워크 관점open connection: TCP 3-way-handshakeclose connection: TCP 4-way-handshake각 핸드셰이크마다 커널-유저 공간 전환, 시스템 콜 비용, 패킷 송수신 대기가 발생한다.📌 OS 관점 (컨텍스트 스위칭 + IO 대기)DB 작업은 대부분 IO-bound (대기 시간이 많음)요청마다 새로운 스레드 → 스레드 생성/종료 비용OS는 스레드 전환 시 컨텍스트 스위칭 비용이 발생→ CPU 캐시 무효화, 레지스터 백업/복구 비용대기 시간이 많은 DB 작업은 결국 낮은 처리량과 높은..

DBCP (Database Connection Pool) 개념과 HikariCP 설정 상세 정리1. DBCP란?**DBCP (Database Connection Pool)**는 데이터베이스와의 통신에서 Connection 객체를 매번 생성/해제하지 않고, 재사용을 위한 Pool에 담아 관리하는 기법이다.이는 DB 연결 시 발생하는 TCP 핸드셰이크 비용, 리소스 소모, 타임아웃 위험을 줄이기 위한 대표적인 방식이다.2. 기본 개념: TCP 통신과 커넥션 비용DB 통신은 보통 TCP 기반으로 이루어지며, 아래의 과정이 수반된다.Open Connection (3-way-handshake)클라이언트와 서버가 TCP 연결을 성립하는 과정Close Connection (4-way-handshake)연결을 종료하는..

1. 파티셔닝 (Partitioning)1-1. 개념하나의 테이블을 물리적으로 여러 개의 파티션(조각)으로 나누어 관리하는 방식물리적으로는 나뉘지만 논리적으로는 여전히 하나의 테이블처럼 작동합니다. 주로 대용량 테이블의 성능 개선이나 관리 편의성 향상을 위해 사용됩니다.1-2. 종류① 수직 파티셔닝 (Vertical Partitioning)테이블의 **열(Column)**을 기준으로 분할자주 조회되는 컬럼과 잘 사용되지 않는 컬럼을 분리예: ARTICLE 테이블에서 자주 조회 되는 컬럼과 별도 분리, 게시판 내용은 다른 테이블로 (게시판 내용은 용량이 커 부하도 큼)-- 수직 분할 예시ARTICLE(id, title, WRITER_ID 등등) ARTICLE_CONTENT(id, ,content) 1.수..
✅ 대표 알고리즘 유형별 출제 키워드/상황 정리표 알고리즘 유형출제 키워드/조건예시 문제 유형유니온 파인드 (DSU)- "같은 그룹인지 확인"- "두 노드가 연결되었는가"- "네트워크" or "사이클" 언급집합 판별, 친구 관계, 사이클 탐지DFS (깊이 우선 탐색)- "모든 경우의 수"- "부분 수열"- "조합", "순열"- "백트래킹"부분집합, 조합, 팀 나누기, 경로 찾기BFS (너비 우선 탐색)- "최단 거리"- "몇 번 만에 도달"- "퍼짐(전염, 불)"- "N초 후 상태"미로 탐색, 전염 확산, 탈출 문제DP (동적 계획법)- "최댓값/최소값 구하기"- "n이 매우 크고 중복 계산 많음"- "피보나치", "방법의 수"계단 오르기, LIS, 배낭 문제, 점화식이분 탐색- "최대/최소 중 조건 ..