Database Select Query
·
Interview/DB
Select Query💡 SELECT 쿼리의 수행 순서테이블 (FROM , ON , JOIN) > 조건, 집계 (WHERE , GROUP BY, HAVING > 컬럼 선택 SELECT > 중복 DIS TINCT > 정렬 ORDER BY > 개수 제한 LIMITFROM각 테이블을 확인한다.ONJOIN 조건을 확인한다.JOINJOIN이 실행되어 데이터가 SET으로 모아지게 된다. 서브쿼리도 함께 포함되어 임시 테이블을 만들 수 있게 도와준다.WHEREWHERE의 조건이 개별 행에 적용된다.GROUP BYWHERE의 조건 적용 후 나머지 행은 GROUP BY절에 지정된 열의 공통 값을 기준으로 그룹화된다. 쿼리에 집계 기능이 있는 경우에만 이 기능을 사용해야 한다.HAVINGGROUP BY절이 쿼리에 있을 ..
Database Commit vs Rollback
·
Interview/DB
Database Commit vs RollbackDB에서 커밋(commit)과 롤백(rollback)은 트랜잭션(transaction) 제어의 중요한 개념입니다. 이 두 개념을 잘 이해하면 데이터의 일관성을 유지하고 오류 발생 시 문제를 최소화할 수 있습니다.1. 트랜잭션(Transaction)트랜잭션은 데이터베이스에서 수행되는 하나의 논리적 작업 단위입니다. 여러 쿼리(INSERT, UPDATE, DELETE 등)를 하나의 묶음으로 실행하고, 모든 쿼리가 성공해야만 최종적으로 데이터베이스에 반영됩니다. 그렇지 않으면 전체 트랜잭션이 취소되어 원래 상태로 되돌아가야 합니다. 트랜잭션의 특징은 ACID라고 불리며, 아래와 같은 속성을 갖습니다.원자성(Atomicity): 트랜잭션 내의 모든 작업이 모두 성..
C언어 Pointer
·
Interview/C
C언어 PointerC 언어에서 포인터(pointer)는 매우 중요한 개념으로, 메모리 주소를 가리키는 변수입니다. 포인터를 이용하면 동적 메모리 할당, 함수 매개변수 전달, 데이터 구조의 효율적인 관리 등이 가능합니다. 아래에서 포인터에 대해 좀 더 자세히 설명드릴게요.포인터는 데이터의 실제 값이 저장된 메모리 주소를 저장하는 변수로 이를 통해 메모리에 직접 접근할 수 있습니다.포인터는 *(dereference) 연산과 &(주소 연산)을 사용해 데이터를 간접적으로 참조하거나, 수정할 수 있습니다.C언어의 포인터1. 포인터의 기본 개념포인터는 변수의 주소를 저장하는 변수입니다. 일반적인 변수는 특정 타입의 데이터를 저장하지만, 포인터는 메모리 상의 주소를 저장합니다. C에서는 메모리 주소를 다루는 것이 ..
C언어 Shift 연산자
·
Interview/C
Shift 연산자https://jeongchul.tistory.com/730 Snowflake ID란 C, C++, Java, GolangSnowflake ID?Snowflake ID는 Twitter에서 개발한 분산 시스템을 위한 고유한 ID 생성 알고리즘입니다.이 방식은 빠르고 효율적으로 중복되지 않는 고유 ID를 대규모 시스템에서 생성할 수 있도록 설계되jeongchul.tistory.com위의 Snow Flake에서 Data center와 Node 그리고 Sequence의 최대 값을 지정하는 코드가 있습니다.MAX_DATA_CENTER_ID: 31MAX_NODE_ID: 31MAX_SEQ: 4095#define DATA_CENTER_BITS 5#define NODE_BITS 5#define SEQ_B..
C언어 Bit & 연산자
·
Interview/C
Bit & 연산자https://jeongchul.tistory.com/730 Snowflake ID란 C, C++, Java, GolangSnowflake ID?Snowflake ID는 Twitter에서 개발한 분산 시스템을 위한 고유한 ID 생성 알고리즘입니다.이 방식은 빠르고 효율적으로 중복되지 않는 고유 ID를 대규모 시스템에서 생성할 수 있도록 설계되jeongchul.tistory.com위의 Snow Flake에서 시퀀스의 최대 값을 4096(12비트)로 값을 0~4095로 고정하는 코드가 있습니다.uint64_t next_id(Snowflake *sf) { uint64_t timestamp = current_time_millis(); if (timestamp == sf->lastTim..
FIFO Queue
·
Interview/Algorithm
FIFO QueueQueue(큐)는 데이터 구조 중 하나로, 먼저 들어간 데이터가 먼저 나오는(FIFO, First-In-First-Out) 방식으로 작동합니다. 큐는 선입선출 구조이기 때문에, 대기열, 작업 스케줄링, 메시지 전달 등 여러 상황에서 유용하게 사용됩니다.큐의 기본 연산은 다음과 같습니다:Enqueue: 큐의 뒤쪽(rear)에 데이터를 추가하는 연산.Dequeue: 큐의 앞쪽(front)에서 데이터를 제거하고 반환하는 연산.Front/Peek: 큐의 가장 앞에 있는 데이터를 반환하되, 큐에서 제거하지 않는 연산.isEmpty: 큐가 비어 있는지 확인하는 연산.큐는 배열 또는 연결 리스트로 구현될 수 있으며, Python에서는 collections 모듈의 deque나 queue 모듈의 Que..
Database에서 ACID
·
Interview/DB
Database에서 ACIDACID는 데이터베이스 트랜잭션의 신뢰성과 무결성을 보장하기 위한 4가지 주요 특성을 나타내는 약어입니다. 트랜잭션은 데이터베이스에서 일어나는 작업의 단위로, 하나의 트랜잭션이 성공하면 그 작업이 영구적으로 반영되고, 실패하면 전체 작업이 취소됩니다. ACID는 이러한 트랜잭션이 안전하게 처리되도록 하는 기본 원칙을 의미합니다.1. ACID의 4가지 특성원자성(Atomicity)원자성은 트랜잭션이 모두 반영되거나 전혀 반영되지 않음을 보장하는 특성입니다. 즉, 트랜잭션 내에서 실행된 작업들이 모두 성공해야 하며, 하나라도 실패하면 전체 트랜잭션이 취소되고, 데이터베이스는 트랜잭션이 실행되기 전 상태로 돌아갑니다.예시: 은행에서 A 계좌에서 B 계좌로 돈을 이체하는 경우, 돈이 ..
DB에서 데이터 무결성
·
Interview/DB
DB에서 데이터 무결성데이터 무결성(Data Integrity)는 데이터베이스 내의 데이터가 정확하고, 일관되며, 신뢰할 수 있는 상태를 유지하도록 보장하는 개념입니다. 데이터 무결성은 데이터의 품질을 유지하고, 데이터베이스의 효율적인 운영을 위해 필수적입니다. 이를 위해 다양한 무결성 제약을 사용하며, 데이터의 저장, 수정, 삭제 등이 이루어질 때에도 데이터의 정확성과 일관성을 유지하는 것이 중요합니다.1. 데이터 무결성데이터 무결성은 크게 세 가지 유형으로 나눌 수 있습니다.개체 무결성(Entity Integrity): 각 테이블의 행을 고유하게 식별할 수 있는 키(예: Primary Key)를 사용하여, 중복되지 않는 고유한 데이터를 보장합니다. 예를 들어, 하나의 레코드가 중복되거나 누락되지 않도..
김 정출
'Interview' 카테고리의 글 목록 (5 Page)