본문 바로가기

cs13

[DB] Lock을 활용한 Concurrency Control 기법 다시 돌아온 CS 공부하는 주디! 블로그 포스팅 스터디를 하고 있지만 이미 벌금 12000원을 납부한 그녀.. 🤖 : 야 너 취업하더니 의지가 다 어디 갔냐 🐰 : 칼퇴해도 운동하고 집 가면 하루가 없다고!!! 🤖 : 변명이야!!! 열공해라 주디 🐰 : ㄴ ㅔ . . . 오랜만에 CS 공부하러 출~발~ ⛄️ DB Locking 오늘은 Lock을 활용한 Concurrency Control 기법을 공부해보려고 한다. Concurrency Control 기법?! 오!! 이거 주디 블로그 시리즈물 아닌가? 맞다!! 아래 내용을 참고하면 된다! [DB] 트랜잭션 #1 | 개념과 ACID 속성 [DB] 트랜잭션 #2 | concurrency control(Serializability, Recoverable) [DB.. 2023. 12. 24.
[자료구조] Red-Black 트리 [ 이진 탐색 트리(BST, Binary Search Tree)의 단점 ] 균등 트리 : 노드 개수가 N개일 때 O(logN) 편향 트리 : 노드 개수가 N개일 때 O(N) 이진 탐색 트리는 최악의 경우 한쪽으로 편향된 트리일 때 O(N) 시간이 걸린다. 이 말은 모든 노드를 한 번씩 다 확인해줘야 한다는 의미이다. 이러한 단점을 개선한 균형 트리인 Red-Black 트리에 대해서 알아보자. 🔴 Red-Black 트리 ⚫️ 이진 탐색 트리의 단점을 개선하기 위한 자료구조 이진 탐색 트리(BST)의 한 종류 스스로 균형(balancing) 잡는 트리 BST의 worst case의 단점을 개선해서 모든 경우에 O(logN) 모든 노드는 red 혹은 black ✔️ 5가지 속성 모든 노드는 red 혹은 bla.. 2023. 3. 2.
[DB] 인덱스 (index) 🔖 인덱스 (index) 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조 즉, index는 데이터의 주소값을 저장하는 별도의 특별한 자료 구조이다. index를 활용해서 빠르게 원하는 데이터를 찾을 수 있다. ✔️ Point 1 : DB 테이블에 인덱스(index)가 필요한 이유 🧐 만약 table에 index를 걸지 않으면 어떻게 될까? SELECT * FROM customer WHERE first_name = "Jeongyoon"; 원하는 데이터를 찾고 싶을 때 table 전체를 full scan 해야 한다. 즉, first_name에 index가 걸려있지 않다면 "Jeongyoon"을 찾기 위해서는 모든 데이터를 하나씩 확인해야 한다. full .. 2023. 2. 16.
[DB] 트랜잭션 #2 | concurrency control(Serializability, Recoverable) 🔎 트랜잭션 (Transaction) 1부에서 트랜잭션에 대한 개념과 속성에 대해서 알아봤다. ACID 중 'Isolation'은 복수의 트랜잭션을 동시에 실행할 경우, 이상 현상이 일어나지 않도록 한다. 이것을 보장하기 위한 중요한 속성이 Serializability과 Recoverable이다. * 참고로 DBMS의 concurrency control(동시성 제어)이 이 두 가지를 제공해야 한다. 📑 목차 [DB] 트랜잭션 #1 | 개념과 ACID 속성 [DB] 트랜잭션 #2 | concurrency control(Serializability, Recoverable) - 현재 포스팅 [DB] 트랜잭션 #3 | Isolation level(격리 수준)과 이상 현상 (+면접 질문) concurrency c.. 2023. 2. 10.
[DB] 트랜잭션 #1 | 개념과 ACID 속성 🔎 트랜잭션 (Transaction) 대용량 데이터 동기화 등을 처리하다 보면 개발자가 트랙잭션을 어떻게 처리 하느냐에 따라 데이터의 정합성 등에 영향을 주게 된다. 그래서 백엔드 개발자로서 트랜잭션은 중요한 개념이다. 트랜잭션과 관련된 내용은 많기 때문에 3부로 걸쳐 살펴보자. [DB] 트랜잭션 #1 | 개념과 ACID 속성 - 현재 포스팅 [DB] 트랜잭션 #2 | concurrency control(Serializability, Recoverable) [DB] 트랜잭션 #3 | Isolation level(격리 수준)과 이상 현상 (+면접 질문) 개념과 ACID 속성 - 트랜잭션은 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위를 말하며 데이터베이스에 접근하는 방법은 쿼리이므로, 즉.. 2023. 2. 10.
[OS] 동기화(Synchronization) | 스핀락, 뮤텍스, 세마포어 [ 데이터 접근 ] 데이터가 저장되어 있는 위치로부터 데이터를 읽어와서 연산한 뒤, 연산한 결과를 이전에 저장되어 있던 그 위치에 다시 저장한다. 데이터를 읽기만 하면 문제가 없는데, 데이터를 연산하고 수정하게 되면 누가 먼저 읽어 갔는지에 따라 결과가 달라질 수 있다. 이때 발생할 수 있는게 Synchronization(동기화) 문제이다. load X, reg1 inc reg1 store X, reg1 🤼‍♂️ Process Synchronization 공유 데이터(shared data)의 동시 접근(concurrent access)은 데이터의 불일치 문제(inconsistency)를 발생시킬 수 있다. 따라서 일관성(consistency) 유지를 위해서는 협력 프로세스(cooperating proce.. 2023. 2. 2.
[OS] Process | Context Switching (컨텍스트 스위칭) 0. 개요 개발은 프로그램을 만드는 것이다. 그리고 그렇게 만들어진 프로그램이 컴퓨터에서 실행되면, 실행 중인 프로그램을 프로세스라고 부른다. 프로그램 (program) : 컴퓨터가 실행할 수 있는 명령어들의 집합 ✔️ 프로세스 (process) “Process is a program in execution” / 컴퓨터에서 실행 중인 프로그램 : 각각의 프로세스는 독립된 메모리 공간을 할당받는다. 그리고 명령어들과 데이터를 가진다. CPU (central processing unit) : 명령어를 실행하는 연산 장치 메인 메모리 (main memory) : 프로세스가 CPU에서 실행되기 위해 대기하는 곳 I/O (input/output) : 파일을 읽고 쓰거나 네트워크의 어딘가와 데이터를 주고받는 것 :.. 2023. 1. 24.
[OS] 교착상태 (Deadlock) 락(lock)은 동기화를 보장하는 툴(tool)이다. 락을 사용하여 동기화를 수행하다 보면 필연적으로 데드락(Deadlock)이라는 부작용이 생길 수 있다. 데드락 상태가 되면 더 이상 프로세스나 스레드가 진행하지 못하기 때문에 이를 잘 파악하는 것은 중요하다. + 또한 데드락 개념은 DB에서 '분산 서버 동시성 이슈 해결 방안'으로 비관적인 락을 사용할 때 등장하기도 한다. 비관적인 락 : 동시에 연산이 실행되지 않도록 Lock(잠금)을 걸어서 다른 연산이 끼어들지 못하도록 한다. 단점으로는 성능이 느려지고, 데드락 상태에 걸릴 수 있다. 🚗 교착상태 (Deadlock) (두 개 이상의) 일련의 프로세스 혹은 스레드들이 서로가 가진 자원(resource)을 기다리며 block된 상태 자원(resourc.. 2023. 1. 21.
[Network] 웹 통신의 흐름 ✔️ Point 1 : DNS 사람은 고정 길이의 주민등록번호와 이름으로 식별할 수 있다. 컴퓨터는 주민등록번호를 선호할 것이고, 일반 사람들은 이름을 선호할 것이다. 이와 같이 www.google.com와 같은 호스트 이름은 사용자들이 기억하기 좋아 선호한다. 하지만 이 호스트 이름으로는 호스트 위치에 대한 정보도 얻을 수 없고, 가변 길이로 라우터가 처리하는 데도 어려움이 있다. 그래서 IP 주소로 식별된다. 즉, 호스트를 식별하는 방법은 호스트 이름과 IP 주소로 두 가지이다. [ DNS (Domain Name System Server) ] 사람과 라우터는 서로 선호하는 식별자가 다르다. 이를 절충하기 위해서 호스트 이름을 IP 주소로 변환해줄 필요가 있는데, 이때 DNS를 이용한다. DNS는 도메.. 2023. 1. 2.
[웹개발자 필수] HTTP 진화 과정 (HTTP/1.0부터 HTTP/3까지)(+관련 면접 질문) 기본적으로 HTTP는 전송 계층 위에 있는 애플리케이션 계층으로서 웹 서비스 통신에 사용된다. 이런 웹은 어떻게 시작되었을까. [ World Wide Web의 발명 ] HTTP는 World Wide Web에 내재된 프로토콜이다. 팀 버너스리가 1989년부터 1991년에 발명하였고 초기에 Mesh라고 불리다가 1990년에 구현 과정에서 World Wide Web(WWW)으로 이름을 바꿨다. World Wide Web(WWW) : HTTP라는 프로토콜을 이용해 HTML 파일을 주고받을 수 있는 공간 HTTP/0.9 원-라인 프로토콜 HTTP/0.9는 정말 단순한 서버-클라이언트 구조를 따른다. 요청: 단일 라인으로 구성 리소스 경로: GET 메서드만 가능 GET /mypage.html Simple HTML .. 2022. 12. 3.
[자료구조] 그래프(Graph) 1. 그래프(Graph) - 연결되어 있는 객체 간의 관계를 표현하는 자료 구조 - 그래프는 정점(Vertex)과 이들을 연결하는 간선(Edge)들의 집합으로 구성된다. - N:N 관계 표현이 용이하다. ✔️ 종류 : 간선(edge)의 종류에 따라 구분 무향 그래프 (Undirected Graph) 양 방향으로 이동 ex) (A,B) (B,A) 유향 그래프 (Directed Graph) 간선의 방향으로만 이동 가능 ex) 가중치 그래프 (Weighted Graph) 간선에 비용(cost) 또는 가중치(weight)가 할당된 그래프 ex) 네트워크 사이클 (Cycle) 시작 정점과 종료 정점이 동일한 그래프 비순환 그래프 (Acyclic Graph) 사이클이 없는 그래프 완전 그래프 (Complete Gr.. 2022. 8. 1.
[자료구조] 연결 리스트 (Linked list) 0. 개요 순차 리스트 연결 리스트 장점 i 번째 원소의 값 접근이 빠름 연속된 값 읽기가 빠름 원소의 삽입 / 삭제가 빠름 단점 원소의 삽입 / 삭제가 느림 i 번째 원소의 값 접근이 느림 연속된 값 읽기가 느림 ✔️ 메모리 컴퓨터에는 3가지 중요한 부품 CPU 메모리(memory) : RAM 스토리지(storage) : HDD/SSD 메모리 : 속도 빠르다. 용량이 작다. 전기를 끄면 데이터가 사라진다. 스토리지 : 속도 느리다. 용량이 크다. 전기를 꺼도 데이터가 남아있다. 따라서 데이터는 기본적으로 스토리지에 저장되고 프로그램을 실행할 땐 프로그램과 데이터는 메모리로 옮겨져 CPU는 메모리에 로드된 데이터로 작업을 한다. 🚩 자료구조를 공부하는 이유: 메모리의 효율적인 사용 1. 구조 node (.. 2022. 7. 27.
[CS] 네트워크 0. 용어 1) Host : 네트워크에 연결된 컴퓨터 Switch: 네트워크 자체를 이루는 컴퓨터 경로: Router, 보안: F/W(방화벽), IPS End-point: 네트워크 이용 주체 Peer, Server, Client 2) Internet : Router + DNS 가장 중요한 구성체 : 전 세계에 걸쳐 파일 전송 등의 데이터 통신 서비스를 받을 수 있는 컴퓨터 네트워크 시스템 3) 대역폭 4) 레이턴시 5) 혼잡과 큐 대기 1. OSI 7 Layer Layer 7 : 응용 계층(Application layer) 사용자와 가장 밀접한 계층으로 인터페이스 역할을 하는 계층 프로토콜로 Data가 어떤 용도로 사용될지는 APP이 결정한다. Ex) HTTP, SMTP, POP3, FTP 등 * HTT.. 2022. 5. 23.
반응형