1. 배열(Array) 미리 할당된 크기에 연관된 데이터를 메모리 상에 연속적이고 순차적으로 저장하는 선형 자료구조 특징 저장공간이 고정되어 있음 순차적으로 저장 인덱스로 원소에 바로 접근할 수 있다. 마지막 원소가 아닌 원소를 제거하면 인덱스를 조정하는 shifti
노드와 노드를 연결하는 간선으로 연결된 자료 구조로, 연결되어 있는 객체 간 관계를 표현할 수 있는 비선형 자료구조이다.노드들 사이에 무방향/방향 경로를 가질 수 있다.무방향 그래프의 경우 간선을 통해 양방향으로 갈 수 있으며 노드 A와 노드 B를 연결하는 간선은 노
그래프는 인접행렬과 인접 리스트로 구현될 수 있다. 인접 행렬 > 그래프에서 어느 노드들이 간선으로 연결되어 있는지를 나타내는 행렬이다. 구현 시에는 이차원 배열로 구현되며 노드 사이에 간선이 있다면 1, 없다면 0으로 표현한다. 방향 그래프의 경우는 위의 사진과
1. 동적 배열(Dynamic Array) > 크기가 고정되어 있어 할당한 크기보다 많은 갯수의 데이터를 저장할 수 없는 배열과는 달리 유동적으로 저장공간을 resize할 수 있는 자료구조. 특징 데이터 추가 시 기존에 할당된 크기를 초과하게 되면 사이즈를 늘린 배열을 선언하고 그곳으로 기존의 데이터를 옮기는 resizing이 일어난다. Doubling...
후입선출 (LIFO: Last-In-First-Out) 자료구조이다. 마치 바구니에 책을 겹겹이 쌓아올리는 것처럼 한 방향에서만 데이터의 삽입/삭제가 일어난다.가장 최근에 추가한 데이터가 가장 먼저 나오는 후입선출 자료구조이다. 예를 들어 상단 그림에서는 A-B-C 순
Hash Table이란? > 효율적인 탐색을 위한 자료구조로써 key-value 쌍의 데이터를 입력받아 해시 함수에 key값을 입력으로 넣어 얻은 해시값을 데이터의 위치로하여 데이터를 저장한다. 특징 데이터 저장, 삭제, 탐색 시 시간 복잡도는 O(1)이다. 충돌
컴퓨터 프로그래밍 패러다임 중 하나로, 기존 프로그램을 명령어들의 모임으로 봤던 시각에서 벗어나, 여러개의 독립된 단위인 객체들의 모임으로 바라보고자 하는 것이다.💡 객체란? 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 저장공간을 의미하며, 값을 저장할
애플리케이션이 시작될 때, 어떤 클래스가 최초 한번만 메모리를 할당하고 해당 메모리에 인스턴스를 만들어 사용하는 패턴.싱글톤 패턴은 클래스의 인스턴스를 하나만 만들어 사용하는 패턴을 말한다. 주로 데이터 커넥션 풀이나 스레드 풀, 캐시, 로그 기록 객체와 같이 공통된
네트워크 통신이 일어나는 과정을 7계층으로 나눈 것이다. 통신이 일어나는 과정을 단계적으로 이해할 수 있고, 특정 단계에 이상이 생기면 다른 계층의 장비 및 소프트웨어를 건드리지 않고도 해당 단계만 고치면 되기 때문에 네트워크 통신을 계층화하여 나누는 것이다.리피터,
데이터베이스의 상태를 변화시키기 위한 하나의 작업 단위 또는 한번에 실행되어야 할 일련의 연산트랜잭션은 데이터베이스 시스템의 병행제어 또는 회복 작업 시 처리되는 작업 단위이다.하나의 트랜잭션은 Commit 되거나 Rollback 된다.하나의 트랜잭션은 모두 반영되거나
하나의 가변 데이터에 두 개 이상의 스레드가 접근할 때 발생할 수 있는 문제멀티 스레드 환경에서는 자원을 공유하며 작업을 동시 처리한다. 이때 하나의 스레드에서 작업이 끝나기 전에 다른 스레드에서 동일한 데이터에 접근하게 된다면 데이터의 정합성이 깨지는 문제가 발생할