프로그래밍을 하는데 컴퓨터구조를 알아야하는 이유가 무엇일까요?
코드를 짜다 보면 수많은 오류 즉 디버그가 발생합니다.
코드는 컴퓨터에게 전달하는 명령어 집합인데
이런 명령어 하나 하나가컴퓨터 내부에서 어떻게 처리가 되어
데이터가 가공되고
메모리에 접근하여 사요할 수 있도록
구체적으로 이해하지 못하면
처음 코딩을 배우는 사람들에게는
컴퓨터가 미지의 대상으로만 보이죠.
미지의 대상이 아니라 분석의 대상이 되어야 문제해결이 됩니다.
컴퓨터구조 시작에 앞서 하드웨어 용어대해 알고 넘어갈게요.
하드웨어란 무엇일까요?
- 수정불가한, 융통성 없는 뜻으로 모니터, 메모리 등 모든 전자장비 회로의 집합을 의미해요.
전자장비는 아날로그회로와 디지털회로로 나눌 수 있습니다.
아날로그 회로는 연속적인 신호에 움직이는 회로를 말하고
디지털 회로는 불연속 신호에 움직이는 이산적 전류 전압에 반응을 보이는 회로입니다.
디지털회로 대표적인 예로 논리회로를 들수 있는데
디지털회로는 두가지 상황에서 움직이는 회로예요.
즉 0~1v를 0으로 해석하고, 1~3v는 무반응, 3~5v는 1로 해석하여
0 또는 1 두가지 신호에 의해서만 움직이는 거죠.
논리회로는 조합논리회로와 순차논리회로로 나눌수 있어요.
조합논리회로는 입력신호에 의해서만 출력이 결정되는 기억 못하는 소자입니다.
순차논리회로는 입력신호와 현재의 신호에 의해 출력신호가 결정되는 회로인데
레지스터가 대표적 예가 되겠습니다.
컴퓨터는 결국 조합, 순차 논리회로의 집합이라고 볼 수 있습니다.
그럼 컴퓨터 내부에서 처리되는
데이터표현에 대해 알아볼까요?
data라면 음성/영상/문자 등을 들 수 있는데
d(p) = I
컴퓨터란 이런 데이터를 가공( processing)하여 정보를 만드는 것입니다.
프로세싱을 할 때는 명령어와 데이터가 필요한데
명령어와 데이터가 컴퓨터 내부에서 어떻게 표현이 되는지 공부할 필요가 있습니다.
Bit(Binary digit)는 오늘날 컴퓨터 전압의 움직임, 즉 3~5V강한 전압 또는 0~1V 약한 전압을 1 또는 0으로 표현하는데 즉, 정보 표현의 최소 단위를 말합니다.
키보드에서 ‘A'치면 ascii코드표에 의해 11000001로 컴퓨터에 입력되며 강한전류 강한전류 약한전류 이렇게 1100.. 입력되면 컴퓨터는 A로 알아 듣는 거죠.
Byte는 bit가 8개 모인 것을 말하는 단위입니다.
Byte(binary term) 8bit = 1byte = 1문자(영문)
영문 1개 문자는 1개 바이트인데
한글은 2개 바이트를 사용하고요. 북한에서 사용하는 한글은 조합형(초중종성,hwp)24bit-북한/완성형16bit)으로 3개 바이트를 사용합니다.
기억용량 단위 ( kb, mb, gb ...)는 1024바이트=1kb, 1024kb=1mb, 1024mb=1gb, 1024gb=1tb이며
이후로 페타, 엑사로 사용됩니다.
메모리 주소를 표현하는 단위로는 워드가 있어요.
word(메모리주소를 표현하는 단위) : Half word(16bit), Full word(32bit), Double word(64bit)
그리고 컴퓨터는
“한 개 접근 주소당 최소 1BYTE를 기본으로 논리적 처리를 한다.“
컴퓨터에서는 BYTE를 기본단위로 연산합니다.
Field는 자료처리의 최소단위로 프로그래밍에서 변수가 필드로 볼 수 있습니다.
그리고 그림처럼 레코드는 하나 이상의 필드로 구성이되고
파일은 연관성 있는 레코드의 모임입니다.
서로 관련된 파일들의 모임을 데이터베이스라고 합니다.
자료의 구성 단위의 크기를 정리하면
비트 < 바이트 < 워드 < 필드 < 레코드 < 파일 < 데이터베이스 가 됩니다.
파일 단위에서 작업을 할 수 있으면 정보처리기능사 수준. 즉, 오퍼레이터 수준이고
필드 단위에서 작업을 할 수 있으면 정보처리산업기사 수준정도입니다. 이 정도 수준 정도를 해야 비전공자라도 개발자로 취업할 수 있는 수준이 될 것 같네요.
만일 비트 단위까지 작업할 수 있으면 해킹 등 전문가 수준입니다. ㅎㅎ
다음 시간에는 데이터 표현단위에 대해 알아보겠습니다.^^