공학적 지식을 모아둔 페이지.

컴퓨터 운영체제

컴퓨터는 어느 작업이던지 간에 0, 1로만 처리를 한다. 이를 이진법이라고 한다. (인간은 10진수)

0은 false, 1은 true로 처리한다.

이를 비트라고 한다. 비트가 8개 모이면 바이트가 된다.

바이트는 메모리에 저장되어 있는 데이터를 처리하는 기본 단위이다.

rgb 함수는 16진수로 표현된 색상을 받아서 빨간색, 초록색, 파란색을 반환한다.

255 255 255 - 흰색 000 000 000 - 검정색


자료구조

Stack

Stack의 자료구조는 FILO(First In Last Out) 구조이다. FILO를 이해하기 위해서는 설거지를 생각하면 된다.

설거지 (모든 그릇에 퐁퐁을 칠하고 하나씩 헹굼 → 가장 먼저 헹군 그릇은 마지막에 쌓이게 됨) 엘리베이터(가장 먼저 들어온사람이 마지막에 나가게 됨)

Stack의 자료구조는 데이터를 쌓아 올리는 형태이다. 데이터를 쌓아 올리는 형태이기 때문에 데이터를 추가하는 것을 push, 데이터를 제거하는 것을 pop이라고 한다.

스택 형태의 자료구조 중 가장 대표적인 것은 역시 배열이다.

const stack = [];

stack.push(1);
stack.push(2);
stack.push(3);

큐(Queue)

FIFO 원칙을 따르는 자료구조

Queue의 자료구조는 FIFO(First In First Out) 구조이다. 데이터가 도착한 순서대로 처리해야 할때 사용되며, 작업 스케줄링 등의 역할을 수행한다. 이러한 특성 덕분에 버퍼등에 사용된다. (통신 시스템에서 버퍼는 대부분 큐의 역할로 구현된다.)

버퍼(Buffer)

데이터를 임시로 저장하는 메모리 영역

데이터 전송 속도 차이 조절, 임시 저장, 데이터 처리 최적화를 위해 사용된다. 구현에 따라 다양한 접근 패턴이 가능하나, 대부분 FIFO의 형태로 처리된다.

참고로 모든 버퍼가 큐는 아니다.

버퍼는 날계란을 던진다고 가정했을때, 해당 계란을 흡수하는 일종의 완충제 역할을 수행한다. 데이터 송수신 시점의 비동기성을 해결하며, 수신측이 준비되지 않은 상황에서도 데이터 손실을 방지해주는 역할을 한다.

즉, 수신자가 준비될 때까지 데이터가 도착하면 데이터가 손실되며, 이는 계란을 바로 손으로 받지 못하면 깨지는 것과 같으므로 다음과 같은 비유를 사용한다.

덱(DeQue)

Double Ended Queue, 양방향 큐의 자료구조이다.


‼️ 모든 글이 정확하지 않을 수 있습니다. 잘못된 정보가 있을 경우 댓글로 알려주시면 감사하겠습니다.



Table of contents