컴퓨터가 이해하는 정보 컴퓨터는 0과 1로 표현된 정보만 이해하며 그 정보에는 크게 데이터(data), 명령어(instruction)이 있다. 데이터는 컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상과 같은 정적인 정보를 말하며 명령어는 데이터를 움직이고 컴퓨터를 작동시키는 정보이다. 컴퓨터 구조의 핵심 부품 아두이노, 라즈베리 파이, 스마트폰, 노트북 등 세상에는 여러 컴퓨터가 있고, 크기와 용도도 제각각이다. 하지만 외관과 용도를 제외하면 핵심 부품은 크게 다르지 않다. 중앙처리장치(CPU; Central Processing Unit) 주기억장치(main memory), 이하 메모리 보조기억장치(secondary storage) 입출력장치(input/output(I/O) device) 주기억장치(ma..
Computer Science
실력 있는 개발자가 되려면 반드시 알아야 할 기본 지식이다. 컴퓨터 구조를 이해하면 얻을 수 있는 이점이 많다. 문제해결 컴퓨터 구조를 이해하고 있다면 문제 상황을 빠르게 알 수 있으며, 문제 해결의 실마리를 다양하게 찾을 수 있고, 더 좋은 해결책을 고민할 수 있는 능력이 생긴다. 이러한 사고가 가능하면 미지의 대상이 아닌 분석의 대상이 된다. 이러한 역량은 업무를 수행 할 때 필요하며 기업의 각종 기술 면접에서 컴퓨터구조에 관한 소양을 검증하거나 반드시 알아야 하는 분야로 명시하기도 한다. 성능, 용량, 비용 만약 웹 사이트를 개발하였고, 사용자들에게 선보이려면 서버 컴퓨터가 필요한데, 다양한 종류의 서버컴퓨터가 있고, 그마다 CPU, 메모리등이 다르고 그에 따라 성능, 용량, 비용이 다양하다. 만약..
스택(Stack)과 큐(Queue) 스택과 큐는 제약을 갖는 배열이다. 제약하는 데이터 구조를 사용하면 잠재적 버그를 막을 수 있으며 문제를 해결하는 새로운 사고방식을 제공한다. 또한, 제약을 제대로 이해해서 작성한 코드는 다른 개발자에게 익숙하고 명쾌하게 읽힌다. 그 알고리즘이 그러한 제약을 가진 채로 동작함을 알게 된다. 스택(Stack) 스택 연산을 묘사하자면 (Last In, First Out) 후입선출을 뜻한다. 처음 들어간 원소가 마지막에 나온다. 스택은 다음과 같은 세 가지 제약이 있다. 데이터는 스택의 끝에만 삽입 가능 데이터는 스택의 끝에서만 삭제 가능 스택의 마지막 원소만 읽을 수 있음 또 한, 스택의 특징은 스택의 끝을 top 스택의 시작을 bottom 스택의 top에서 원소를 제거하..
해시 테이블(hash table) 대부분의 프로그래밍 언어는 해시 테이블(hash table)이라는 자료 구조를 포함한다. 빠른 읽기라는 놀랍고 엄청난 장점이 있고, 해시, 맵, 해시 맵, 딕셔너리, 연관 배열 등의 이름을 갖는다. 다음은 해시 테이블을 사용해 파이썬으로 구현한 메뉴이다. (파이썬에서는 딕셔너리라 부른다.) menu = { "one" : 1, "two" : 2, "three" : 3, "four" : 4, "five" : 5 } 쌍으로 이루어져 있으며, 첫번째 항목을 키(key)라 부르고, 두 번째 항목을 값(value)이라 부른다. 파이썬에서는 다음과 같은 문법으로 키의 값을 룩업할 수 있다. print(menu["two"]) # 2 해시 테이블의 값 룩업은 딱 한단계만 걸리므로 평균적..