DB 기본 개념
DB란 전자적으로(electronically) 저장되고 사용되는 관련있는 데이터들의 조직화된 집합 조직화를 시킴으로 데이터의 불일치, 중복 데이터 관리 등 다양한 데이터 관리를 좀 더 효율적으로 할 수 있다. DBMS : 사용자에게 DB를 정의하고 만들고 관리하는 기능을 제공하는 소프트웨어 프로그램 (MySQL, ORACLE 등) DBMS로 D...
DB란 전자적으로(electronically) 저장되고 사용되는 관련있는 데이터들의 조직화된 집합 조직화를 시킴으로 데이터의 불일치, 중복 데이터 관리 등 다양한 데이터 관리를 좀 더 효율적으로 할 수 있다. DBMS : 사용자에게 DB를 정의하고 만들고 관리하는 기능을 제공하는 소프트웨어 프로그램 (MySQL, ORACLE 등) DBMS로 D...
모두의 네트워크 정리 모두의 네트워크 책을 보고 정리한 내용이다. 챕터 별로 기억 간단히 요약해서 작성했다. 1장) 네트워크 첫걸음 패킷(packet) : 네트워크를 통해 전송되는 데이터의 작은 조각 대역폭 : 일반적으로 네트워크에서 이용 가능한 최대 전송 속도로 정보를 전송할 수 있는 단이 시간당 전송량 ...
모니터(monitor) mutual exclusion을 보장 조건에 따라 스레드가 대기(wating) 상태로 전환 가능 모니터는 1) 한번에 하나의 스레드만 실행돼야 할 때, 그리고 2) 여러 스레드와 협업이 필요할 때 사용된다. 구성 요소로는 mutex , condition variable(s) 가 있다. 1. mutex 아래 ...
우리는 멀티스레드 환경에서 race condition(경쟁 조건)이 발생하지 않도록 동기화(synchronization)를 해줘야한다. 하나의 프로세스/스레드만 진입해서 실행한다는 것인 mutal exclusion을 어떻게 보장해 critical section(임계 영역)으로 만들 수 있을까? 그 방법에는 세가지 방법이 있다. 스핀락(spinlo...
동기화 동기화란 무엇이고, 어떤 상황에서 필요한 것일까? 만약 우리가 상한 귤의 갯수를 새는 프로그램을 실행시킨다고 가정해보자. 만약 그 프로그램이 싱글코어 CPU 환경에서 실행되고, 귤을 담은 상자의 갯수가 2상자라 2개의 스레드로 작동시킬려고 한다. 1번 상자의 상한 귤이 2개, 2번 상자에는 5개가 있다고 친다면, 우리는 프로그램이 끝났을...
Process 컴퓨터에서 실행 중인 프로그램을 뜻 한다. 각각의 프로세스는 독립된 메모리 공간을 할당 받고, 명령어들과 데이터를 가진다. Process는 메인 메모리에서 CPU(명령어를 실행하는 연산 장치)에서 실행되기 위해 대기하고 있다. Process 시스템은 가장 초창기에는 단일 프로세스 시스템으로 한 번에 하나의 프로그램만 실행되었다. ...
Context Switching 컨텍스트 스위칭(Context Switching)이란 CPU나 코어에서 실행 중이던 프로세스/스레드가 다른 프로세스/스레드로 교체되는 것이다. 여기서 컨텍스트는 프로세스/스레드의 상태를 의미한다.(CPU/메모리 안에서의) 컨텍스트 스위칭은 여러 프로세스/스레드를 동시에 실행 시키기 위해 필요하다. 이러한 컨텍스트 ...
CPU bound, IO bound에 대해 이야기하기 전에 CPU, IO가 무엇인지 짧게 살펴보자. CPU(central processing unit) : 프로세스의 명령어를 해석하고 실행하는 장치 IO(input/output) : 파일을 읽고 쓰기, 네트워크의 어딘가와 데이터를 주고 받는 것, 입출력 장치와 데이터를 주고 받는 것 …. 등...
Http의 특징 중 Stateful과 Stateless에 대해 알아보자. Stateful(상태 유지) Stateful(상태 유지)란, 클라이언트와 서버 관계에서 서버가 클라이언트의 상태를 보존하는 것을 뜻 합니다. 클라이언트가 연결을 끊을 때 까지 서버와 클라이언트는 계속 연결되어있다. 예를 들어 살펴보자. 자전거 판매를 하는 서버 X ...
Thread란 프로세스가 실행될 때 요청들을 처리하는 것, 코드의 실행 흐름을 의미한다. 우리가 Thread Pool을 사용해야하는 이유에 대해 알아보자. 만약 어떠한 요청이 들어올 때마다 새로운 Thread를 만들어야 된다면 어떤 문제가 발생할까? Thread 생성에 소요되는 시간 때문에 요청 처리가 더 오래 걸릴 것이다. Thread의 경우 ...