CS 16

인덱스의 정의 및 장단점

[인덱스(index)란]데이터베이스 검색 속도를 높이는데 사용되는 자료구조 이다.인덱스(index)는 책 뒤에 있는 색인 같은 것이다.찾아야 할 내용이 있을 때 색인을 보고 해당 페이지로 가서 원하는 정보를 얻을 수 있다.만약 색인이 없다면 책 첫 페이지부터 마지막 페이지까지 모두 넘겨봐야 한다. 예시 테이블[인덱스 설정에 따른 실행 계획]인덱스가 설정 되어 있지 않는 경우인덱스가 없는 상태에서 데이터를 조회하게 되면 Full Table Scan을 하게 된다. 인덱스가 설정 되어 있는 경우 [인덱스의 관리]인덱스는 항상 최신의 정렬 상태를 유지해야 원하는 값을 빠르게 탐색 할 수 있다.따라서 인덱스가 적용된 컬럼에 변경 작업이 있다면 연산을 추가적으로 해주어야 하므로 이에 따른 오버해드가 발생한다.IN..

트랜잭션이란?

트랜잭션(Transaction)이란?트랜잭션은 하나의 데이터 교환 또는 변경을 안전하게 처리하도록 보장해 주는 것을 의미한다. 한 번의 애플리케이션 로직으로 인해 두 개 이상의 데이터가 영향을 받는 경우, 각각의 데이터에 대한 변경이 완전하게 끝난 후 데이터베이스에 정상적으로 반영하는 것이다. 만약 데이터 처리 중 문제가 발생 시 로직 실행 전으로 되돌리는 기능을 지원한다.데이터베이스에 정상적으로 반영하는 것을 커밋(Commit) , 되돌리는 것을 롤백(Rollback)이라고 한다. 트랜잭션 ACID 속성ACID는 트랜잭션을 정의하는 4가지 중대한 속성을 가리키는 약어입니다.즉 원자성, 일관성, 신뢰성, 격리 그리고 영속성을 의미합니다.원자성(Atomicity)트랜잭션 내에서 실행한 작업들은 마치 하나의..

정규화란?

정규화란? 데이터베이스 정규화는 데이터베이스 내의 데이터 구조를 조직화하고 최적화하는 과정이다.정규화를 하는 목적은 데이터 중복을 제거하고, 효율성을 향상시키며, 데이터 무결성을 보장하기 위함이다. 데이터 정규화에는 다음과 같이 여러 단계가 있다.제1 정규화 (1NF)제2 정규화 (2NF)제3 정규화 (3NF) 이상 종류이상 종류란 정규화를 거치지 않은 데이터에서 발생할 수 있는 현상을 말한다.삽입 이상 (Insertion Anomaly) : 데이터 삽입 시 의도와 다른 값들도 삽입삭제 이상 (Delete Anomaly) : 데이터 삭제 시 의도와 다른 값들도 연쇄 삭제갱신 이상 (Update Anomaly) : 속성값 갱신 시 일부 튜플만 갱신되어 모순 발생제1 정규화 (1NF)데이터베이스의 각 컬럼..

OSI 7계층

✅ OSI 7계층 모델 정리OSI(Open Systems Interconnection) 7계층 모델은 네트워크 통신을 7단계로 나누어 각 단계의 역할을 명확히 한 이론적 모델입니다. 실제 구현보다 개념적으로 많이 사용됩니다.🧱 OSI 7계층 구조계층 번호계층 이름주요 역할예시7계층응용 계층 (Application)사용자에게 네트워크 서비스 제공HTTP, FTP, SMTP, DNS6계층표현 계층 (Presentation)데이터 형식 변환, 암호화/복호화JPEG, MPEG, SSL/TLS5계층세션 계층 (Session)통신 세션 관리, 연결 설정/유지/종료NetBIOS, RPC4계층전송 계층 (Transport)신뢰성 있는 데이터 전송TCP, UDP3계층네트워크 계층 (Network)경로 설정, 논리 주소..

CS/네트워크 2025.06.07

TCP/IP 4계층

✅ TCP/IP 4계층 모델 정리TCP/IP 모델은 네트워크 통신을 위한 4단계 계층 구조로, 실제 인터넷에서 널리 사용됩니다.🧱 TCP/IP 4계층 구조계층이름주요 역할대표 프로토콜4계층응용 계층 (Application Layer)사용자에게 서비스를 제공HTTP, FTP, DNS, SMTP, SSH 등3계층전송 계층 (Transport Layer)송수신 간 데이터의 신뢰성 있는 전송TCP, UDP2계층인터넷 계층 (Internet Layer)IP 주소 기반으로 라우팅 및 패킷 전달IP, ICMP, ARP 등1계층네트워크 인터페이스 계층 (Network Interface Layer)또는 링크 계층실제 장치 간 데이터 전송 (물리 전송 포함)Ethernet, Wi-Fi, MAC 등📌 각 계층 설명 요약..

CS/네트워크 2025.06.07

뮤텍스, 세마포어, 모니터

