전체 글(567)
-
DBMS가 복잡해지는 이유 | 다양한 기능
DBMS가 복잡해지는 이유에 대한 상세 설명 (Oracle 아키텍처와 관련하여)Oracle과 같은 DBMS는 단순히 데이터를 저장하고 조회하는 기능뿐만 아니라, 데이터 무결성, 동시성 제어, 고가용성, 성능 최적화를 모두 만족해야 하기 때문에 내부 구조가 매우 복잡해진다.1. 동시성 제어와 Lock 메커니즘Oracle DBMS는 다수의 사용자(세션)가 동시에 데이터를 읽고 쓰는 상황을 처리 한다.문제점: 여러 트랜잭션이 동시에 같은 데이터에 접근할 경우, 충돌(경쟁 상태)이 발생할 수 있다. 이를 해결하지 않으면 데이터의 일관성(Consistency)과 정합성(Correctness)이 깨진다.해결 방안: 이를 방지하기 위해 Lock을 사용한다. Lock은 데이터에 대해 하나의 트랜잭션이 작업하는 동안 다..
2025.01.11 -
언두 데이터의 읽기 일관성
언두 데이터의 읽기 일관성 제공1. 읽기 일관성(READ CONSISTENCY) 개념DBMS는 다중 사용자 환경에서 동시에 여러 사용자가 데이터를 읽고 쓸 수 있도록 지원해야 한다. 하지만, 특정 사용자가 데이터를 변경하는 동안 다른 사용자가 해당 데이터를 조회할 때 변경 중인 데이터를 읽지 않고 변경 이전의 상태를 보도록 보장해야 한다. 이를 읽기 일관성(READ CONSISTENCY)이라고 하며, 데이터의 무결성을 유지하는 중요한 개념이다.예를 들어:사용자 A가 테이블의 특정 데이터를 변경 중이고 아직 커밋(commit)하지 않았다면,사용자 B가 같은 데이터를 조회할 때 사용자 A의 변경 사항이 적용되지 않은 원래의 데이터를 봐야 한다.이때, 언두 데이터(UNDO DATA)가 사용된다.2. 언두 데이..
2025.01.11 -
오라클 사용법
1. 병렬 처리 (Parallel Processing)오라클에서 병렬 처리(parallel processing)는 데이터를 동시에 여러 스레드나 프로세스를 통해 처리하여 성능을 향상시키는 방법으로 대규모 데이터베이스에서는 병렬 처리가 성능을 크게 향상시킬 수 있다.병렬 처리 설정 관련 파라미터:parallel_max_servers: 병렬 처리를 사용할 수 있는 최대 서버 프로세스 수를 설정한다.parallel_min_servers: 병렬 처리를 위해 최소로 필요한 서버 프로세스 수를 설정한다.parallel_degree_policy: 병렬 처리 정책을 설정한다. AUTO로 설정하면 오라클이 자동으로 병렬 처리 정도를 결정한다.parallel_degree_limit: 병렬 처리 시 최대 병렬 처리 정도를 ..
2025.01.11 -
카톡 오픈채팅방 입출기록
record = ["Enter uid1234 Muzi", "Enter uid4567 Prodo", "Leave uid1234", "Enter uid1234 Muzi", "Change uid4567 Ryan"]print(solution(record))def solution(record): answer = [] trace = [] Map = {} # 입력된 record에서 사용자 이벤트 처리 for r in record: temp = r.split(' ') if temp[0] == 'Enter': Map[temp[1]] = temp[2] # 사용자 ID와 이름을 저장 trace.append([temp[..
2025.01.11 -
와일드카드 마스크(wildcard mask)
와일드카드 마스크(wildcard mask)는 ACL(Access Control List) 설정에서 주로 사용되는 개념 와일드카드 마스크는 서브넷 마스크와 비슷하지만, 목적은 네트워크 주소 범위나 특정 IP 주소를 매칭할 때 유연성을 주는 것이다. 와일드카드 마스크의 기본 개념서브넷 마스크는 네트워크 주소와 호스트 주소를 구분하는 데 사용되는 비트 마스크이고 와일드카드 마스크는 IP 주소와 일치하는 부분과 일치하지 않는 부분을 정의하는 데 사용된다. 이 마스크는 0은 일치하고, 1은 일치하지 않는 부분을 나타낸다.와일드카드 마스크 예시:서브넷 마스크: 255.255.255.0 → 8비트씩 3개의 부분이 네트워크 주소로, 나머지 8비트는 호스트 주소로 사용된다.와일드카드 마스크: 0.0.0.255 → 이 ..
2025.01.10 -
gcc(GNU Compiler Collection)를 사용하여 C/C++ 소스 코드를 컴파일하는 과정
1. 전처리기 (Preprocessor)역할: 전처리기는 소스 코드에서 #include, #define, #ifdef 등의 전처리 지시자를 처리한다.처리 과정:헤더 파일 포함: #include 지시자를 통해 필요한 헤더 파일을 코드에 삽입한다.매크로 확장: #define으로 정의된 매크로를 실제 값으로 대체한다.출력 파일: 이 과정 후의 출력 파일은 .i(C 소스의 경우)나 .ii(C++ 소스의 경우) 파일이다.gcc -E source.c # 전처리 과정만 수행2. 컴파일러 (Compiler)역할: 컴파일러는 전처리된 코드(.i 파일)를 받아서 어셈블리 언어로 변환한다.처리 과정: 인간이 이해할 수 있는 고급 언어(C/C++)를 기계가 이해할 수 있는 저급 언어인 어셈블리어로 변환한다.출력 파일: 컴파..
2025.01.05