0과 1로만 어떻게 문자, 숫자를 표현할까? 정보 단위 --컴퓨터는 0과 1로 모든 정보를 표현하고, 0과 1로 표현된 정보만을 이해할 수 있다. 정보 단위는데이터를 표현하고 처리하는 데 사용되는 기본적인 크기를 의미한다. 비트 ( Bit )바이트 ( Byte )킬로바이트 (KiloByte, KB )메가바이트 ( MegaByte, MB )기가바이트 ( GigaByte, GB )테라바이트 ( TeraByte, TB ) 비트 (Bit)는0과 1을 나타내는 가장 작은 정보 단위로 0 또는 1만 표현이 가능하다.(비트는 전기 신호에서 0 = 꺼짐, 1 = 켜짐의 상태를 나타낸다.)즉, 0 또는 1만 표현이 가능한 한 자릿수 단위라고 생각하면 된다. 1bit = 0, 1 총 2가지 정보 표현 가능2..
분류 전체보기
컴퓨터 구조는 무엇일까? 컴퓨터 구조 --컴퓨터 구조는컴퓨터 시스템의 설계와 동작 원리에 대한 것으로하드웨어와 소프트웨어가 어떻게 상호작용하는지에 대한 이해를 돕는다. 컴퓨터 구조에 대한 지식은 크게 두 가지다.컴퓨터가 이해하는 정보컴퓨터의 네 가지 핵심 부품-- 컴퓨터가 이해하는 정보 --컴퓨터는 0과 1로 표현된 정보만을 이해할 수 있다. 0과 1로 표현된 정보에는 크게 두 종류가 있다.데이터 (Data)명령어 (Instructions) 데이터는컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상 등 정적인 정보를 의미한다.즉, 컴퓨터가 처리해야 할 정보나 자료를 의미하고이러한 데이터는 0과 1로 이루어진 이진수(binary)로 저장되고 처리된다.(컴퓨터와 주고받는 정보나 컴퓨터에 저장된 ..
그래프는 무엇일까? 그래프 (graph) --그래프는노드의 집합과 간선(edge, 엣지)의 집합으로 구성된다. 노드(node)는그래프의 기본 요소로, 보통 정점(Vertex)이라고도 부른다.각 노드는 데이터를 저장할 수 있으며, 다른 노드와의 관계를 나타내는 엣지에 의해 연결된다.엣지(Edge)는두 노드를 연결하는 선으로, 노드 간의 관계나 연결을 표현한다.엣지는 방향이 있는 경우와 없는 경우가 존재한다.- 방향이 없는 엣지는 무방향 엣지(Undirected Edge)라고 부르며 보통 양방향을 의미한다.(무방향 엣지로 이루어진 그래프를 무향 그래프 (Undirected Graph)라고 부른다.)- 방향이 있는 엣지는 유방향 엣지(Directed Edge)라고 부르며 해당 방향을 가리키는 의미다...
캐시란 무엇인가? 캐시 (cache) --캐시는데이터 접근 비용을 줄이기 위해 일부 데이터를 계산이 이뤄지는 곳에서 가까운 위치에 저장하는 자료 구조다. 평소에 컴퓨터의 모든 저장소를 동등하게 취급했지만(여기서 동등하게 취급했다는 것은 모든 저장소에 접근하는 비용이 비슷하게 취급했다는 의미다.)사실 모든 데이터 저장소가 동등하지 않다. 실제 서로 다른 저장 매체들은저장 용량, 속도, 비용 사이에 트레이드 오프 관계가 존재한다. 트레이드 오프(trade-off) 관계는한 가지 이점을 얻기 위해 다른 이점을 포기하는 상황을 의미한다. 저장소 종류 CPU 자체의 메모리 (레지스터 or 지역적 캐시)속도가 매우 빠름저장 공간이 작음컴퓨터의 RAMCPU 메모리보다 더 큰 공간을 제공CPU 메모리보다 속..
해시 테이블이란 무엇일까? 키를 사용한 저장 및 탐색 --정수 값을 효율적으로 탐색하기 위한 이상적인 인덱싱 방법을 생각해 보면모든 값에 대해 개별적으로 배열 상자를 유지하고,값을 사용하여 해당 상자를 인덱싱하는 것이다. 인덱싱(Indexing)은데이터를 효율적으로 검색하고 조회하기 위해 데이터의 위치나 상태를 체계적으로 정리하는 과정을 의미한다.예시) 도서관에서 책을 쉽게 찾기 위해 책의 위치를 정리하는 것 간단한 예시를 들면값 9를 삽입하기 위해 인덱스가 9인 상자에 넣는다. 다만 이러한 자료 구조에는 존재할 수 있는 모든 키의 배열을 유지하기 위해 엄청난 비용이 들게 된다.예시로 16자리 신용카드 번호를 모두 저장하려면 10^16개의 상자가 필요하게 된다. (아주 큰 메모리가 필요)여기서 ..
우선순위 큐는 무엇이고힙은 무엇일까? 우선순위 큐(priority queue) --우선순위 큐는주어진 점수에 따라 항목을 정렬하여 탐색하는 자료 구조다. 기초적인 스택과 큐는데이터가 삽입된 순서만 고려했지만, 우선순위 큐는추가 정보, 즉 우선순위를 사용해서 탐색 순서를 결정한다. 그래서 자료 구조를 데이터에 더 적합하게 적용할 수 있으며,유용한 응용 분야 중 하나로, 긴급한 요청을 먼저 처리할 수도 있다. 우선순위 큐의 특징항목 집합을 저장하고, 가장 높은 우선순위를 가진 항목을 쉽게 탐색하게 해 준다.우선순위 큐는 동적이며, 삽입과 탐색을 혼용해도 잘 작동한다.우선순위가 지정된 작업 목록에서 항목을 추가하거나 제거 또한 가능해야 한다. 기본적인 우선순위 큐의 주요 연산 기능항목과 그 항목..
트라이란 무엇이고적응형 자료 구조는 무엇인가? 트라이 (Trie) --트라이는문자열을 저장하고 검색하기 위한 트리 형태의 자료 구조로문자열을 접두사 기준으로 다른 하위 트리로 분할하는 트리 기반 자료 구조다. 각 노드는 하나의 문자와 관련되어 있으며루트에서부터 리프 노드까지의 경로가 하나의 문자열을 나타낸다. 트라이는이진 탐색 트리와 마찬가지로, 루트 노드에서 시작하고루트 노드는 빈 접두사를 나타낸다. 루트 노드의 자식 노드는 각 문자열의 다음 문자를 정의한다.이로 인해 각 노드는 둘 이상의 자식을 가질 수 있다. 최소 하나 이상의 자식 노드가 있는 노드를 '내부 노드',자식이 없는 노드를 '리프 노드'라고 부른다. 트라이 자료 구조의 각 노드 객체 구조 [JAVA]class TrieNode..
이진 탐색 트리란 무엇인가? 이진 탐색 트리 (binary search tree) --이진 탐색 트리는이진 탐색 알고리즘을 기반으로 동적 자료 구조를 생성하는 것으로 정렬된 배열과 달리효율적인 원소 추가 및 제거뿐 아니라 탐색도 추가로 지원한다. 트리(tree)는노드의 분기 사슬로 구성된 계층적인 자료 구조다.트리 노드는하부 리스트를 가리키는 2가지 next 노드를 허용한다는 점에서 연결 리스트와 차이가 있다. 이진 탐색 트리 예시 구조 위 그림처럼노드는 값을 포함하며,트리의 하위 노드를 가리키는 포인터를 최대 2개 가진다. 여기서 자식이 하나 이상 있는 노드를 '내부(internal, 또는 비단말/비말단/비종단) 노드' 라고 부르며자식이 없는 노드를 '단말(terminal, 또는 말단/종단)..