[MySQL] View
CS/DataBase2022. 10. 26. 20:00[MySQL] View

View : DataBase 내에서 '가상의 테이블'을 의미하며, 생성된 뷰는 기존의 테이블처럼 행과열의 데이터값을 가지는 테이블처럼 보이지만, 실제 테이블처럼 데이터들을 저장하고 있지는 않다. 특징잘 알려진 장점으로는1. 테이블 전체가 아닌 필요한 필드만을 보여주는 기능으로써 사용자에게 편리함을 제공한다.2. 특정 데이터 그리드를 만들기 위해 복잡한 쿼리들을 view를 통해 단순화 기능을 제공한다.3. 쿼리를 재사용 할 수 있다. 반대로 단점으로는1. 한번 만들어진 view는 변경이 불가능하다.2. 자신만의 인덱스를 가질 수 없으며,3. 해당 view에 관한 작업에 대한 제한사항을 많이 가진다. View의 활용view 생성에 앞서 이해를 돕기위해 간단하게 사용자의 이름과 나이 정보를 가지는 'view_..

[Mysql] 스토어드 프로시저
CS/DataBase2022. 10. 24. 22:41[Mysql] 스토어드 프로시저

스토어드 프로시저(Stored Procedure, 저장 프로시저)란?-> Mysql에서 제공하고 있는 프로그래밍 기능 중 하나로 쿼리문에 대한 동작을 일괄 처리하기 위한 용도로 사용한다.쿼리를 모듈화 함으로써 필요할 때마다 호출하는 식으로 사용하여 편리하게 Mysql 동작을 시킬 수 있다.또한, 클라이언트 측에서 DB로 장황한 쿼리대신 프로시저를 호출하기만 하면 되기에 편리한 기능이라고 할 수 있다. 특징1. 성능 향상 : 프로시저를 CALL 하는 것으로 긴 쿼리를 사용할 수 있다. --> 네트워크 부하 감소2. 유지관리의 간편함 : 응용 프로그램의 코드에서는 긴 쿼리가 아닌 프로시저만을 호출하기 때문에 프로시저의 내용 수정 등의 유지보수가 간편하다.3. 모듈식 프로그래밍 가능 : 언제든지 사용이 가능하..

Semaphore(System V vs POSIX) -Infinite
CS/시스템 프로그래밍2022. 6. 21. 02:46Semaphore(System V vs POSIX) -Infinite

안녕하세요. 이번에는 앞서다룬 IPC기법들 중 동기화가 필요한 통신에서의 동기화를 책임질 세마포어(Semaphore)에 대하여 알아보도록 하겠습니다. ● 세마포어(Semaphore) -> 기본적으로 세마포어는 프로세스 사이의 동기를 맞추는 기능을 제공합니다. -> 한번에 한 작업만을 허용하는 부분에 접근하여 잠금 또는 잠금해제를 제공하는 정수형 변수입니다.즉 A라는 프로세스가 특정 메모리에 접근을 하고있다면 B 및 C 프로세스들이 이 메모리에 접근을 못하도록 막아주는 기능을 하는 변수라고 생각하시면 편하겠습니다. 이 정수형 변수는 제공되는 함수를 통해 값을 변경할 수 있는데요. 잠금 함수는 p(), 해제 함수는 v()로 표시한다고 합니다. ● 세마포어 함수 (System V) -> 기본적으로 세마포어 함..

시스템 V IPC (System V) 2 -Infinite
CS/시스템 프로그래밍2022. 6. 21. 01:57시스템 V IPC (System V) 2 -Infinite

앞선 글에 이어서 이번 글에서는 Shared Memory와 Message Passing에 관한 간단한 소개 및 Shared Memory 방식에 대한 개념 및 예제를 알아보도록 하겠습니다. ● Shared Memory -> 이는 공유 메모리이며 독립적인 프로세스들 간의 통신을 위해 공유되는 메모리 영역을 사용합니다. -> 장점으로는 시스템 호출을 생성할 때(공유 메모리 생성)에 1번만 사용하기 때문에 매우 빠르며 효율이 좋습니다. -> 단점으로는 모든 프로세스들이 접근 가능하기 때문에 Race Condition의 문제가 발생할 수 있으므로 동기화 과정이 필요합니다. 이는 세마포어를 이용하여 해결할 수 있습니다. ● Message Passing -> 같이 쓴다의 개념이아닌 그때 그때 필요한 소스를 프로세스들..

