Computer Science 13

[DB] 프로시저(Procedure)란 ?

1. 저장 프로시저(Stored Procedure)란 ? DB 내부에 저장된 일련의 SQL 명령문들을 하나의 함수처럼 실행하기 위한 쿼리의 집합 즉, DB에 대한 작업을 정리한 절차를 RDBMS(관계형 데이터 베이스 관리 시스템)에 저장한 쿼리의 집합이다. 영구저장모듈이라고도 불린다. SQL Server에서 제공되는 프로그래밍 기능. 쿼리문의 집합 어떠한 동작을 일괄 처리하기 위한 용도로 사용 자주 사용되는 일반적인 쿼리를 모듈화시켜서 필요할 때마다 호출 테이블처럼 각 데이터베이스 내부에 저장 여러 개의 칼럼을 조회하고, 여러 개의 테이블을 조인하고, 조건문까지 넣어주면 하나의 쿼리를 만드는데 엄청나게 긴 쿼리문이 생기게 되는데 이러한 여러 개의 쿼리를 사용할 때마다 긴 쿼리문을 작성한다면 매우 불편할 ..

[Database] 뷰(VIEW)란 ?

1. 뷰(VIEW) 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 테이블로부터 유도된 가상 테이블 뷰는 저장장치 내에 물리적으로 존재하지 않지만 사용자에게 있는 것처럼 간주된다. 2. 뷰의 장단점 뷰의 장점 데이터 조회가 용이하다 (복잡한 쿼리를 단순화) 사용자에게 필요한 정보만 제공할 수 있다 (보안 이점) 물리적인 공간이 필요하지 않다 뷰의 단점 뷰에 인덱스를 구성할 수 없다 뷰를 포함하여 뷰를 만든 경우 연관 뷰를 삭제하면 생성된 뷰도 삭제된다 한번 정의된 뷰는 수정이 불가하다

[Network] OSI 7 계층(Layer)의 개념 및 역할

1. OSI 7 계층이란 ? OSI 7 계층은 국제표준화기구(ISO)에서 정의한 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 네트워크 표준 모델 정보를 송신할 때 각 계층을 지날 때마다 각 계층에서의 Header가 붙게되고 수신측은 역순으로 헤더를 분석하게 된다. OSI 7단계로 정의한 이유는 통신이 일어나는 과정을 단계별로 파악하기 위함과 통신 과정 중에 특정한 곳에 이상이 생길 경우 통신 장애를 일으킨 단계에서 해결할 수 있기 때문이다. 2. OSI 7 계층 구조 2-1. 물리 계층(Physical Layer) OSI 모델의 최하위 계층에 속하며, 데이터를 전기적인 신호로 변환해서 다른 시스템에 전송하는 역할을 수행하는 계층이다. 인터넷 케이블, 라우터, 스위치 등의 전기적 신호가 물리적인 장치..

[Network] TCP와 UDP의 차이

OSI 7 레이어에서 전송(Transport)계층은 프로토콜 내에서 송신자와 수신자를 연결하는 통신 서비스를 제공하는 계층으로, 이러한 전송계층에서 사용되는 프로토콜이 바로 TCP와 UDP입니다. 1. TCP TCP는 신뢰성 있는 데이터 전송을 지원하는 연결 지향형 프로토콜입니다. 일반적으로 TCP와 IP가 함께 사용되는데, IP가 데이터의 전송을 처리한다면 TCP는 패킷 추적 및 관리를 하게 됩니다. 연결 지향형인 TCP는 3-way handshaking이라는 과정을 통해 연결 후 통신을 시작하는데, 흐름 제어와 혼잡 제어를 지원하며 데이터의 순서를 보장합니다. 데이터의 '전송 순서' 보장 '신뢰성' 있는 데이터 전송을 지원 UDP보다 전송 속도가 느림 연결을 설정(3-way handshaking)과 ..

[면접을 위한 CS 전공지식 노트] 3-4 CPU 스케줄링 알고리즘

CPU 스케줄러는 CPU 스케줄링 알고리즘을 바탕으로 프로세스에서 해야 하는 작업들을 스레드 단위로 CPU에 할당한다. 즉, CPU 스케줄링 알고리즘에 따라 어떤 프로그램에 'CPU 소유권'을 부여할 것인지 결정한다. 이 알고리즘은 CPU 이용율을 높게, 주어진 시간에 최대한 많은 일을 하도록, 준비 큐에 있는 프로세스는 최대한 적게, 응답 시간은 짧게 설정하는 것을 목표로 하고 있다. 1. 비선점형 방식 프로세스가 스스로 CPU 소유권을 포기하는 방식으로, 강제로 프로세스를 중지하지 않는다. FCFS 알고리즘 : 가장 먼저 온 것은 먼저 처리하는 알고리즘이다. 길게 수행되는 프로세스 때문에 준비 큐에서 오래 기다리게 되는 단점이 있다. SJF 알고리즘 : 실행 시간이 가장 짧은 프로세스부터 실행하는 ..

Computer Science/OS 2023.11.26

