본문 바로가기

전체 글102

Ch5. 자료 구조 - 알고리즘 문제 유형별 자료구조 정리 (번외) 1️⃣ 그래프 탐색 유형 (BFS / DFS)연결된 구조를 탐색하는 문제노드와 간선으로 이루어진 구조 탐색특정 노드에서 다른 노드로 이동🚨 키워드“최단 거리” / “몇 번 만에 도달” / “미로” / “연결된” / “방문”👉 판단최단 거리 + 가중치 없음 → BFS모든 경우 탐색 → DFS✔️ 사용하는 자료구조BFS → 큐 (Queue)DFS → 스택 / 재귀✔️ 왜 사용할까?BFS → 가까운 노드부터 탐색 → 최단 거리 보장DFS → 깊게 탐색 → 모든 경우 탐색 가능✔️ 대표 문제 유형미로 찾기연결 요소 개수최단 거리 (가중치 없음) 2️⃣ 최단 경로 / 가중치 그래프비용이 있는 경로 중 최적을 찾는 문제 각 경로에 비용(가중치)이 존재시작점에서 특정 노드까지의 최단 거리 구하🚨 .. 2026. 4. 5.
Ch4. 데이터베이스 - 캐시와 Redis (번외) Redis란?다양한 자료구조를 지원하는 인메모리 기반의 Key-Value 데이터 저장소📌 캐시 서버를 사용하는 이유🤔 데이터베이스가 있음에도 불구하고, 왜 Redis와 같은 인메모리 데이터 저장소를 사용할까?1️⃣ 데이터베이스의 한계데이터베이스는 데이터를 디스크에 저장하기 때문에 서버가 다운되더라도 데이터가 안전하게 보존된다는 장점이 있다.하지만 이 구조는 단점도 존재한다.매 요청마다 디스크 I/O 발생사용자 증가 시 응답 속도 저하트래픽 증가 시 DB 부하 급증사용자가 많아질수록 성능 병목이 발생할 수 있다! 2️⃣ 캐시 서버(Cache Server)의 역할이 문제를 해결하기 위해 등장한 것이 캐시 서버다.캐시는 자주 조회되는 데이터를 미리 저장해두는 공간이다. 동작 방식은 다음과 같다.첫 요청 →.. 2026. 4. 5.
Ch4. 데이터베이스 (5) 조인이란?조인(Join)은 둘 이상의 테이블에 흩어져 있는 데이터를 공통된 기준 컬럼을 통해 하나의 결과로 합쳐 조회하는 연산이다. 관계형 데이터베이스에서는 데이터를 중복 없이 관리하기 위해 보통 테이블을 나누어 저장한다. 예를 들어,회원 정보는 users 테이블주문 정보는 orders 테이블이렇게 분리해두면 중복은 줄어들지만, 실제 서비스에서는 어떤 회원이 어떤 주문을 했는지 함께 조회해야 하는 경우가 많다.이때 사용하는 것이 조인이다.즉, 조인은 정규화로 나뉜 데이터를 다시 필요한 형태로 결합해서 조회하는 방법이라고 볼 수 있다. 왜 조인이 필요할까?예를 들어 쇼핑몰에서 주문 목록을 보여줄 때 단순히 주문 번호만 보여주는 것이 아니라,주문 번호주문자 이름상품명결제 상태등을 함께 보여줘야 한다. 이 정.. 2026. 3. 20.
Ch4. 데이터베이스 (4) 인덱스(Index)는 데이터베이스에서 조회 성능을 높이기 위해 특정 컬럼의 값을 정렬된 자료구조로 따로 저장해두는 것왜 필요한가?데이터가 많아질수록 조회 성능은 급격히 떨어진다.👉 인덱스 없이 조회하면테이블 전체를 순차 탐색 (Full Table Scan) 해야 한다. 결국 검색 비용을 줄이기 위해서! 1️⃣ B-TreeB-Tree는 데이터베이스 인덱스에서 사용하는 대표적인 트리 구조이다.👉 특징: 정렬된 상태로 데이터를 유지하는 균형 트리항상 균형 유지 (Balanced Tree)탐색 시간: O(log N)범위 검색에 유리삽입/삭제 시에도 성능 유지하나의 노드에 여러 키를 저장 [30] / \ [10,20] [40,50] 트리의 높이를 최대한 낮게 유지해 탐색 성능.. 2026. 3. 20.