경쟁상태를 해결하는 대표적인 방법으로는 뮤텍스, 세마포어, 모니터 3가지가 있다.이들은 상호배제, 한정대기, 진행의 융통성의 조건을 만족시키며 경쟁상태를 해결한다.상호 배제(mutual exclusion) : 한 프로세스가 임계 영역에 들어갔을 때 다른 프로세스는 들어갈 수 없음한정 대기(bounded wating) : 특정 프로세스가 임계영역 진입을 요청한 후 해당 요청이 승인되기 전까지 다른 프로세스가 임계 영역에 진입하는 횟수를 제한하는 것을 말하며 이를 통해 특정 프로세스가 영원히 임계 영역에 들어가지 못하게 하는 것을 방지함.진행의 융통성(progress) : 만약 어떠한 프로세스도 임계영역을 사용하지 않는다면 임계영역 외부의 어떠한 프로세스도 들어갈 수 있으며 이 때 프로세스끼리 서로 방해하지..

CS/운영체제 2025.05.29

공유자원과 경쟁상태 그리고 임계영역

✅ 공유 자원 (Shared Resource)여러 스레드나 프로세스가 동시에 사용하려는 자원예: 전역 변수, 파일, 프린터, 메모리 공간 등한 번에 하나만 안전하게 사용해야 함🧠 비유: 한 식당에 포스기(POS기계)가 하나밖에 없다면,직원 여러 명이 그걸 동시에 쓰려고 하면 충돌이 날 수 있어 → 이게 공유 자원이야.✅ 경쟁 상태 (Race Condition)여러 스레드가 동시에 공유 자원에 접근해서, 실행 순서에 따라 결과가 달라지는 문제공유 자원을 제대로 통제하지 않으면 발생결과가 예측 불가, 버그 발생 가능성 ↑🧠 예시:변수 count = 0스레드 A: count++스레드 B: count++→ 동시에 실행되면 결과가 1이 될 수도 있고, 2가 될 수도 있어 → 이게 경쟁 상태야.✅ 임계 영역 (..

CS/운영체제 2025.05.29

멀티프로세싱과 멀티스레딩

✅ 멀티프로세싱 (Multiprocessing)하나의 컴퓨터 시스템에서 여러 개의 프로세스를 동시에 실행하는 방식각 프로세스는 독립된 메모리 공간과 자원을 가지고 실행됨CPU 코어가 여러 개인 환경에서 병렬 처리 가능예: 엑셀, 크롬, 카카오톡을 동시에 실행✅ 멀티스레딩 (Multithreading)하나의 프로세스 내에서 여러 스레드가 동시에 작업을 수행하는 방식모든 스레드는 메모리(Heap) 등 자원을 공유하나의 프로그램에서 동시에 여러 작업을 수행예: 게임에서 그래픽 렌더링 + 배경음악 + 사용자 입력 처리🧠 개념 요약구분멀티프로세싱 (Multiprocessing)멀티스레딩 (Multithreading)💡 정의여러 개의 프로세스를 동시에 실행하나의 프로세스 안에서 여러 스레드를 동시에 실행🧱 구..

CS/운영체제 2025.05.29

PCB와 컨텍스트 스위칭(context switching)

✅ PCB (Process Control Block, 프로세스 제어 블록)운영체제가 각 프로세스를 관리하기 위해 저장해 놓는 정보 묶음이야.하나의 프로세스는 하나의 PCB를 갖고 있어.운영체제가 이 PCB를 보고 어떤 프로세스인지 파악하고, 실행 시킬 수 있어.📌 PCB에 저장되는 주요 정보:항목설명프로세스 상태실행 중, 준비 상태, 대기 상태 등프로그램 카운터다음에 실행할 명령어 주소CPU 레지스터 값중단된 시점의 레지스터 정보메모리 정보프로세스에 할당된 메모리 위치프로세스 식별자(PID)고유한 번호스케줄링 정보우선순위, 스케줄링 큐 등 ✅ 컨텍스트 스위칭 (Context Switching)CPU가 현재 실행 중인 프로세스를 멈추고, 다른 프로세스로 전환할 때 발생하는 과정이야.이때 PCB가 아주 중..

CS/운영체제 2025.05.29

프로세스 메모리 구조

프로세스란?사람이 컴퓨터를 키고 리그 오브 레전드 라는 게임 실행파일을 실행하면 OS(운영체제)의 커널이 동작을 시작하드디스크에 저장된 프로그램을 메모리(RAM)에 적재한다 - (코드, 데이터, 스택, 힙 등 메모리 영역에 배치)OS(커널)가 해당 코드의 첫 명령어를 fetch(가져오기)를 실행하면 그 순간 프로그램이 실행되면서 프로세스로 변환한다즉 프로세스란 실행중인 프로그램이라고 생각하면 쉽다.그 후 여러 프로세스가 실행이 되면 스케줄러가 효율적으로 어떠한 프로세스를 실행할 지 우선순위를 결정하여 하나의 CPU가 컨텍스트 스위칭을 사용하여 동시성을 갖추게 할 수 있게 해준다.메모리 구조운영체제는 프로세스에 적절한 메모리를 할당하는데 다음 구조를 기반으로 할당한다.위에서부터 스택(stack), 힙(he..

CS/운영체제 2025.05.29