정보처리기사43 자료구조 - 그래프 탐색 그래프 (BFS, DFS, 인접리스트)트리는 그래프의 특수한 형태(사이클 없음 + 단일 부모)였다면, 그래프는 그 제약을 모두 풀어 노드들이 임의의 방식으로 연결될 수 있는 가장 일반적인 자료구조이다. 도로망·SNS 인맥·웹 페이지의 하이퍼링크·전력망·항공 노선·통신 토폴로지·게임 맵까지, 현실 세계의 거의 모든 네트워크가 그래프로 모델링된다. 그래프 위에서 동작하는 탐색 알고리즘 BFS·DFS는 이후 등장하는 거의 모든 그래프 알고리즘(최단 경로·최소 신장 트리·위상 정렬 등)의 토대가 되며, 그 위에서 다익스트라·크루스칼·프림 같은 고급 알고리즘이 얹어진다. 본 글은 그래프의 정의·표현 방법·탐색 알고리즘을 세심하게 정리한다(출처: 위키백과 — Graph (abstract data type)). 제가.. 2026. 5. 16. 자료구조 - 힙과 우선순위큐 힙 자료구조 (우선순위큐, 정렬, 다익스트라)이진 트리 위에 정렬 규칙을 얹으면 BST가 되고, 그와는 또 다른 규칙(부모가 자식보다 항상 크다 또는 작다)을 얹으면 힙(Heap)이 된다. 힙은 BST와는 완전히 다른 사용 시나리오를 가지는데, 임의 키 검색이 아니라 최댓값 또는 최솟값을 반복적으로 꺼내는 작업에 특화되어 있다. 이 단순한 규칙 하나로 힙은 우선순위 큐의 표준 구현체, 힙 정렬의 핵심 도구, 다익스트라 최단 경로의 가속기 역할을 동시에 수행한다. 본 글은 힙의 정의·연산·시간복잡도부터 우선순위 큐와 실전 응용까지 세심하게 정리한다(출처: 위키백과 — Heap (data structure)). 제가 학교 알고리즘 수업에서 다익스트라 알고리즘을 처음 배우며 가장 충격이었던 게 우선순위 큐 한.. 2026. 5. 16. 격리 수준 동시성 제어 격리 수준 (락, MVCC, 동시성)같은 데이터를 여러 트랜잭션이 동시에 읽고 쓰면 결과가 어긋날 수 있다. 이 문제를 다루는 영역이 동시성 제어(Concurrency Control)이며, ANSI SQL은 네 가지 격리 수준(Isolation Level)을 표준화해 어떤 종류의 이상 현상을 허용할지 골라 쓸 수 있게 했다. 본 글은 동시성 이상 현상 3종·ANSI 격리 수준 4단계·락 기반 vs MVCC 기반 동시성 제어를 세심하게 정리한다(출처: 위키백과 — Isolation (database systems)). 제가 학교 캡스톤에서 쿠폰 사용 처리를 기본 격리 수준(MySQL의 REPEATABLE READ)으로 두었다가 같은 쿠폰이 두 번 사용된 데이터가 끼어 있던 사고를 겪고 나서야 "기본 격리 .. 2026. 5. 15. DB - 트랜잭션 ACID 트랜잭션 (ACID, 커밋, 로그)데이터베이스가 "신뢰할 수 있는 저장소"인 이유는 트랜잭션(Transaction)과 ACID 속성이 받쳐 주기 때문이다. 송금 한 번이 중간에 끊겨도 돈이 사라지지 않고, 동시에 1만 명이 같은 좌석을 예약해도 한 사람만 성공한다. 이 모든 보장의 토대가 트랜잭션 메커니즘이다. 본 글은 트랜잭션의 정의·ACID 4대 속성·트랜잭션 상태 다이어그램·WAL(Write-Ahead Logging) 기반 복구 메커니즘을 세심하게 정리한다(출처: 위키백과 — ACID). 제가 학교 캡스톤에서 결제 처리 코드를 트랜잭션 없이 UPDATE balance ... ; INSERT INTO ledger ... 두 줄로 짰다가 한 줄만 성공한 상태에서 서버가 죽어 잔액과 장부가 어긋나는 사고.. 2026. 5. 15. DB - 인덱스 쿼리 최적화 인덱스 (B-Tree, 쿼리, 옵티마이저)데이터베이스의 응답 시간은 거의 항상 인덱스(Index) 설계가 좌우한다. 같은 쿼리도 인덱스가 있을 때와 없을 때 1000배 이상 차이가 나고, 같은 인덱스도 컬럼 순서·타입에 따라 사용되거나 무시된다. 본 글은 인덱스의 핵심 자료구조(B-Tree·B+Tree·Hash·Bitmap), 쿼리 옵티마이저의 동작 원리, 그리고 EXPLAIN으로 실행 계획을 분석해 인덱스를 진단하는 실전 절차를 세심하게 정리한다(출처: 위키백과 — Database index). 제가 학교 캡스톤에서 사용자 검색 화면이 30초 걸리던 쿼리에 복합 인덱스 하나를 추가하자 30ms로 떨어진 모습을 본 후로는 "DB 튜닝의 90%는 인덱스 설계와 EXPLAIN 읽기"라는 사실을 손끝으로 받아.. 2026. 5. 15. 자료구조 - BST와 균형트리 BST 균형트리 (AVL, RB, 자료구조)이진 트리 위에 "왼쪽은 작은 값, 오른쪽은 큰 값"이라는 단 한 줄의 정렬 규칙을 얹으면 곧바로 이진 탐색 트리(BST)가 된다. 이 한 규칙 덕분에 평균 O(log n) 시간에 탐색·삽입·삭제가 가능해지며, 자료구조 학습에서 처음 만나는 진짜 "실용적인" 트리이기도 하다. 다만 BST에는 결정적인 약점이 있는데, 데이터가 정렬된 순서로 들어오면 한쪽으로 편향되어 O(n)으로 떨어진다는 점이다. 이 약점을 해결하기 위해 등장한 것이 균형 트리(Balanced Tree)이며, 대표적으로 AVL 트리와 Red-Black(RB) 트리가 있다. 본 글은 BST의 정의·연산·시간복잡도부터 두 균형 트리의 차이까지 세심하게 정리한다(출처: 위키백과 — Binary Sea.. 2026. 5. 15. 이전 1 2 3 4 5 6 7 8 다음