전체 글
레드 블랙 트리(Red-Black Tree)
Red-Black Tree란? Red-Black 트리는 이진 탐색 트리(BST)의 한 종류입니다. BST는 루트 노드의 값이 왼쪽 노드 보다는 크고 오른쪽 노드 보다는 작은 이진 트리입니다. Red-Black트리와 BST와의 가장 큰 차이는 스스로 균형을 잡는 다는 점입니다. BST의 경우 만약 값의 삽입이 2 - 3 - 5 - 7 과 같이 오름차순으로 삽입이 된다면 아래 그림과 같이 최악의 경우 O(n)의 탐색 시간복잡도를 지니게 됩니다. Red-Black 트리는다음과 같은 문제를 해결하여 탐색 시 최악의 경우에도 O(logN)의 시간복잡도를 지닙니다. Red-Black Tree의 속성 Red-Black 트리는 총 5가지의 속성을 지니고 있습니다. 하나씩 살펴보도록 하겠습니다. 1. 모든 노드는 red..
AOP에 대하여
AOP AOP는 Aspect-Oriented-Programming의 약자를 뜻합니다. 서로 다른 클래스라 하더라도 비슷한 기능을 담당하는 부분은 존재할 수 있습니다. 예를 들어 다음과 같은 A B C 클래스가 존재한다고 가정해보겠습니다. 클래스안의 색깔 블록은 특정 기능을 수행하는 기능입니다. 만약 보라색 블록을 수정한다면 A B C 모든 클래스에서 일일이 수정해줘야 하기 때문에 유지 보수 측면에 있어서 굉장히 어려워지게 됩니다. 이런식으로 소스 코드 상에서 계속 반복해서 사용되는 부분들을 흩어진 관심사라고 합니다. 이를 해결하고자 나온게 AOP입니다. 흩어진 관심사를 모듈화를 통해 모아주고 어느 클래스에서 사용하는지 입력만 해주면 됩니다. 위 그림과 같이 클래스로 부터 블록들을 뺴와서 Aspect에 담..
플래시 메모리란?
플래시 메모리 보조 기억 장치에는 하드디스크 외에도 플래시 메모리 기반의 보조 기억 장치가 존재합니다. USB 메모리, SD카드, SSD가 모두 플래시 기반의 메모리 보조기억장치에 속합니다. 이전에 살펴본 하드디스크의 경우 자기적인 장치였다면 플래시 메모리는 반도체 기반의 저장 장치입니다. 플래시 메모리에는 셀이라는 단위가 있습니다. 셀은 플래시 메모리에서 데이터를 저장하는 가장 적은 단위를 뜻합니다. 하나의 셀에 몇 비트를 저장하느냐에 따라 플래시 메모리의 종류가 나뉩니다. - SLC(Single Level Cell) : 하나의 셀에 1비트를 저장 할 수 있는 플래시 메모리 타입 - MLC(Multiple Level Cell) : 하나의 셀에 2비트를 저장 할 수 있는 플래시 메모리 타입 - TLC(T..
제너릭이란?
제너릭이란? 제너릭은 메서드나 컬랙션 클래스에 컴파일 시 타입체크를 해주는 기능입니다. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형변환은 번거로움을 줄여주는 기능을 합니다. 제너릭의 장점 1. 타입 안정성 제공 2. 타입 체크와 형변환을 생략가능 함으로 코드가 간결해진다. 제너릭 타입은 클래스와 메서드에 선언될 수 있는데, 오늘은 클래스에 선언된 제너릭 타입에 대해 살펴보도록 하겠습니다. 위의 예시에서 클래스 오른쪽에 라고 붙은것을 확인 할 수 있습니다. 또한 인스턴스 변수의 앞에도 T가 붙어 있는 것을 볼 수 있습니다. 위와 같이 GenericExample을 생성할때 안에 원하는 타입을 넣으면 GenericExample 클래스의 T부분이 모두 해당 타입으로 바뀌게 됩니다...