시스템 V IPC (System V) 1 -Infinite
CS/시스템 프로그래밍2022. 6. 21. 01:21시스템 V IPC (System V) 1 -Infinite

이번 포스팅은 System V IPC 기법들에 대하여 알아보도록 하겠습니다. System V에서는 메시지 큐, 공유 메모리 기법을 통해 프로세스 간 통신을 진행 할 수 있습니다. 독립적인 프로세스들이 서로 통신을 함에 있어 Critical section(중요한 데이터 영역)에 동시에 진입할 경우 Race Condition(충돌)이 발생 할 수 있습니다. 이를 막기위해 독립적인 프로세스들은 동기화 과정이 필요한데 세마포어가 해결을 도와줄 수 있습니다. -> 세마포어는 단순히 메모리 영역에 접근할 수 있는 프로세스들을 알려주는 역할이며 이는 통신기법이 아닌 동기화기법에 해당합니다. 또한 이번 챕터에서 다룰 통신기법들은 각각 공통된 키 생성 -> 키를 통한 식별자 생성 과정을 거친 후 제공되는 함수들을 사용하..

파이프(PIPE) -Infinite
CS/시스템 프로그래밍2022. 6. 20. 23:34파이프(PIPE) -Infinite

이번 포스팅은 파이프에 대하여 알아보도록 하겠습니다. ● 이름 없는 파이프(PIPEs) -> 파이프는 두 프로세스 간에 통신을 할 수 있도록 인터페이스를 제공합니다. (부모-자식 프로세스 간 통신) -> 파이프는 기본적으로는 단방향이지만 두 개의 파이프를 이용하여 양방향도 가능은 합니다. -> 파이프도 일종의 파일이기 때문에 읽고 쓸 수 있는 파일 기술자가 필요합니다. (부모-자식 간에는 파일 기술자를 공유하고 있기 때문에 통신이 가능한거죠) 파이프와 관련하여 제공되는 함수 - 파이프 만들기 : popen(), pipe() - 파이프 닫기 : pclose() 파이프 생성함수를 통해 파이프를 만들게 되면 fd[0](read전용), fd[1](write전용) 파일 기술자가 생성되고 단방향 통신 특성상 부모-..

CS/시스템 프로그래밍2022. 6. 20. 22:47시그널(signal) -Infinite

이번 포스팅은 8장 시그널에 대하여 알아보도록 하겠습니다. ● 시그널(Signal) - 시그널은 소프트웨어 인터럽트이다. - 시그널은 비동기적으로 프로세스에 신호를 보낸다. 시그널은 다음과 같은 세 가지 경우에 발생한다. 1. 0으로 나누기처럼 프로그램에서 예외적인 상황이 일어나는 경우 2. 프로세스가 kill() 함수와 같이 시그널을 보낼 수 있는 함수를 사용해 다른 프로세스에 시그널을 보내는 경우 3. 사용자가 ctrl+c 같은 인터럽트 키를 입력한 경우 ● 시그널 보내는 함수 - kill(pid, sig) : 시그널을 임의로 보내기 위해서는 kill함수를 사용한다. 매개변수로 시그널을 보낼 프로세스의 pid, 보낼 시그널 번호를 지정한다. pid가 0보다 큰 수 : pid로 지정한 프로세스에 시그널..

쓰레드(Thread) -Infinite
CS/시스템 프로그래밍2022. 6. 20. 19:46쓰레드(Thread) -Infinite

이전 글에서 프로그램 내에서 자식 프로세스를 만들어 여러가지 명령어를 처리하는 방법에 대해서 배웠는데, 이번 글에서는 새롭게 프로세스를 만들어 처리하지 않고 쓰레드를 사용하여 명령어를 처리하는 방법에 대해서 알아 보도록 합시다. ● 프로세스 vs 쓰레드 Process : 프로그램의 실행상태를 의미하며 프로세스 생성 시 상태정보 및 PCB를 생성합니다. Thread : 프로세스의 작업단위를 의미하며 쓰레드 생성 시 PCB는 공유를 하며, 오로지 스택만을 생성합니다. ● 쓰레드를 사용하는 이유 -> 보통 리눅스 시스템에서 서버 프로그램은 수많은 클라이언트의 요청에 대해 응답을 하기위해 여러 프로세스를 만들어 task를 처리합니다. 하지만 주어진 task가 경량화된 작업일 경우에는 쓰레드를 이용하여 한개의 프..

image