Computer Science(6)
-
[컴퓨터 구조] 캐시 메모리(Cache Memory)와 지역성(Locality)
1) 캐시(Cache)란?캐시는 데이터를 임시 보관하는 것을 의미합니다. 즉, 영원히 데이터를 저장하는 것이 목적이 아닌, 필요에 의해서 '임시'로 보관하는 것입니다. 어떤 Web Site에 방문한 경우를 예로 들어봅시다. 첫 방문시엔 HTML, CSS, 이미지 등 Web data를 불러오기까지 약간의 답답함이 있습니다. 하지만, 해당 사이트를 재방문하면 방문과 동시에 Web Site가 나타나는 것을 경험한 적이 있을 겁니다. 이는 우리가 사용하는 브라우저에서 방문한 Web Site의 data를 임시 보관(캐싱)하여 재방문시에 보다 빠른 액세스가 가능했기 때문입니다. 이처럼 캐시 개념은 Server-Client, CDN(Content Delivery Network) 그리고 CPU-메모리 등 다양한 곳에..
2024.05.01 -
[컴퓨터 구조] 메모리(Memory)란?
1) 메모리(RAM) vs 저장장치(ROM) 메모리는 기억 장치입니다. 크게 휘발성 메모리인 RAM과 비휘발성 메모리인 ROM을 구분할 수 있습니다. RAM은 Ramdom Access Memory의 약자로 컴퓨터가 꺼지면 데이터가 날아가는 휘발성인 대신, 속도가 빨라서 컴퓨터와 저장 장치사이에 존재합니다. ROM은 Read Only Memory의 약자로 과거에는 읽기만 가능한 형태로 저장했기 때문에 이러한 이름이 붙여졌습니다. 점점 EPROM -> EEPROM -> Flash Memory 형태로 발전하면서 읽고 쓸 수 있게 되었음에도 비휘발성이라는 특성을 그대로 유지하고 있기 때문에 RAM과 대비해서 ROM이라고 통칭하기도 합니다. 우리는 혼란을 줄이기 위해 휘발성 메모리인 RAM을 그냥 메모리라고 부르..
2024.04.23 -
[컴퓨터 구조] CPU / 명령어 사이클( Instruction Cycle )
1) CPU란 Central Processing Unit, 중앙 처리 장치를 의미하며 내부적으로는 제어 장치, ALU, 레지스터로 구성되어 있습니다. 컴퓨터의 두뇌 역할을 맡아 명령어를 실행시킵니다. 사람의 편리성을 위해 프로그램이 소스코드로 작성되고, 이러한 소스코드는 명령어들의 집합으로 이루어집니다. 메모리에서 명령어를 가져오고 CPU에서 처리한 후 결과를 다시 메모리에 저장하는 방식으로 동작되죠. 이 과정을 빠르게 반복하면 프로그램을 '실행'한다고 표현할 수 있겠네요. CPU 의 속도를 결정짓는 요인을 clock이라고 합니다. 이 clock은 진동을 발생시키는 칩에 의해 생성되며 Hz라는 단위를 사용하며, 1초당 발생하는 진동수를 의미합니다. 한번의 진동은 하나의 명령어를 실행시키는 Trigger ..
2024.04.18 -
[컴퓨터 구조] 명령어란?
이제 더 현실적인 얘기로 컴퓨터를 이해해보고자 합니다. 컴퓨터란 무엇일까요? 만약, 누군가 컴퓨터에 대해 물어보면 우리는 어떻게 대답해야할까요? 저는 명령어를 처리하는 복잡한 계산기라고 대답할 것 같습니다. 명령어란, 컴퓨터가 이해할 수 있는 언어 단위입니다. 인간은 프로그래밍 언어를 통해 프로그램을 만들고 컴퓨터로 실행시킬 수 있습니다. 정확히는 프로그래밍 언어로 소스 코드를 작성합니다. 소스 코드는 인간이 이해할 수 있도록 문법이 구성되어 있습니다. 하지만, 컴퓨터는 0과 1밖에 이해하지 못하기 때문에, 컴퓨터가 이해할 수 있도록 아래와 같은 변환해주는 과정이 필요합니다. 프로그래밍 언어(A = 10) -> 어셈블리 언어(Store A 10)-> 기계어(1010 1010 1000 1010..) 인간이..
2024.04.17 -
[컴퓨터 구조] 컴퓨터를 구성하는 요소
부모님이 시킨 마트 심부름을 해결하는 과정을 봅시다. 1. 사야할 재료 리스트를 듣는다 2. 당장 할 필요 없으므로 노트에 재료 리스트를 적어둔다 3. 마트를 갈 때, 노트를 보고 사야할 리스트를 기억한다 4. 기억대로 재료를 모두 담고 계산한다 5. 부모님께 알린다 컴퓨터도 크게 다르지 않습니다. 위 상황에 컴퓨터의 각 요소를 대입해보겠습니다. 1. 사야할 재료 리스트를 듣는다 -> 입력장치 2. 당장 할 필요 없으므로 노트에 재료 리스트를 적어둔다 -> Disk 3. 마트를 갈 때, 노트를 보고 사야할 리스트를 기억한다 -> 메모리 4. 기억대로 재료를 모두 구입한다 -> CPU 5. 부모님께 알린다 -> 출력장치 이처럼 컴퓨터는 크게 CPU, 메모리, DISK, I/O 로 4가지 요소를 가지고 있으..
2024.04.17 -
Computer Science
미사일의 움직임을 정확하게 계산해내기 위해서 최초의 컴퓨터 '애니악'이 개발되었습니다. '애니악'의 크기는 집채만 했는데, 진공관을 주 부품으로 사용했기 때문입니다. 컴퓨터는 0 과 1로 모든 것을 이해하고 표현합니다. 당시에는 0과 1을 표현하는 단위 부품이 진공관이었지만, 현재는 트랜지스터가 개발되어 크기가 획기적으로 작아짐에 따라 개인용 컴퓨터가 등장하게 되었습니다. 효율적인 SW를 개발하기 위해선 컴퓨터에 대해 알아야합니다. 컴퓨터 구조와 운영체제, 그리고 네트워크가 무엇인지 알아보고 컴퓨터에 대해 이해해보는 시간을 가져보겠습니다. 그리고 이를 SW 개발에 어떻게 활용할 수 있을 지도 함께 고민해보겠습니다.
2024.04.17