뷰(View)이란? 뷰는 가상의 테이블이다. 즉 데이터를 가지고 있지 않는다. 뷰는 데이터를 저장하는 테이블이 아니고, 복잡한 쿼리문 자체를 저장하고 있다. 뷰(View)를 사용하는 이유편리성: 복잡한 쿼리를 단순화하여 쉽게 재사용 가능.보안성: 원본 테이블에 대한 접근 권한을 주지 않고, 뷰를 통해서만 제한된 데이터에 접근하도록 허용할 수 있다.논리적 독립성: 원본 테이블의 구조가 일부 변경 되더라도, 뷰의 정의만 수정하면 뷰를 사용하는 프로그램의 코드는 바꿀 필요가 없을 수도 있다.뷰 생성CREATE VIEW 뷰이름 AS SELECT 쿼리문;DROP VIEW IF EXISTS v_category_order_status; -- 만약 뷰가 이미 존재한다면 제거CREATE VIEW v_category_or..
SQL 실행 순서 SQL 실행 순서는 우리가 SQL을 작성하는 순서와 실제 SQL이 쿼리를 처리하는 순서가 다르다. SQL 쿼리의 논리적 순서FROM: 가장 먼저 실행. 어떤 테이블에 데이터를 가져올지 결정WHERE: FROM에서 가져온 테이블의 개별 행을 필터링한다.GROUP BY: WHERE 절의 필터링을 통과한 행들을 기준으로 그룹을 형성한다.HAVING: GROUP BY를 통해 만들어진 그룹들을 필터링한다.SELECT: 위의 조건을 통과한 행 또는 그룹들에 대해 보고자 하는 칼럼을 선택하고, 집계 함수(SUM, AVG 등등), 별칭(AS) 등이 이 단계에서 이루어진다.ORDER BY: SELECT 절에서 선택된 최종 결과 후보들을 지정된 순서로 정렬한다. (SELECT가 ORDER BY 보다 먼저..
CPU 스케줄링 알고리즘 CPU 스케줄링 알고리즘은 다양하고 운영체제마다 다른 알고리즘을 사용하고 있다. 아래는 7가지 알고리즘에 대한 설명이다. 선입 선처리 스케줄링 선입 선처리 스케줄링은 FCFS 스케줄링이라고 불린다. 이는 준비 큐에 삽입된 순서대로 프로세스를 처리하는 비선점형 스케줄링 방식이다. 공정해 보이지만, 프로세스들이 기다리는 시간이 길어질 수 있다. A 프로세스가 15ms 실행 동안 B 프로세스는 15ms를 대기하고, B 프로세스가 5ms 실행 동안 C 프로세스는 1ms를 실행하기 위해 15ms+5ms를 대기하게 된다. 위 스케줄링의 평균 대기 시간은 (20+15+0) / 3 대략 12초 정도 걸린다. 최단 작업 우선 스케줄링 앞서 FCFS 스케줄링의 단점을 방지할려면 CPU 사용 시간이..
프로세스란? 프로세스는 실행 중인 프로그램이다. 프로그램은 실행되기 전에는 보조기억장치에 저장된 데이터이지만, 이 프로그램을 메모리에 올라가고 실행되는 순간 프로그램은 프로세스가 된다. 스레드란? 스레드는 실행의 단위이며, 프로세스를 구성하는 실행의 흐름 단위이다. 하나의 프로세스에는 여러 개의 스레드를 가질 수 있으며, 프로세스 내의 여러 개의 스레드가 동시에 실행될 수 있다. 멀티프로세스란? 여러 프로세스를 동시에 실행하는 것이다. 멀티스레드란? 여러 스레드를 프로세스 내에 동시에 살행하는 것이다. 멀티프로세스와 멀티스레드의 차이? 만약 Hello를 출력하는 프로그램이 있다고 가정하고 출력을 2개 이상 하고 싶다면 2개 이상의 프로세스를 실행하면 되고(멀티프로세스는), 하나의 프로세스에서 여러 개의 ..
