2026/02/10 5

📚 [1일 1CS] DB가 1억 개의 데이터에서 0.1초 만에 찾는 비결: B-Tree (인덱스)

📚 [1일 1CS] DB가 1억 개의 데이터에서 0.1초 만에 찾는 비결: B-Tree (인덱스)1. BST의 실패: "너무 키가 크면 힘들다"지난 시간에 배운 이진 탐색 트리(BST)는 자식을 최대 2개만 가질 수 있죠. 그런데 데이터가 수백만, 수천만 개가 되면 트리의 높이가 엄청나게 커집니다.문제점: 컴퓨터에서 트리의 노드 하나를 읽는다는 건, 사실상 하드디스크(Disk)를 한 번 읽는 것과 같습니다.비유: 도서관 100층 꼭대기까지 계단으로 올라가서 책을 찾아야 하는 상황. 디스크 I/O가 너무 많이 발생하는 셈입니다.2. 해결사: B-Tree (Balanced Tree)그래서 컴퓨터 과학자들은 이렇게 생각했습니다."층수를 낮추자! 대신 한 층에 책을 더 많이 꽂자!"B-Tree는 하나의 노드에..

🌳 [1일 1CS] 폴더 정리의 기술: 트리(Tree)와 이진 탐색 트리(BST)

🌳 [1일 1CS] 폴더 정리의 기술: 트리(Tree)와 이진 탐색 트리(BST)1. 트리(Tree)란 무엇인가?트리라는 이름 그대로, 나무를 뒤집어 놓은 모양을 떠올리면 됩니다. 가장 위의 뿌리(Root)에서 시작해서 가지(Branch)를 치며 아래로 뻗어 나가는 구조죠.가장 완벽한 예시는 여러분 컴퓨터의 파일 탐색기(폴더 구조)입니다.C드라이브 (뿌리)Program Files (가지)Users (가지)Documents (잎)Downloads (잎)이처럼 트리는 계층 구조를 표현하는 데 아주 적합합니다.🌿 핵심 용어 정리루트(Root): 가장 꼭대기에 있는 시작점 노드 (예: C드라이브)노드(Node): 트리를 구성하는 각각의 데이터 알갱이 (폴더 하나하나)간선(Edge): 노드와 노드를 연결하는 ..

📝 [1일1CS] 이진 탐색(Binary Search) & Big-O 정리

📝 이진 탐색(Binary Search) & Big-O 정리1. 탐색 방법선형 탐색 (Linear Search)데이터 N개를 하나씩 확인 → 최악의 경우 O(N)예: 정렬되지 않은 책장에서 원하는 책 찾기이진 탐색 (Binary Search)정렬된 데이터에서 반씩 줄여가며 탐색 → O(log N)예: 업다운 게임처럼 중간값을 기준으로 범위를 절반씩 줄여감2. Big-O 표기법 (시간 복잡도)데이터가 많아질 때 실행 시간이 얼마나 늘어나는지 나타내는 척도. 표기법이름설명예시O(1)상수 시간데이터 크기와 무관배열 첫 값 가져오기O(log N)로그 시간반씩 줄여가며 탐색이진 탐색O(N)선형 시간데이터 개수만큼 확인for문 한 번 돌기O(N log N)선형 로그N × log N효율적 정렬 (Quick Sort..

🧹 [1일 1CS] 다 먹은 그릇은 누가 치우나? 가비지 컬렉션(GC)

🧹 [1일 1CS] 다 먹은 그릇은 누가 치우나? 가비지 컬렉션(GC)안녕하세요! 오늘은 프로그래밍에서 꼭 알아야 할 개념, 가비지 컬렉션(Garbage Collection, GC) 이야기를 해보려 합니다.밥을 먹고 난 뒤 그릇은 누가 치울까요? 바로 GC가 그 역할을 합니다.1. 메모리 관리의 두 가지 방식우리가 코드를 짤 때 변수를 선언하거나 객체를 만들면(new Object()), 컴퓨터의 메모리(RAM) 공간을 차지하게 됩니다. 그런데 이 공간은 무한하지 않죠. 다 쓰고 나면 반드시 비워줘야 합니다.① 수동 관리 (C, C++) : "자급자족 시스템"방식: 개발자가 malloc()으로 메모리를 빌리고, 다 쓰면 free()로 직접 반납해야 합니다.비유: 식당에서 밥을 먹고 손님이 직접 설거지까지..