[바미] 큐잉 이론(Queueing Theory)이란?
·
프로그래밍(Basic)/이론
큐잉 이론(Queueing Theory)이란?우리 주변에는 ‘대기열(Queue)’라는 개념이 곳곳에 존재합니다. 패스트푸드점에서 줄을 서는 고객, 콜센터에 전화를 기다리는 고객, 웹 서버에 몰려드는 사용자 요청 등 다양한 서비스 대기 상황들이 있는데 큐잉 이론(Queueing Theory)은 이러한 대기열을 수학적으로 분석해, 가장 효율적으로 처리하기 위한 방법을 연구하는 분야입니다.  이를 통해 우리는 어떤 조건에서 얼마나 많은 자원을 배치해야 평균 대기 시간이 줄어들 수 있는지, 시스템 처리 효율을 최대화하기 위해 대기열 구조를 어떻게 설계해야 하는 지와 같은 문제를 해결할 수 있습니다. 큐잉 이론이 중요한 이유현대 IT 환경에서 큐는 다양한 계층에서 핵심적인 역할을 합니다. 단순히 눈에 보이는 고객..
[바미] ES2015에 대하여
·
프로그래밍(Basic)/Javascript(TS,Node)
들어가며...2015년부터 자바스크립트에 매우 커다란 변화가 있었는데 이를 ES2015 또는 ES6라고 부릅니다.이 시기를 기점으로 자바스크립트는 매년 새로운 문법에 대해 발표가 진행되고 있습니다. (참고로 2024년 현재 ES2024까지 나와있습니다.) 그럼 이제 어떤 부분이 추가가 되었는 지 확인해봅시다!변경점1. let과 const자바스크립트를 처음 배우는 분들이라면 var를 사용하여 변수를 선언하시는 방법을 배우셨을 겁니다.이제 var대신 let과 const를 쓰셔야 할 때입니다. 아래 예시로 차이점을 보시죠.function scopeTest() { if (true) { var varVariable = "I am a var variable"; let letVariab..
[바미] 자료구조 - 해시맵(HashMap)
·
프로그래밍(Basic)/이론
해시맵(HashMap)?키-값(Key-Value) 쌍을 저장하는 자료구조입니다. 빠른 검색, 삽입, 삭제를 가능하게 하며, 데이터의 중복을 허용하지 않는 특징이 있죠. 해시맵은 해시 함수(Hash Function)를 사용하여 키를 해시 코드(Hash Code)로 변환하고, 이를 배열 인덱스로 사용하여 값을 저장합니다.해시맵의 주요 특징키-값 쌍 저장해시맵은 키와 값의 쌍으로 데이터를 저장합니다. 각 키는 고유하며, 키를 통해 해당 값을 빠르게 검색할 수 있습니다.해시 함수해시맵은 해시 함수를 사용하여 키를 해시 코드로 변환하고, 이 해시 코드를 배열의 인덱스로 사용하여 값을 저장합니다. 해시 함수는 입력 값(키)을 고정된 크기의 해시 코드로 변환하는 함수입니다.빠른 검색 해시맵은 일반적으로 O(1)의 시..
[바미] 자료구조 - 트리(Tree)
·
프로그래밍(Basic)/이론
트리(Tree)?계층적인 구조를 나타내는 자료구조입니다. 트리는 루트 노드(root node)에서 시작하여 각 노드가 0개 이상의 자식 노드(child node)를 가지며, 자식 노드들도 다시 트리 구조를 형성하는 형태로 이루어져 있습니다.트리의 구조루트 노드(root node): 부모가 없는 최상위 노드. 트리는 하나의 루트 노드만을 가집니다.단말 노드(leaf node): 자식 노드가 없는 노드. '말단 노드' 또는 '잎 노드'라고도 부릅니다.내부 노드(internal node): 단말 노드가 아닌 노드를 의미합니다.간선(edge): 노드 간을 연결하는 선으로, 링크(link) 또는 브랜치(branch)라고도 부릅니다.형제 노드(sibling): 같은 부모를 가지는 노드들을 의미합니다.노드의 크기(s..
[바미] 자료구조 - 그래프(Graph)
·
프로그래밍(Basic)/이론
그래프(Graph)?정점과 간선으로 이뤄진 자료구조 입니다. ❓ 정점 정점은 그래프에서 데이터를 저장하는 기본 단위입니다. 노드(Node)라고 불리기도 하고, 다양한 데이터를 저장할 수 있습니다. ❓ 간선정점을 연결하는 선으로 링크(link) 또는 브랜치(branch)라고도 합니다. 그리고 간선에는 방향이 존재하는 그래프와 방향이 없는 그래프가 존재합니다. 아래 그림처럼 방향이 존재하는 그래프는 방향그래프(directed graph), 방향이 존재하지 않는 그래프를 무방향 그래프(undirected graph)라고 부릅니다.추가적으로 그래프 탐색 방법 중 가장 기본적인 두 가지 중 깊이 우선 탐색(DFS, Depth-First Search)과 너비 우선 탐색(BFS, Breadth-First Search..
[바미] 자료구조 - 큐(Queue)
·
프로그래밍(Basic)/이론
큐(Queue)큐(Queue)는 자료 구조의 하나로, 데이터가 FIFO(First In, First Out) 방식으로 관리되는 구조입니다. 즉, 가장 먼저 삽입된 데이터가 가장 먼저 제거됩니다. 그리고 큐는 주로 운영 체제의 작업 스케줄링, 프린터 작업 관리, 데이터 스트리밍 등 다양한 분야에서 사용됩니다.큐는 용도에 따라 종류가 다양하니 큐의 종류에 대해 추가로 살펴보시는 것을 추천드립니다.큐의 주요 연산큐는 선형 자료 구조로 불리고, 두 개의 주요 연산을 제공합니다.Enqueue: 큐의 끝에 데이터를 삽입하는 연산.Dequeue: 큐의 앞에서 데이터를 제거하고 반환하는 연산.코드(Java)// 큐 클래스 정의class Queue { private int[] arr; // 큐의 요소를 저장할 ..
[바미] 자료구조 - 스택(Stack)
·
프로그래밍(Basic)/이론
스택(Stack)스택(Stack)은 자료 구조 중 하나로, 데이터가 LIFO(Last In, First Out) 방식으로 관리되는 구조입니다. 즉, 가장 나중에 삽입된 데이터가 가장 먼저 제거되는 구조를 가진 자료 구조죠.스택의 주요연산스택은 다음과 같은 주요 연산을 제공합니다.Push: 스택의 맨 위에 데이터를 삽입하는 연산.Pop: 스택의 맨 위에 있는 데이터를 제거하고 반환하는 연산.Peek (or Top): 스택의 맨 위에 있는 데이터를 제거하지 않고 반환하는 연산.IsEmpty: 스택이 비어 있는지 확인하는 연산.IsFull: 스택이 가득 찼는지 확인하는 연산 (배열 기반 스택의 경우).코드(Java)class Stack { private int[] arr; private int to..
[바미] 자료구조 - Linked list
·
프로그래밍(Basic)/이론
Linked list?포인터를 통해 여러 노드(Node)가 연결돼 있는 자료구조를 의미합니다. 노드(Node)자료구조에서 노드는 데이터를 저장하는 기본 단위를 의미합니다. 이 노드(Node)는 데이터를 저장하는 공간과 다음 노드를 가리키는 포인터 공간으로 구성됩니다. 이러한 구조 덕분에 Linked list의 삽입과 삭제에 걸리는 시간은 O(1)로 빠른편이죠.노드를 삽입할 땐 새 노드를 만들어 노드 사이에 포인터로 연결하면되고, 노드를 삭제할 땐 바로 앞의 포인터만 바꾸면 되기 때문입니다.위 그림에서 세 번째 노드를 삭제할 때 배열이였다면 그 뒤의 노드를 전부 한 칸씩 이동해야 하지만 Linked list는 바로 앞에 있는 노드의 포인터가 네 번째 노드를 가리키도록 수정하면 되죠. 하지만 Linked l..
[바미] CPU 코어와 멀티태스킹, 멀티프로세스, 멀티스레드의 관계
·
프로그래밍(Basic)/이론
싱글 코어 vs 멀티 코어싱글 코어 (Single Core)싱글 코어 CPU는 하나의 연산 장치를 가지고 있습니다. 싱글 코어에서는 멀티태스킹이 시간 분할 방식으로 이루어지며, 이는 CPU가 매우 빠르게 여러 작업을 번갈아가며 처리하는 방식입니다. 예를 들어, 프로세스 A와 프로세스 B가 있을 때, CPU는 잠깐 동안 프로세스 A를 실행한 후 프로세스 B를 실행하고, 다시 프로세스 A로 돌아갑니다.  이 과정이 매우 빠르게 반복되기 때문에 사용자는 두 작업이 동시에 실행되는 것처럼 느끼지만, 실제로는 한 번에 하나의 작업만 실행할 수 있습니다. 멀티 코어 (Multi Core)멀티 코어 CPU는 여러 개의 연산 장치를 가지고 있으며, 각 코어는 독립적으로 작업을 처리할 수 있습니다. 멀티 코어 시스템에서..
Bami
'프로그래밍(Basic)' 카테고리의 글 목록