[컴퓨터 구조] - 입출력 장치 (I/O Device)
·
💻 Computer Science/컴퓨터 구조
컴퓨터 하드웨어는 크게 중앙처리장치(CPU), 메인 메모리(기억 장치), 입출력 장치로 나뉘며 이들은 모두 버스(Bus)로 연결되어 있습니다. 이번 포스팅에서는 입출력 장치에 대해서 알아보겠습니다. 입출력 장치 (I/O Device) 포트(Port)는 컴퓨터와 외부의 다른 장비를 연결할 수 있게 하는 통로를 말합니다. 기본적으로 직렬 포트와 병렬 포트로 나눌 수 있습니다. 직렬 포트: 한 번에 하나의 신호를 전달할 수 있고, 보통 저속의 장치와 연결된다. 병렬 포트: 여러 비트의 신호를 동시에 전달할 수 있고, 직렬 포트에 비해서 고속 인터페이스를 제공한다. USB: 컴퓨터와 주변 기기를 연결하는데 쓰이는 입출력 표준 가운데 하나, 직렬/병렬 포트의 많은 부분을 대체한다. 입력 장치 입력 장치는 외부의 ..
[컴퓨터 구조] - 기억 장치 (Computer Data Storage)
·
💻 Computer Science/컴퓨터 구조
컴퓨터 하드웨어는 크게 중앙처리장치(CPU), 메인 메모리(기억 장치), 입출력 장치로 나뉘며 이들은 모두 버스(Bus)로 연결되어 있습니다. 이번 포스팅에서는 기억 장치에 대해서 알아보겠습니다. 기억 장치 기억 장치는 CPU에서 계산한 결과를 저장하는 공간입니다. 다음의 그림은 기억 장치를 성능에 따라 계층적으로 분류한 기억 장치의 계층 구조입니다. 기억 장치의 특성을 결정하는 요소는 다음과 같습니다. 기억 용량: 동일한 비용에서의 기억 장치의 용량 접근 시간: 기억 장치에 읽기/쓰기 요청을 한 후, 요청한 정보를 꺼내서 사용한 가능할 때까의 시간 사이클 시간: 기억 장치에 읽기/쓰기 요청을 한 후, 다시 요청할 수 있을 때까지 기다려야 하는 시간 대역폭: 기억 장치가 단위 시간에 처리할 수 있는 정보..
[컴퓨터 구조] - 중앙처리장치(CPU: Central Processing Unit)
·
💻 Computer Science/컴퓨터 구조
컴퓨터 하드웨어는 크게 중앙처리장치(CPU), 메인 메모리, 입출력 장치로 나뉘며 이들은 모두 버스(Bus)로 연결되어 있습니다. 이번 포스팅에서는 중앙처리장치에 대해서 알아보겠습니다. 중앙처리장치 (CPU) 중앙처리장치는 "기계어 명령어"를 해독하고 명령어를 파악한 후, 해당 명령어를 수행하기 위한 세부 작업을 실행합니다. 기본적으로 제어 명령을 보내거나 연산 수행을 하는 것이 중앙처리장치의 역할입니다. 중앙처리장치는 내부적으로 레지스터, 산술/논리 장치, 컨트롤 장치로 구성되어 있으며 이들은 모두 내부 버스로 연결되어 있습니다. 레지스터 (Registers) 레지스터란 플립플랍 여러 개를 일렬로 배열해서 구성한 것이며, CPU 연산을 위한 데이터를 저장하는 CPU 내부의 임시 공간입니다. 레지스터의 ..
[자료구조] - 해시 테이블과 해싱 (Hash Table & Hashing)
·
💻 Computer Science/자료구조-알고리즘
해싱은 "탐색 알고리즘"에 대한 공부를 전제로 합니다. 선형 탐색, 이진 탐색 등 탐색 알고리즘에 대해서 잘 알지 못한다면 이번 포스팅의 이해가 쉽지 않을 것입니다. 그렇기에 해시 알고리즘을 공부하기 전 탐색 알고리즘을 먼저 공부하고 그 후에 이 포스팅을 읽으시는 것을 추천합니다. (탐색 알고리즘 공부하기) 해싱 개요 탐색 알고리즘을 공부하면 배우는 "선형 탐색"이나 "이진 탐색"과 같은 방법들은 어떤 데이터가 어떤 인덱스에 있는지에 대한 정보를 전혀 알지 못할 때 진행하는 방식이며, 키를 저장된 키값과 반복적으로 비교하는 방식으로 탐색합니다. 이러한 방식은 아주 빨라야 $O(\log n)$의 시간 복잡도를 가집니다. 이 정도 시간 복잡도만 가지더라도 괜찮지만 더욱 빠른 탐색을 필요로 하는 경우, 더욱 ..
[알고리즘] - 탐색 알고리즘 (Searching Algorithm)
·
💻 Computer Science/자료구조-알고리즘
탐색 알고리즘 개요 여러 개의 자료 중 원하는 자료를 찾는 작업을 탐색이라고 합니다. 탐색은 컴퓨터 프로그램에서 가장 많이 사용하는 작업이며 또한 많은 시간이 요구되는 작업이기에 효율적으로 하는 것이 중요합니다. 탐색 알고리즘을 구현하기 위해 사용되는 자료구조는 매우 다양합니다. 그 중 배열을 사용하여 자료를 저장하고 찾는 방식이 가장 기초적이나, 탐색 성능을 높이기 위해서는 "이진 탐색 트리"와 같은 더 나은 방식을 사용하기도 합니다. 탐색 알고리즘의 기초 단위는 "항목"입니다. 이 항목은 간단한 숫자일 수도, 구조체가 될 수도 있습니다. 항목 안에는 항목과 항목을 구별하는 "키(Key)"가 존재하며 이를 "탐색 키(Search Key)"라고 합니다. 탐색은 바로 "탐색 키와 데이터로 이루어진 여러 항..
[알고리즘] - 정렬 알고리즘 (Sorting Algorithm)
·
💻 Computer Science/자료구조-알고리즘
정렬 알고리즘 개요 데이터를 특정한 조건에 따라 일정한 순서가 되도록 나열하는 것을 정렬이라고 합니다. 정렬 알고리즘은 프로그래밍에 있어 가장 기초적이며 또한 매우 중요한 알고리즘입니다. 정렬 알고리즘은 자료를 탐색함에 있어 필수적입니다. 정렬 알고리즘을 사용할 때, 정렬시켜야 하는 대상을 "레코드(Record)"라고 부르고 레코드는 "필드(Field)"라고 하는 단위로 나누어지니다. 이때 레코드와 레코드를 식별해주는 필드를 "키(Key)"라고 부릅니다. 정렬 알고리즘 종류 현재까지 개발된 정렬 알고리즘은 매우 많으나, 모든 경우에서 최적의 성능을 보이는 알고리즘은 존재하지 않습니다. 즉, 상황에 맞는 알고리즘을 택하여 사용해야 합니다. 이때 효율을 평가하는 기준은 정렬을 위해 필요한 "비교 연산의 횟수..
[LaTeX] - LaTeX 기초 수식 문법
·
📝 Software Mathematics/LaTeX
티스토리, 노션, 마크다운, 워드 등 문서에서 수식을 작성할 때나, 실제로 LaTeX을 사용하여 수식 문서를 작성할 때 반드시 알아야 하는 것이 LaTeX 수식 문법입니다. 물론 구글링을 통해서 쉽게 찾을 수 있지만, 매번 구글링하기 귀찮아서 이렇게 블로그에 포스팅을 하기로 했습니다. 자주 쓰는 문법들을 정리할 뿐, 모든 LaTeX의 문법을 정리한 것은 아니기에 필요한 것은 여기에 없는 문법은 그때그때 구글링해서 따로 찾기를 바랍니다. LaTeX 문법 정리 LaTeX: 그리스 알파벳 LaTeX: 괄호 기호 LaTeX: 첨자 기호 LaTeX: 연산 기호 LaTeX: 분수 기호, 루트 기호, 시그마 합, 극한 분수 기호: \frac{분자}{분모} 루트 기호: \sqrt{루트 안의 식} 시그마 합: \sum\..
loading