목록CS지식 (30)
변수의 기록
**SQL (Structured Query Language)**는 관계형 데이터베이스를 조작하고 정의하기 위한 표준화된 언어입니다.SQL의 구성 요소SQL은 단순한 조회 언어가 아닌, 다음 세 가지 기능을 포괄하는 종합적인 데이터베이스 언어입니다:DDL (Data Definition Language): 테이블, 인덱스, 제약조건 등 정의 (e.g. CREATE, ALTER)DML (Data Manipulation Language): 데이터 조작 (e.g. SELECT, INSERT, UPDATE, DELETE)VDL (View Definition Language): 뷰 정의💡 실제 구현은 각 RDBMS 벤더에 따라 차이가 있으며, Oracle, MySQL, PostgreSQL 등마다 SQL 구문 세부사..

관계형 데이터 모델 (Relational Data Model) 정리관계형 데이터 모델은 1970년 Edgar F. Codd가 제안한 데이터베이스 모델로, 현재 대부분의 데이터베이스 시스템이 채택하고 있는 구조이다. 이 모델은 수학의 관계(Relation) 개념을 기반으로 하며, 데이터를 테이블(릴레이션) 형태로 표현한다. 1. 수학에서의 Relation 개념수학적으로 관계(Relation)는 **카르테지안 곱(Cartesian Product)**의 부분집합이다.즉, 여러 도메인(Domain, 속성의 값 집합)의 곱에서 특정 조건을 만족하는 튜플들의 집합.Relation ⊆ Domain1 × Domain2 × ... × DomainN 2. 릴레이션(Relation)의 구성 요소🔹 도메인(Domain)하나..

데이터베이스 시스템의 기본 개념 정리1. 데이터베이스(Database, DB)전자적으로 저장되고 사용하는 관련 있는 데이터들의 조직화된 집합.단순한 데이터의 집합이 아니라, 구조화되고 목적에 맞게 조직된 정보임.예시: 회원 정보, 주문 내역, 게시글 등.2. 데이터베이스 관리 시스템(DBMS: Database Management System)데이터베이스를 생성, 저장, 관리, 접근하도록 도와주는 소프트웨어 시스템.주요 역할: 데이터의 무결성, 보안성, 동시성 제어, 장애 복구 등.대표적인 DBMS:관계형: Oracle, MySQL, PostgreSQL, MS SQL ServerNoSQL: MongoDB, Cassandra, Redis3. 데이터베이스 시스템(Database System)DB + DBMS ..
백트래킹(Backtracking) vs 시뮬레이션(Simulation) 문제 정리1. 백트래킹 (Backtracking)✅ 개념백트래킹은 해를 찾기 위해 가능한 모든 경우의 수를 탐색하되,불필요한 경로(조건 위반)가 감지되면 탐색을 중단하고 이전 단계로 돌아가는 방식이다.즉, "완전 탐색 + 가지치기" 전략.✅ 언제 사용하는가?모든 경우의 수를 탐색해야 하는 문제조합, 순열, 부분 집합, 경로 찾기 등의 문제에서 유용for문으로는 해결이 불가능한, 깊이가 달라지는 문제 구조✅ 전형적인 예시 문제N과 M (순열, 조합)모든 연산자 끼워넣기퀸 문제(N-Queen)최소 비용 경로 탐색스도쿠✅ 시간 복잡도 기준 경우의 수 조건 시간 복잡도현실적으로 가능한 N중복 허용N ≤ 7~8 수준중복 불허N ≤ 10 수준..
Dynamic Programming (DP) 개념 정리1. Optimization Problem이란?Optimization Problem은 가능한 해답 중에서 **가장 최적의 해(solution)**를 찾는 문제입니다.“최적”이란 일반적으로 최대값(Maximum) 또는 **최소값(Minimum)**을 의미합니다.예시:가장 적은 비용으로 목적지에 도달하는 경로최대 수익을 내는 주식 거래 시점최소 동전 개수로 거스름돈 만들기✅ 하나의 문제에 대해 하나 이상의 최적 해가 존재할 수도 있음.2. Dynamic Programming(DP)이란?Dynamic Programming은 최적화 문제를 효율적으로 해결하는 알고리즘 설계 기법입니다.핵심 아이디어큰 문제를 작은 하위 문제들로 나누고작은 문제들의 정답을 이용해..

Divide and Conquer (분할 정복) 전략개념 정리**Divide and Conquer(분할 정복)**는 컴퓨터 과학에서 널리 사용되는 문제 해결 전략 중 하나로, 다음 세 단계로 이루어져 있습니다:Divide (분할)주어진 문제를 **더 작고 유사한 하위 문제들(sub-problems)**로 나눈다.각 서브 문제는 원래 문제와 구조적으로 유사하며, 전체 문제를 분해하여 해결 가능하도록 만든다.Conquer (정복)나눠진 서브 문제들을 재귀적으로 해결한다.더 이상 나눌 수 없을 정도로 작은 문제(기저 조건 base case)는 직접 해결한다.Combine (통합)해결된 서브 문제들의 결과를 합쳐서 전체 문제의 해답을 구성한다.주요 특징재귀 호출을 기반으로 하며, 하향식(top-down) 방식의..

레드-블랙 트리의 삭제 동작 방식과 시간복잡도레드-블랙 트리(Red-Black Tree)는 삽입보다 삭제가 더 복잡한 구조적 조정을 필요로 한다.이는 트리의 속성(#2~#5)이 깨질 가능성이 높기 때문이며,특히 Black 노드가 삭제되는 경우 트리의 균형이 크게 영향을 받는다. 참고 (레드-블랙 트리의 5가지 주요 속성)모든 노드는 Red 또는 Black이다.루트 노드는 항상 Black이다.모든 leaf 노드(NIL 노드)는 Black이다.실제 값이 없는 NIL 노드는 트리의 균형 계산에 사용됨.Red 노드의 자식은 모두 Black이다.즉, Red 노드가 연속적으로 나타날 수 없다.임의의 노드에서 그 자손인 모든 NIL 노드로 가는 경로에는 같은 수의 Black 노드가 있다.이를 Black Height라..

레드-블랙 트리(Red-Black Tree) 개념과 속성 정리레드-블랙 트리는 자기 균형 이진 탐색 트리(Self-balancing BST) 의 일종이다. 일반 이진 탐색 트리(BST)는 삽입 순서에 따라 한쪽으로 편향될 수 있는데, 레드-블랙 트리는 특정 규칙을 통해 항상 트리의 높이를 O(log N) 수준으로 유지함으로써 검색, 삽입, 삭제 연산을 효율적으로 만든다.✅ 기본 개념이진 탐색 트리(BST)의 변형으로, 추가적인 색상 속성을 가지는 트리.모든 노드는 Red 또는 Black 색을 가짐.자체적으로 균형을 유지하여, 최악의 경우에도 탐색 시간이 O(log N)을 보장함.✅ 레드-블랙 트리의 5가지 주요 속성모든 노드는 Red 또는 Black이다.루트 노드는 항상 Black이다.모든 leaf 노드..