본문 바로가기

CS19

[데이터베이스] DBMS와 옵티마이저 MySQL 기준 사용할 땐 하더라도 내부 엔진을 알고 사용하자클라이언트-서버 아키텍처 클라이언트 층 서버에 명령, GUI Connection Handling : 클라이언트가 서버에 접속하면 연결을 클라이언트는 위한 스레드를 얻음 Authentication : Mysql에 연결할 때 서버쪽에서 수행, username과 password로 인증 Security : 서버와 연결된 후 특정 사용자에게 쿼리 권한이 있는지 확인 서버 층 (a.k.a “Brain of MySQL Architecture”) RDB의 논리적인 기능을 책임짐 Thread Handling : 연결된 클라이언트가 스레드를 할당받을 때 그 스레드를 제공, 스레드로 실행되는 클라이언트 쿼리들을 핸들링 Parser : SQL을 분석해 문법 검사, .. 2023. 8. 20.
[데이터베이스] 트랜잭션과 ACID 성질 데이터베이스의 상태를 변화시키는 하나의 논리적인 작업 단위, 하나의 트랜잭션은 Commit 또는 Rollback 된다. ACID 데이터의 무결성과 안정성을 보장하기 위해 트랜잭션이 지녀야 하는 성질! Atomicity 원자성 : All or Nothing 트랜잭션 결과가 데이터베이스에 모두 반영되거나 반영되지 않아야 하는 성질 Consistency 일관성 : 트랜잭션 수행 전후 데이터베이스는 일관된 상태를 가져야 하는 성질 Isolation 독립성 : 모든 트랜잭션은 다른 트랜잭션부터 독립되야 하는 성질 Durability 영속성 : 트랜잭션이 성공적으로 수행되었다면 그 결과는 영구적으로 기록되는 성질 永續性 영속성 : 영원히 지속되는 성질이나 능력 無缺性 무결성 : 데이터의 정보가 변경되거나 오염되지 .. 2023. 8. 19.
[서평 23년-23] 면접을 위한 CS 전공지식노트 독서기간_2023년 4월~5월 저자_주홍철 출간일_2022년 4월 28일 그냥 무난하게 CS 압축해서 공부할 수 있는 책이다. 엄청난 전공 지식이 들어있지 않고(책도 얇다), 구어체로 쓰여있어 편하게 읽을 수 있다. 초보자에겐 길잡이가 되고 상급자에겐 지식 검증할 수 있는 책이 된다. 면준하기 위해 내돈내산 했다. 돈 아깝다 2023. 5. 24.
[네트워크] TCP와 UDP 네트워크 기본 중 기본! OSI 4계층의 TCP와 UDP 프로토콜을 알아보자. TCP TCP(Transmission Control Protocol)와 UDP의 가장 차이점은 '연결' 아닐까! TCP는 연결 지향성이다. 한 번 연결을 하면 양방향으로 통신할 수 있다는 것을 의미한다. 또한 TCP는 흐름 제어, 에러 제어, 혼잡 제어 같은 기능을 제공한다. 연결 오버헤드와 순차성 제어를 위해 속도가 느리다. 연결 지향성이다. 연결 후 양방향 통신 흐름제어, 에러제어, 혼잡제어 기능 제공 흐름제어 : 송신측과 수신측 사이 데이터 처리 속도 차이로 인해 수신측의 버퍼가 오버플로우 나지 않도록 제어하기 위한 기능이다. 전송량 > 수신량일 경우 전송율을 낮춘다. stop and wait 방식 sliding wind.. 2023. 5. 16.
[알고리즘] 해시 충돌 해결 방법 | Hash Collision Seperate Chaining 추가적인 공간을 활용해 충돌을 해결한다. seperate 뜻에 맞게 Linked-List를 사용한다. 보통 헤드에 삽입한다. (테일에 삽입하면 테일까지 가는 시간이 걸리기 때문) 최악의 경우 하나의 해시에 데이터가 몰리면, 조회할 때 Linked-list를 탐색하는 시간이 걸리게 된다. Open Addressing Linear Probing 해시 충돌 발생 시 충돌이 발생하지 않을 때까지 해시를 linear 하게 탐색한다. 단, clustering 군집현상이 발생할 수 있다. Quadratic Probing 충돌 발생 시 해싱 함수에 특정 연산을 더해 새로운 해시를 제작한다. 보통 제곱연산을 쓰는데 추가적인 상수곱이나 제곱연산이 가능하다. 사진을 예시로 3번째 값 hf_q.. 2023. 5. 3.
[운영체제] 페이징과 외부 단편화, 내부 단편화 스와핑 메모리에 적재된 프로세스가 잠시 저장공간(SSD, HDD)에 물러났다가 다시 메모리로 적재되는 작업 가상 메모리를 이해하기 위한 약간의 지식 초기 메모리 관리법 MMU(Memory Management Unit)라는 논리 주소를 물리 주소로 변환하는 CPU 안의 장치를 이용해 메모리에 접근했다. (논리주소/물리주소에 자세히 알고 싶으면 아래 링크 참조) [운영체제 OS]Address Binding 주소 할당, 주소 바인딩, 논리적 주소(logical) vs 물리적 주소(physical), 컴 [운영체제 목차] 안녕하세요~!! ㅎㅎㅎ 메모리 관련 문의글이 많아, 가장 기초적인 주소 할당부터, 그 종류, 페이징, 캐시메모리...쪽을 한번 먼저 쭉 다뤄볼까해요 ㅎㅎ 요새 기다려주시는 사람 jhnyang... 2023. 5. 2.
[운영체제] 교착상태와 은행원 알고리즘 교착상태 Dead Lock 프로세스들이 서로의 자원을 기다리며 무한히 기다리는 현상이다. 아래 4개 조건이 성립할 때 교착상태가 발생한다. 비선점 Non-Preemption : 자원을 선점하지 않음 환형대기 Circular Wait : 원형으로 꼬리물기처럼 대기 중 상호배제 Mutual Exclusion : 자원은 하나의 프로세스만 점유 가능 점유 대기 Hold and Wait : 자원을 점유하고 있으면서 추가로 다른 자원을 기다리고 있는 상태 교착상태 처리하기 예방 Prevention 상호배제 부정 : 여러 프로세스가 공유 자원 사용 점유대기 부정 : 프로세스 실행전 모든 자원을 할당 비선점 부정 : 자원 점유 중인 프로세스가 다른 자원을 요구할 때 가진 자원 반납 순환대기 부정 : 자원에 고유번호 할.. 2023. 5. 1.
[운영체제] 세마포어와 뮤텍스 공유된 자원에 여러 프로세스가 동시에 접근하면 문제가 발생할 수 있다. 이러한 문제를 제한하기 위해 고안된 방법이 세마포어와 뮤텍스이다. 이때 각 프로세스가 접근하는 공유 데이터 부분을 임계 구역(Critical Section)이라고 한다. 세마포어: 멀티 프로세스 환경에서 공유 자원에 대한 접근을 제한하는 방법 뮤텍스: 임계 구역을 가진 스레드들의 실행시간이 서로 겹치지 않고 각각 단독으로 실행되게 하는 기술 상호배제(Mutual Exclusion)의 약자이다. 뮤텍스보다 세마포어가 좀 더 상위 개념이다. 세마포어의 P, V연산 P연산: 임계 구역에 들어가기 전 수행 (프로세스 진입 여부를 자원의 개수 S를 통해 결정) V연산: 임계 구역에서 나올 때 수행 (자원 반납 알림, 대기 중인 프로세스를 깨우.. 2023. 4. 22.