선형 자료 구조: 연결 리스트, 배열, 백터
·
Computer Science
선형 자료 구조란?선형 자료 구조란 요소가 일렬로 나열되어 있는 자료 구조를 말합니다. 연결 리스트(Linked List)각 요소(노드)가 메모리상에 연속적으로 배치되지 않고, 개별적으로 분산되어 저장되며, 각 노드가 다음 노드에 대한 참조를 포함하는 구조입니다. 연결 리스트는 배열과 다르게, 삽입, 삭제가 용이하고, 크기가 가변적이라는 장점이 있습니다. 연결 리스트의 구조연결 리스트의 기본 단위는 노드(Node)입니다. 각 노드는 다음과 같은 두 가지 구성 요소를 가집니다. 데이터(Date): 노드가 저장하는 값포인터(Pointer): 다음 노드를 가리키는 참조 그래서 연결 리스트는 이 노드들이 연결된 형태로 구성되며, 각 노드는 다음 노드에 대한 참조를 가지고 있어 리스트를 순차적으로 탐색할 수 있습..
자료 구조 - 복잡도
·
Computer Science
자료 구조(data structure)란?효율적으로 데이터를 관리하고 수정, 삭제, 탐색, 저장할 수 있는 데이터 집합을 말합니다. 복잡도는 시간 복잡도와 공간 복잡도로 나뉩니다. 시간 복잡도(Time Complexity)시간 복잡도는 알고리즘이 수행되는 데 걸리는 시간을 입력 크기와 관련하여 분석하는 방법입니다. 알고리즘의 성능을 측정할 떄 입력 크기 n에 따라 실행 시간이 얼마나 빠르게 증가하는지를 나타냅니다. 이를 빅오 표기법(Big-O Notation)으로 나타내어, 최악의 경우에 알고리즘이 얼마나 많은 작업을 수행해야 하는지 설명합니다. 빅오 표기법(Big-O Notation)빅오 표기법은 알고리즘의 성능을 추상적으로 표현하며, 입력이 증가함에 따랄 알고리즘의 실행 시간이 얼마나 변하는지를 나타..
트랜잭션과 무결성
·
Computer Science
트랜잭션은 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위를 말하며 데이터베이스에 접근하는 방법은 쿼리이므로, 즉 여러 개의 쿼리들을 하나로 묶는 단위를 말한다. 이에 대한 특징은 원자성, 일관성, 독립성, 지속성이 있으며 이를 한꺼번에 ACID 특징이라고 한다. 주요 목적은 여러 작업이 포함된 프로세스에서 데이터 무결성을 보장하고, 시스템 장애나 에러 발생 시 일관된 상태로 복원할 수 있게 하는 것이다. 트랜잭션의 주요 특징 (ACID 속성)트랜잭션은 ACID 속성이라고 불리는 네 가지 특징을 가지고 있다. 1. Atomicity (원자성)트랜잭션 내의 모든 작업은 하나의 단위로 간주된다. 따라서 트랜잭션 내의 작업이 모두 성공하든지, 모두 실패하든지 해야 한다. 일부만 성공하거나 실패..
CPU 스케줄링 알고리즘
·
Computer Science
CPU 스케줄링 알고리즘은 CPU의 작업 처리 순서를 결정하는 방법으로, 여러 프로세스가 CPU를 공유해야 할 때 효율적으로 CPU 자원을 배분하는 데 사용됩니다. 각 알고리즘은 서로 다른 방식으로 CPU를 할당하여, 주로 처리 시간, 우선순위, 대기 시간 등을 고려한다. 그래서 프로그램이 실행될 때는 CPU 스케줄링 알고리즘이 어떤 프로그램에 CPU 소유권을 줄 것인지 결정한다. 이 알고리즘은 CPU 이용률은 높게, 주어진 시간에 많은 일을 하게, 준비 큐(readt queue)에 있는 프로세스느 적게, 응답 시간은 짧게 설정하는 것을 목표로 한다.-개념 참고-https://www.javatpoint.com/cpu-scheduling-algorithms-in-operating-systems CPU Sc..
메모리(Memory)
·
Computer Science
메모리(Memory)는 컴퓨터 시스템에서 데이터를 저장하고, 처리할 때 이 데이터를 임시로 유지하는 장치나 공간을 의미한다. 메모리는 컴퓨터가 작동하는 동안 프로그램과 데이터를 신속하게 읽고 쓸 수 있게 하여, 프로세서(CPU)가 필요한 정보를 빠르게 사용할 수 있도록 지원한다. 메모리의 주요 역할 데이터 저장: 프로그램이 실행되기 위해 필요한 데이터나 계산 결과를 저장한다. 명령어 저장: 실행 중인 프로그램의 명령어들을 저장하여 CPU가 이를 실행할 수 있도록 한다. 작업 공간 제공: 현재 실행 중인 작업에 필요한 데이터를 임시로 저장할 수 있는 공간을 제공한다.역사1940년대 초최초의 전자식 프로그래밍이 가능했던 디지털 컴퓨터인 ENIAC은 수천 개의 진공관을 사용하여 진공관에 저장된 10진수 20개..
Stack, Method, Heap 메모리
·
Computer Science
1. 스택(Stack) 메모리스택 메모리는 함수 호출과 관련된 데이터(로컬 변수, 함수 호출 스택 등)를 저장하는 데 사용된다. 스택은 LIFO(Last In, First Out) 구조를 따릅니다. 즉, 가장 나중에 저장된 데이터가 가장 먼저 꺼낸다.주요 특징로컬 변수: 함수나 메서드에서 선언된 변수는 스택 메모리에 저장된다. 이 변수들은 함수 호출이 끝나면 메모리에서 자동으로 제거된다.메서드 호출: 각 메서드 호출에 대해 스택 프레임이 생성된다. 스택 프레임은 메서드의 로컬 변수, 매개변수, 반환 주소 등을 저장한다.한정된 크기: 스택은 메모리의 크기가 제한되어 있으며, 너무 깊은 재귀 호출이나 지나치게 많은 메서드 호출로 인해 스택 오버플로우가 발생할 수 있다.public void exampleMet..
Overflow, underflow
·
Computer Science
Overflow (오버플로우)오버플로우는 변수나 메모리의 저장 용량을 초과하여 데이터가 잘못되거나 손실되는 상황을 의미한다.  정수 오버플로우: 정수형 변수에 저장할 수 있는 값의 범위를 초과할 때 발생한다. 예를 들어, 8비트 정수형 변수는 -128에서 127까지의 값을 저장할 수 있지만, 이 범위를 넘어서는 값이 할당되면 오버플로우가 발생한다.byte b = 127;b = (byte) (b + 1); // 오버플로우 발생System.out.println(b); // -128 출력 부동소수점 오버플로우: 부동소수점 숫자가 표현할 수 있는 최대값을 초과할 때 발생한다. 이 경우, 결과는 일반적으로 무한대(∞)로 처리된다.double d = Double.MAX_VALUE;d = d * 2; // 오버플로우..