[Database] Lock 이란 ?

1. Lock 이란 ? DataBase에서는 한 자원(데이터)에 대해서 동시에 접근하는 경우가 생길 수 밖에 없습니다. 이럴 경우 데이터가 오염 될 수 있는데 그렇게 되지 않도록 데이터의 일관성과 무결성을 유지해야할 필요가 있습니다. ex) 예를 들어 수강신청 시스템에서 1명만이 정원으로 남게되었습니다. 여기서 두 사람이 거의 동시에 버튼을 눌렀습니다. 성공은 1명만 되야합니다. 이런 상황에서 DBMS(DataBase Management System)가 사용하는 공통적인 방법이 Lock이라는 것입니다. Lock이란 트랜잭션 처리의 순차성을 보장하기 위한 방법입니다. 2. Lock의 종류 Lock의 종류로는 '공유 Lock'과 '베타 Lock'이 있습니다. 공유 락 : 공유 Lock은 데이터를 읽을 때 사..

[Database] 면접 예상 질문 및 답변

Q # 1) DBMS를 정의하십시오. 답변 : DBMS는 데이터베이스 제어하고 관리하는 통합 시스템을 나타냅니다. DBMS에 정의된 쿼리 언어를 통해 데이터베이스의 데이터를 조작할 수 있습니다. 널리 사용되는 DBMS 중 일부는 MySql, Oracle 등입니다. Q # 1-1) RDBMS를 정의하십시오. 답변 : 관계형 데이터베이스 관리 시스템 (RDBMS)은 행(Column)과 열(Row)을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스입니다. SQL (Structured Query Language)을 사용하여 관계형 데이터베이스에서 데이터에 쉽게 접근할 수 있습니다. Q # 1-2) DBMS의 장점에 대해 설명하세요. 답변 : DBMS의 장점은 다음과 같습니다. 범용성이 넓고 데이터의 무결성..

[면접을 위한 CS 노트] 4-6 조인(JOIN)

1. 조인이란 조인이란 2개 이상의 테이블을 묶어서 하나의 결과물을 만드는 것을 말한다. 조인의 종류 중 대표적인 내부 조인, 왼쪽 조인, 오른쪽 조인, 합집합 조인이 있다. 2. 조인은 왜 필요한가? - 관계형 데이터베이스의 구조적 특징으로 정규화를 수행하면 의미 있는 데이터의 집합으로 테이블이 구성되고 각 테이블끼리는 관계(Relationship)을 갖게 된다. - 이와 같은 특징으로 관계형 데이터베이스는 저장 공간의 효율성과 확장성이 향상되게 된다. - 다른 한편으로는 서로 관계있는 데이터가 여러 테이블로 나뉘어 저장되므로 각 테이블에 저장된 데이터를 효과적으로 검색하기 위해 조인이 필요하다. 3. 조인의 종류 3-1. 내부 조인(Inner Join) 내부조인이란 두 테이블 간의 '교집합'만 표기하..

[면접을 위한 CS 노트] 4-5 인덱스

1. 인덱스란 ? 인덱스(index)란 '추가적인 쓰기 작업'과 '저장 공간'을 활용하여 DB 테이블에 저장된 데이터의 검색 속도를 향상시키기 위한 자료구조이다. 만약 우리가 책에서 원하는 내용을 찾는다고 하면, 책의 모든 페이지를 찾아 보는것은 오랜 시간이 걸린다. 그렇기 때문에 책의 저자들은 책의 맨 앞 또는 맨 뒤에 색인을 추가하는데, 데이터베이스의 index는 책의 색인과 같다. DB에서도 테이블의 모든 데이터를 검색하면 시간이 오래 걸리기 때문에 '데이터'와 '데이터의 위치'를 포함한 자료구조를 생성하여 빠르게 조회할 수 있도록 돕는다. 인덱스는 DB 내의 특정 컬럼(열)이나 컬럼들의 조합에 대한 값과 해당 값이 저장된 레코드(행)의 위치를 매핑하여 데이터베이스 쿼리의 성능을 최적화하는 데 중요..

[면접을 위한 CS 노트] 4-4 데이터베이스의 종류

1. 관계형 데이터베이스(RDBMS) 행(Column)과 열(Row)을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스 - SQL을 이용하여 데이터에 접근하고 관리 - 관계 대수(Realtional Algebra)에서 착안하여 만들어 짐 - MySQL, PostgreSQL, SQL Server 등 RDMBS 장점 스키마가 명확하게 정의되어 있다. 데이터 무결성을 보장한다. 각 데이터를 중복 없이 한 번만 저장한다. RDBMS 단점 유연성이 떨어져 데이터 스키마를 사전에 계획해야 하므로 추후 수정이 어렵다. 관계를 맺고 있어서 조인문이 많은 복잡한 쿼리가 만들어질 수 있다. 대체로 수직적 확장만 가능하다. 2. NoSQL SQL를 사용하지 않은 비관계형 데이터베이스를 뜻하며, 그래프, 키(Key) -..