본문 바로가기

독서/CS 노트39

39. 데이터 베이스 [조인] 39. 데이터 베이스 [조인] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 조인 (Join) 조인은 두 개 이상의 테이블을 합쳐서, 하나의 결과물을 만드는 것이다 MySQL에서는 JOIN을 사용한다 내부 조인 (Inner Join) 교집합 : A와 B에 같은 데이터들을 가지고 온다 SELECT * FROM Table A as A INNER JOIN Table B as B ON A.key = B.key 왼쪽 조인(Left Outer Join) A 테이블의 행이 모두 표출되는 것이다 (A테이블 = 왼쪽 테이블) SELECT * FROM Table A as A LEFT JOIN Table B as B ON A.key = B.key 오른쪽 조인 (Right Outer Join) B 테이블의 행이 모두 .. 2023. 3. 24.
38. 데이터 베이스 [인덱스] 38. 데이터 베이스 [인덱스] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 인덱스 인덱스는 데이터의 위치를 빠르게 찾게 해 주는 자료구조다 데이터의 위치를 빠르게 검색하면, Update, Delete의 성능도 향상될 수 있다 인덱스는, 책의 목차 페이지와 비슷하다 원하는 정보의 위치를 목차에 넣어두면, 빠르게 페이지를 찾을 수 있다 반대로 인덱스를 사용하지 않으면, 데이터 하나하나 모두 탐색을 해야 한다 즉 테이블을 조회하는 속도와 성능을 증가시킨다 시스템의 부하를 줄일 수 있다 단점 인덱스 관리를 위해 약 10%의 저장공간이 필요하다 인덱스 관리를 위해 추가 작업이 필요하다 인덱스를 잘못 사용하면, 오히려 성능이 저하된다 인덱스는 균형잡힌 B-Tree 기반으로 구축이 되어 있다 자식 노드가 .. 2023. 3. 24.
37. 데이터 베이스 [데이터 베이스의 종류] 37. 데이터 베이스 [데이터 베이스의 종류] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 관계형 데이터 베이스 RDBMS (Relational Database Management System) 라고도 한다 대표적으로 MySQL, postgreSQL 이 있다 행과 열을 가지고 테이블 형태로 데이터를 저장한다 SQL 언어를 사용하여 테이블을 조작한다 MySQL 가장 많이 사용되는 데이터베이스다 테이블과 테이블 간의 조인을 빠르게 한다 최대 64개의 인덱스를 제공한다 대용량 데이터베이스를 위해 설계되어 있고 롤백, 커밋, 이중 암호 지원 보안 등의 기능을 제공한다 MySQL 스토리지 엔진 아키텍쳐 다양한 스토리지 엔진을 고를 수 있다 쿼리 캐시가 있어, 같은 쿼리를 다시 사용했을 때에, 빠르게 결과.. 2023. 3. 23.
36. 데이터 베이스 [트랜잭션과 무결성] 36. 데이터 베이스 [트갠잭션과 무결성] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 트랜잭션 (Transaction) 하나의 논리적 기능을 수행하기 위한 작업의 단위 쿼리를 통해 데이터 베이스를 접근한다 / 여러 개의 쿼리들을 하나로 묶는 단위가 트랜잭션이다 Commit 과 Rollback Commit : 여러 쿼리가 성공적으로 처리된 상태다 즉 트랜잭션이 성공적으로 완료되었다는 것이다 Rollback : 쿼리를 실행하던 중 오류가 발생하고, 트랜잭션이 일어나기 전 상태로 돌아가는 것 즉 오류가 발생하기 전에 실행했던 모든 쿼리들을 undo한다 Rollback에서 해당 트랜잭션을 다시 시작하거나, 없앤다 ACID 트랜잭션의 4개의 특징이 있다 Atomic (원자성) 트랜잭션은 완전히 성공하던.. 2023. 3. 23.
35. 데이터 베이스 [ERD, 정규화 과정] 35. 데이터 베이스 [ERD, 정규화 과정] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) ERD (Entity Relation Diagram) 데이터 베이스를 구축할 때에 가장 기본적으로 뼈대 역할을 한다 데이터 베이스 안에 있는 테이블 간의 관계를 정의한다 사용자 또는 시스템의 요구 사항을 기반으로 작성이 된다 정규화 과정 (Normalization) 정규화 과정은 테이블/릴레이션을 나누는 것이다 저장 공간을 효율적으로 사용할 수 있다 테이블을 조인 하면서 느려질 수도 있지만, 대체로 성능이 더 좋아질 수 있다 이상현상을 해결한다 함수적 종석성을 통해 정규화 과정을 진행한다 이상현상 (Anomaly)? 데이터의 삽입, 갱신, 삭제를 할 때에 테이블/릴레이션에 부작용이 일어나는 것 불필요한 데.. 2023. 3. 22.
34. 데이터 베이스 [데이터 베이스의 기본] 34. 데이터 베이스 [데이터 베이스의 기본] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 데이터 베이스의 기본 데이터 베이스란? 데이터의 저장소, 즉 데이터의 집합이다 DBMS란? DataBase Management System으로 데이터베이스를 관리하고 운영하는 소프트웨어다 특정 DBMS마다 정의된 쿼리 언어 (query language)를 통해 데이터를 삽입, 조회, 수정, 삭제 (CRUD)를 할 수 있다 DBMS는 MySQL, PostgreSQL등이 있다 MangoDB 같은 경우 NoSQL 데이터베이스로, SQL을 사용하지 않고 함수를 이용하여 데이터를 끄집어낸다 엔터티 (Entity) 실체, 객체라고 할 수 있다 개념, 장소, 사건 등을 가리킨다 저장되고, 관리되어야 하는 데이터다 고유.. 2023. 3. 21.
33. 운영체제 [CPU 스케줄링 알고리즘] 33. 운영체제 [CPU 스케줄링 알고리즘] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) CPU 스케줄링 알고리즘 어떤 프로세스를 먼저 처리하는지 결정해 주는 알고리즘이다 비선점형과 선점형으로 나뉜다 비선점형 프로세스가 CPU를 점유하고 있으면, 뺐을 수 없다 즉 프로세스가 CPU를 점유하면, 끝날때까지 다른 프로세스가 CPU를 점유할 수 없다 컨텍스트 스위칭에 인한 부하가 적다 FCFS (First Come First Served) 먼저 들어오는 프로세스를 먼저 처리하는 알고리즘이다 중간에 길게 실행되는 프로세스 때문에, '준비 큐'에서 오래 기다르는 현상 (Convoy Effect)가 발생한다 SJF (Shortest Job First) 실행 시간이 제일 짧은 프로세스부터 실행하는 알고리즘이.. 2023. 3. 18.
32. 운영체제 [공유 자원, 임계 영역] 32. 운영체제 [공유 자원, 임계 영역] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 공유 자원 공유 자원 : Shared resource 여러 프로세스, 스레드가 공동으로 이용하는 모니터, 프린터, 변수, 메모리, 파일, 데이터 등의 자원 경쟁 상태 (Race condition) : 두 개 이상의 프로세스가 동시에 읽거나 쓰는 상황 두 개 이상의 프로세스가 동시에 접근을 할 경우, 결과값에 영향을 줄 수 있다 원래는 결과값이 20만원이 아니라 35만원이어야 한다 하지만 프로세스 P1과 프로세스 P2가 동시에 접근하면서, 타이밍이 꼬여 20만원으로 결과값이 나왔다 임계 영역 공유 자원 접근 순서에 따라 실행 결과가 달라지는 프로그램의 코드 영역 임계 영역 안에서 경쟁 상태 (race condi.. 2023. 3. 17.
31. 운영체제 [멀티 프로세싱, 멀티 스레드] 31. 운영체제 [멀티 프로세싱, 멀티 스레드] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 멀티프로세싱 여러 개의 프로세서가 일을 수행하는 것이다 프로세스 같은 경우, 메모리를 다른 프로세스와 공유를 하지 않는다 하나 이상의 일을 병렬로 처리할 수 있다 프로세스의 메모리 일부에 문제가 생겨도, 다른 프로세스를 이용하여 처리할 수 있어 신뢰성이 높다 웹 브라우저의 멀티 프로세스 아래의 프로세스를 통해 웹 브라우저가 작동이 된다 브라우저 프로세스 주소 표시줄, 북마크, 방향 버튼, 네트워크 요청이나 파일 접근 같은 권한 담당 렌더러 프로세스 웹 사이트의 보이는 모든 것을 제어한다 플러그인 프로세스 웹 사이트의 필요한 플러그인을 제어한다 GPU 프로세스 GPU를 이용해 화면에 그리는 부분을 제어한다.. 2023. 3. 17.