본문 바로가기

Computer Science

(11)
Operating System 이해를 위한 간단한 그림 OS (운영체제) 는 Operating System 의 약어로 컴퓨터를 사용함에 있어서 모든 컴퓨팅 리소스를 어떻게 제어하고 관리하며 운영할지를 결정하는 가장 기본적인 소프트웨어 입니다. 쉽게 말해 여러 프로그램들을 실행시키기 위한 다양한 하드웨어들로 구성된 컴퓨터에서, 프로그램과 하드웨어, 그리고 사용자 사이의 모든 중재 역할을 OS 가 담당하는 것입니다. 그 과정에서 사용자 혹은 주변장치가 컴퓨터를 쉽게 다룰 수 있게끔 'Interface (인터페이스)' 를 제공하고 컴퓨팅 리소스를 추상화하여 쉽게 접근할 수 있도록 조직하는 'File system(파일 시스템)' 과 프로세서(CPU)와 메모리, I/O devic 등의 하드웨어와 프로그램, file, 하드웨어 간의 주고받는 signal 등의 소프트웨어..
Cloud computing 이해를 위한 간단한 그림 Cloud computing (클라우드 컴퓨팅) Cloud computing 은 사용자가 직접적인 관리없이 추상화된 컴퓨팅 리소스를 인터넷을 통해 제공받고 사용하는 기술을 의미합니다. 즉 작업에 필요한 실질적인 컴퓨팅 리소스들은 Cloud computing 서비스를 제공하는 데이터 센터에 존재하고, 사용자는 인터넷만 연결된다면 어디서든 동일한 환경에서 원하는 작업을 할 수 있는 것입니다. 많은 이들이 Cloud computing 기술이 소프트웨어 비지니스 생태계에 좋은 영향을 준다고 말합니다. 수많은 소프트웨어 비지니스로 하여금 최소한의 관리 노력으로 빠른 release 를 가능하게 만들었고, Infrastructure (인프라스트럭처) 를 구축하는데 드는 시간과 비용을 절감시켜 그만큼 핵심 사업에 집중..
Cache memory 세부적인 이해를 위한 간단한 그림 ( ' Memory unit ' 의 기초적인 개념과 계층 구조를 이해하고 있다는 전제 하에 작성되었습니다. ) 이번 글에서는 현대 컴퓨터 과학에서 CPU의 성능 향상을 위해 아주아주 중요하며, 직접적인 역할을 하는 Cache memory 에 대해서 보다 자세하게 알아보도록 하겠습니다. Cache memory 는 속도 차이가 나는 두 장치들 사이에서 이를 극복하기 위해 탑재되는 중간 Memory Unit 입니다. 보통 Main memory 에서 미리 데이터를 복사해둠으로써 CPU 가 보다 빠른 속도로 데이터에 접근하고,처리할 수 있도록 도와줍니다. 사실 '중간 단계의 Memory' 라는 점에서 Main memory(주 기억 장치) 가 CPU 와 Auxiliary storage(보조 기억 장치) 사이에서 하..
RAM 세부적인 이해를 위한 간단한 그림 이번 글에서는 컴퓨터를 구매해보신 적이 있다면 한번은 들어봤을 그 이름! ' RAM ' 에 대해서 알아보도록 하겠습니다. RAM 은 Random Access Memory 의 약어로 Memory 공간 내의 어느 위치에든 동일한 접근 속도로 읽고 쓰는 것이 가능한 Memory unit 입니다. 전원이 들어와 있는 동안에만 데이터가 유지되는 휘발성 메모리이며, 그렇기 때문에 빠르고 자유롭게 데이터를 수정하는 것도 가능합니다. 이러한 RAM은 CPU 가 운영체제나 프로그램 같은 작업을 수행할 수 있도록 작업 공간이 되어주는 역할을 합니다. 작업 공간이 넓으면 훨씬 많은 작업들을 빠르게 처리할 수 있겠죠? 그래서 RAM 의 용량과 성능은 CPU 성능에 직접적인 영향을 줍니다. RAM 을 물리적 특성에 따라 분류하..
Memory unit 이해를 위한 간단한 그림 오늘은 Memory Unit (기억장치) 에 대해서 알아보겠습니다. Memory unit 은 컴퓨터에서 프로그램과 데이터를 저장하는 장치를 총칭하며, 용도와 용량 처리속도에 따라 Register(레지스터), Cache Memory(캐시 메모리), Main memory(주 기억 장치), Auxiliary storage(보조 기억 장치) 로 구분됩니다. Register 는 CPU 내부에 위치하는 Memory unit 으로 당장 처리할 데이터를 일시적으로 저장하는 저용량의 고속 Memory unit 입니다. Cache memory 는 CPU 와 Main memory 간의 속도 차이를 극복하기 위한 저용량의 고속 Memory unit 입니다. 보통 SRAM 으로 구성합니다. Main memory 는 CPU 와 ..
CPU 의 구조와 작동을 이해하기 위한 간단한 그림 ' CPU ' 는 Central Processing Unit (중앙 처리 장치) 의 약어로, Input device (입력 장치)로 부터 데이터를 받아서 Memory Unit (기억장치) 와 연계하여 처리하고 Output device (출력 장치)로 내보내는 모든 과정을 연산하고 제어하는 장치입니다. 오늘은 이러한 CPU 가 어떻게 구성되어 있고, 또 어떻게 작동하는지에 대해서 알아보도록 하겠습니다. CPU 의 구성 CPU 는 크게 Control Unit (제어 장치) 와 Arithmetic Logic Unit (산술 논리 연산 장치), Memory Unit (기억 장치)으로 구성됩니다. Control Unit 은 프로그램의 명령을 차례대로 실행하기 위해 명령어를 해독하여 Arithmetic Logic ..
계산 복잡도 이론 이해를 위한 간단한 그림 오늘은 알고리즘의 성능과 효율을 예측하고 분석하기 위해 탄생한 이론, '계산 복잡도' 에 대해서 알아보겠습니다. 계산 복잡도 이론은 주어진 문제에 대한 최적의 알고리즘을 찾는 것을 목표로 알고리즘의 복잡도를 분석하고 연구하는 이론입니다. 쉽게말해 특정 알고리즘이 문제를 해결하기 위해 필요로 하는 시공간적 리소스를 정량화하여 측정해보기 위한 것이죠. 이때 시간적 리소스, 그러니까 문제해결에 걸리는 시간을 분석하는 것을 ' 시간 복잡도 ' 라고 하고, 공간적 리소스, 그러니까 문제해결에 필요한 메모리 공간의 양을 분석하는 것을 ' 공간 복잡도 ' 라고 합니다. 계산 복잡도 이론은 세부적으로 시간 복잡도와 공간 복잡도로 나누어 지는 것이죠. 하지만 어떠한 알고리즘이 동작하는데 걸린 실제시간을 측정하거나 실제로..
자료구조로써의 Hash (해시) 개념 이해를 위한 간단한 그림 'Hash 해시' 는 크게 컴퓨터 공학에서 말하는 큰 개념으로서 Hash 와암호학에서의 의미(단방향 암호화의 한 종류인 Hash ),그리고 자료구조로써 활용되는 Hash 로 나누어 볼 수 있습니다. 결국 모두 같은 Hash 이므로 각 분야가 집중하는 기능/속성에 따라 활용법의 차이가 있는 것일 뿐입니다. 이번 시간에는  '자료구조로써 활용되는 Hash'  에 대해서 알아보겠습니다.    이번 글은 ' Hash ' 의 기본 개념을 이해하고 있다는 전제 하에 작성되었습니다.    컴퓨터 공학에서 말하는 큰 개념으로서 ' Hash ' 가 궁금하다면 아래글을 먼저 봐주세요. '해시 Hash' 개념 이해를 위한 간단한 그림'해시 Hash' 는 데이터를 다루는 기법 중 하나로, 일정한 규칙이나 기준이 없는 데이터를..
해시 Hash 개념 이해를 위한 간단한 그림 '해시 Hash' 는 데이터를 다루는 기법 중 하나로,일정한 규칙이나 기준이 없는 데이터를 고정된 길이의 데이터로 매핑하는 것을 말합니다. 매핑 : 어떤 값을 다른 값에 대응시키는 과정을 총칭 이러한 매핑을 수행하는 특정 방법을 '해시 알고리즘' (해시 함수) 이라고 하는 것이구요.     예를 들어, '어떤 수를 10 으로 나누고 나머지를 구하는 함수'도 아주 낮은 단계의 '해시 함수'입니다. 아무리 큰 숫자를 매핑해도 항상 "0~9 사이의 숫자 하나", 그러니까 '고정된 길이의 데이터'로 바꿔주기 때문이죠. '해시'의 개념이 조금은 이해가 되시나요?     이렇듯 임의의 데이터를 일정한 길이의 데이터로 바꿔주는 해시 함수는 아주 다양할 수 있습니다. 하지만 해시를 수행하는 '해시 알고리즘'이 얼마나 ..
정보 시스템의 핵심에 대한 간단한 그림 여러 프로그래밍 언어를 포함하여 결국 모든 정보 시스템의 핵심은 정보를 생성할 수 있고 (Create), 읽을 수 있고 (Read), 수정할 수 있고 (Update), 삭제할 수 있는 (Delete) 것입니다. 'C.R.U.D' 를 이해하고 수행할 수 있다면 해당 시스템의 90%를 이해했다고 봐도 무방합니다!
UI와 API 이해를 위한 단순한 그림