복잡도란? 알고리즘의 성능을 나타내는 척도 복잡도는 시간 복잡도(Time Complexity)와 공간 복잡도(Space Complexity)로 나눌 수 있다. 시간 복잡도 시간 복잡도는 특정한 크기의 입력에 대하여 알고리즘이 얼마나 오래 걸리는지, 얼마만큼의 연산이 필요한지를 의미한다. 시간 복잡도를 표현할 때는 빅오(Big-O) 표기법을 사용하...
트리란? 트리 자료구조는 굉장히 우리 일상과 밀접한 개념이다. 부모와 자식, 토너먼트 표, 어떠한 조직의 조직도 역시 트리 자료구조다. 또한 컴퓨터의 폴더 및 디렉토리 시스템이 가장 대표적이라고 볼 수 있는데, 우리는 파일을 찾기 위해 어떠한 폴더를 들어가고, 또 들어가는 식으로 목표에 도달하게 된다. 계층 구조 트리는 대표적인 계층 구조의 자료...
힙(Heap)이란? 최댓값, 최솟값을 빠르게 찾기 위해 고안된 자료형으로 우선순위 큐를 위해 만들어졌다. 완전 이진 트리의 일종으로, 각 노드의 키값이 그 자식의 키 값보다 작지않거나(최대 힙), 크지 않은(최소 힙) 완전 이진 트리이다. 완전이진트리는 중복을 허용하지 않지만 힙은 허용한다. 특징 힙에서의 부모 자식 관계 오른쪽 자식의 인덱스 ...
디자인 패턴(Design Pattern) 객체 지향 프로그래밍 설계를 할 때 자주 발생하는 문제들을 피하기 위해 사용되는 패턴 "바퀴를 다시 발명하지 마라" 라는 말이 있다. 잘 작동되고 있는 것을 처음부터 다시 개발할 필요는 없다는 것을 의미한다. 패턴(Pattern) 공통의 언어를 만들어 의사 소통을 원활하게 한다. 각기 다른 소프트웨어 모...
MVC 패턴(Model View Controller) MVC란, Model View Controller의 약자로 애플리케이션을 세가지 역할로 구분한 개발 방법론 GUI 기반의 애플리케이션 개발에 주로 사용된다. 화면과 데이터 처리를 분리해 코드간의 종속성을 줄이고, 구성요소 간의 역할을 명확히 한다. MVC 패턴의 구성 Model Model은...
처리량 (Throughput) 통신 : 단위 시간 당 운반 가능량 또는 무 오류 운반량 통신 채널이 운반할 수 있는 데이터의 총 량 / 총 전달 능력 단위 : byte/sec 또는 bit/sec 단위(초당 보낼 수 있는 데이터 비트의 수, 비트율) 이 경우에, Throughput은 일명 대역폭(Bandwidth) ...
메모리 저장장치 구조 다양한 저장장치 시스템 간의 주요 차이점은 속도, 크기 및 휘발성에 있다. 레지스터 CPU 안에 있는 작은 메모리, 휘발성, 속도가 가장 빠름, 기억 용량이 가장 적다. 캐시 휘발성, 속도 빠름, 기억 용량이 적다. 메인 메모리
JOIN Join이란 ?? 두 개 이상의 테이블을 하나의 집합으로 만드는 연산 테이블로서 저장되거나, 그 자체로 이용할 수 있는 결과 Set이 만들어짐 의미 있는 데이터의 집합을 만들기 위해서 테이블 간의 관계를 갖게 해줌 저장 공간의 효율성과 확장성이 향상됨 서로 관계있는 데이터가 여러 테이블로 나뉘어 저장되므로 각 테이블...
Scaling-out is superior to Scaling-up Scale out 아주 많은 값싼 서버들을 이용함 데이터 중심(data-intensive) 어플리케이션 분야에서는 아주 많은 값싼 서버들을 많이 이용하는 것을 선호함 Scale up 적은 수의 값비싼 서버들을 이용함 고가의 서버들은 가격의 관점에서는 선형으로...