Category

· C++
C++의 모든 표현식(expression)은 두 가지 중요한 속성을 가지고 있다.Type(자료형) : 표현식이 나타내는 데이터의 유형Value Category(값 범주) : 표현식이 메모리에서 데이터를 어떻게 다루어야 하는지에 대한 특성C++11 이전에는 lvalue와 rvalue라는 두 가지 Value Category만 존재했으나, C++11 부터 메모리 관리와 이동 시맨틱을 보다 다양하게 지원하기 위해 이를 더 세분화했다. 이러한 변화는 C++에서 메모리 관리와 성능 최적화를 가능하게 하는 중요한 개념을 제공하며, 특히 이동 시맨틱을 통한 효율적인 자원 관리를 지원한다.   Value Category의 종류1. Prime Category (기본 값 카테고리) 모든 표현식은 Prime Category ..
· C++
매개변수(parameter)는 함수를 호출할 때 외부에서 전달된 값을 함수 내부에서 사용하기 위해 정의하는 변수다.매개변수는 함수 내부에서 선언되지는 않지만, 지역 범위(local scope)를 가지며 함수 호출 시 생성, 종료되면 소멸한다. 함수에 인수를 전달하는 방법에는 세 가지가 있다.값에 의한 호출(Call by Value)참조에 의한 호출(Call by Reference)주소에 의한 호출(Call by Address)  Call by Value'Call by Value 방식'은 함수 호출 시 전달하려는 변수의 복사본을 함수로 전달하는 방법이다. 이때 매개변수로 복사된 데이터는 함수 내부에서 독립된 메모리 공간을 차지하게 된다. 따라서 함수 내부에서 수정하더라도 원본 데이터에는 영향을 미치지 않는..
· OS
프로세스 스케줄링(Process Scheduling)은 여러 프로세스가 CPU를 공정하게 사용할 수 있도록 실행 순서를 결정하는 운영체제의 핵심 기능이다. 이를 통해 CPU를 포함한 시스템 자원의 효율적인 사용과 빠른 응답을 제공하는 역할을 한다.   프로세스의 버스트 (Process Burst)프로세스가 실행될 때, 주로 두 가지 유형의 작업 주기를 거치게 되며, 각각의 주기에서 다른 종류의 자원을 사용한다. 이 두 가지 주기는 CPU Burst 와 I/O Burst 로 나누어 진다. CPU Burst프로세스가 CPU를 가지고 명령을 수행하는 시간프로세스가 I/O 작업을 한번 수행한 후 다음 I/O 작업을 수행하기까지 CPU를 가지고 명령을 수행하는 일련의 작업I/O Burst프로세스가 I/O 장치와 ..
· OS
초기의 컴퓨터 시스템은 한 번에 하나의 프로그램만 실행할 수 있었다. 이는 한 번에 하나의 프로그램만 메모리에 적재하고, 그 프로그램을 실행한 후 종료되면 다음 프로그램을 적재하고 실행하는 방식을 사용했다는 뜻이다.반면, 현대의 컴퓨터 시스템은 여러 프로그램을 메모리에 적재하고 동시에(병렬적) 실행할 수 있다. 이로 인해 다양한 프로그램을 제어하고 메모리를 효율적으로 분할할 필요성이 증가하였고, 프로세스라는 개념이 도입되었다.  프로그램 (Program)프로그램(Program)은 컴퓨터에서 실행할 수 있는 명령어들의 집합으로, 기억 장치에 저장되어 파일 시스템에 존재하는 실행 파일이다. 프로그램은 명령어들의 집합일 뿐 그 자체만으로는 아무것도 할 수 없는 수동적인 존재(Passive Entity)이다. ..
Red-Black 트리는 이진 탐색 트리(Binary Search Tree, BST)의 한 종류로, 각 노드의 추가적인 색깔 정보(빨강 또는 검정)를 부여하고 이를 이용해 트리의 균형을 유지하는 자가균형 이진 탐색 트리이다.    Red-Black 트리의 표현Red-Black 트리는 다음과 같은 규칙을 이용해서 트리의 균형을 유지한다.모든 노드는 빨간색 또는 검은색이다.루트 노드는 검은색이다.리프 노드(NIL)는 검은색이다. (NIL, Null Leaf : 아무 데이터도 갖고 있지 않지만 색만 검은색인 더미 노드)빨간색 노드의 자식노드는 모두 검은색이다. (검은색 노드는 빨간색과 검은색 모두 자식으로 가질 수 있다.)루트 노드와 모든 리프 노드 사이에 있는 검은색 노드의 수는 모두 동일하다.  여기서 주..
· Network
OSI(Open Systems Interconnection) 모델의 7 계층 중 물리계층(Physical Layer)은 네트워크 통신의 가장 하위 계층으로, 데이터가 네트워크를 통해 이동할 수 있는 하드웨어적인 기반을 제공한다.  데이터 전송물리계층의 기본적인 역할은 상위 계층의 데이터를 비트(bit) 형태로 변환하여 전송하는 것입니다. 이 비트들은 전기적 신호(광신호, 무선 신호)나 전파의 형태로 변환되어 네트워크를 통해 전송된다. *비트(Bit) : 0과 1로 이루어진 디지털 데이터  [전기 신호]데이터를 주고 받기 위한 전기 신호에는 '아날로그 신호'와 '디지털 신호'가 있으며 주로 디지털 신호가 사용된다.아날로그 신호 : 시간에 따라 '연속적'으로 변하는 신호디지털 신호 :  특정한 값(0과 1)..
AVL 트리(Adelson-Velsky and Landis Tree)는 이진 탐색 트리(Binary Search Tree, BST)의 한 종류로, 모든 노드에서 왼쪽 서브트리와 오른쪽 서브트리의 높이 차이가 최대 1이 되도록 유지하는 자가 균형 이진 탐색 트리이다.  AVL 트리의 표현AVL 트리는 기본적으로 이진 탐색 트리의 조건을 모두 만족해야 하며, 모든 노드의 균형 인수(Balance Factor)가 -1, 0, 1 중 하나의 값을 가져야 한다. 균형 인수는 왼쪽과 오른쪽 서브 트리의 높이 차이를 의미한다.  Balance Factor = Height(Left Subtree) - Height(Right Subtree)    AVL 트리의 특징1. 트리의 높이 균형 유지트리가 항상 균형을 유지하도록..
이진 탐색 트리(Binary Search Tree, BST)는 트리 자료구조의 한 형태로, 이진 탐색 알고리즘의 원리를 적용한 자료구조이다. 즉, 이진 탐색 트리는 이진 트리(Binary Tree)의 특성을 기반으로 하여 데이터의 효율적인 탐색, 삽입, 삭제를 가능하게 한 구조입니다. 그러나 트리의 균형이 맞지 않으면 성능이 저하될 수 있어 AVL 트리, 레드-블랙 트리와 같은 자가 균형 이진 탐색 트리가 사용되기도 한다.   이진 탐색 트리의 표현이진 탐색 트리(Binary Search Tree)는 트리 자료구조의 한 형태로 다음 조건을 만족하는 트리이다.중복 데이터를 허용하지 않는다.노드의 왼쪽 서브트리에는 해당 노드의 값보다 작은 값의 노드들만 포함된다.노드의 오른쪽 서브트리에는 해당 노드의 값보다..
· Algorithm
버블 정렬(Bubble Sort)은 자료 구조를 순차적으로 순회하며 인접한 요소들을 비교하여 정렬 조건에 맞지 않으면 교환하면서 정렬을 수행하는 알고리즘이다. 버블 정렬은 정렬 속도가 느려 잘 사용되지 않지만, 구현이 간단해 버그 발생 가능성이 적다는 특징이 있다.  알고리즘버블 정렬은 다음과 같은 과정으로 이루어 진다.배열의 첫 번째 요소부터 시작하여 인접한 두 요소를 비교한다.인접한 두 요소가 정렬 조건에 맞지 않으면 교환한다.반복 횟수를 i라고 정의했을 때, n - i 번째 요소까지 비교한다.위 과정을 n - i = 1이 될 때까지 반복한다.▶ 버블 정렬은 자료구조를 한 번 순회할 때마다 정렬해야 하는 범위가 하나씩 줄어든다. 이는 한번 순회할 때 마다 맨 마지막 요소가 정렬이 완료되기 때문이다. ..
트리(Tree)는 데이터의 계층적인 관계를 표현하는 비선형 자료구조로 그래프(Graph)의 특별한 형태이다. 이진 트리, 이진 검색 트리, AVL 트리, 레드-블랙 트리, 힙 등 다양한 특수화된 형태의 트리가 존재하며  검색 알고리즘, 파일 시스템, 데이터베이스 등 다양한 분야에서 유용하게 활용된다.   트리의 표현 트리는 그래프의 특별한 형태로 다음과 같은 조건 만족해야 한다.사이클(Cycle)이 없는 비순환 구조 (한 노드에서 출발하여 다시 자신으로 돌아오는 경로가 존재하지 않는다.)하나의 루트(Root) 노드와 N개의 서브 트리(Sub Tree)로 구성모든 노드는 하나의 부모(Parent) 노드만 가진다.트리의 모든 노드를 순회하기 위해서는 반드시 루트(Root) 노드를 거쳐야한다.노드가 N개인 트..
구문
'분류 전체보기' 카테고리의 글 목록