1.1 컴퓨터 구조를 알아야 하는 이유

컴퓨터 구조를 이해한다면 문제 해결 능력 향상, 성능/비용/용량을 고려하며 개발할 수 있다.

  • 응당 개발자라면 문제 해결, 최적화에 관심이 많을 것이다. 이 문제(오류나 버그 등)를 해결하려면 어떻게 접근해서 수정할지, 코드를 조금 더 간소화 하면서 속도를 개선할 수 있는 방법을 끊임없이 생각한다. 만약 컴퓨터 구조를 알고 있다면 이러한 고뇌의 시간을 줄일 수 있을 것이다.

  • "이상하다, 제 자리에선 잘 되는데요."
    도대체 같은 코드인데 이 컴퓨터에서 되고, 저 컴퓨터에서 안되는 거야?
    사람마다 생각과 가치관이 다른 만큼 사람마다 사용하는 컴퓨터가 다르기 마련이다. 같은 제품이라도 사용 습관에 따라 언제든지 상태가 다를 수 있다. 그러니 근본적으로 접근하면 이러한 사례를 줄일 수 있지 않을까?


1.2 컴퓨터 구조의 큰 그림

컴퓨터는 데이터와 명령어로 짱구를 굴린다.
메모리는 현재 실행되는 프로그램 명령어와 데이터를 저장한다.
CPU는 메모리에 저장된 명령어를 읽고 해석하고 실행한다.
보조기억장치는 전원이 꺼지더라도 프로그램을 보관한다.
입출력장치는 키보드, 마우스 등 컴퓨터와 정보를 교환하는 장치이다.
시스템 버스는 이러한 장치들이 주고 받을 정보를 전달하는 역할을 한다.

컴퓨터가 이해하는 정보

  • 컴퓨터는 0과 1로 표현한 정보만 이해할 수 있다. 이 두가지로 표현할 수 있는 정보는 데이터와 명령어이다.
  • 데이터: 이미지, 동영상과 같은 정적인 정보
    명령어가 없다면 그저 정보만을 가지고 있는 덩어리일 뿐이다.
  • 명령어: 컴퓨터를 작동 시키는 정보
    명령어가 있어야 컴퓨터가 작동하기 때문에 컴퓨터를 명령어들의 모음이라고 할 수 있다.

컴퓨터의 핵심 부품 4가지

  • CPU
    • 인체의 뇌에 해당하는 장치로, 명령어를 읽고, 해석하고, 실행한다.
    • 산술논리연산장치(ALU), 레지스터, 제어장치로 구성되어있다.
    • ALU는 오로지 계산만 하는 놈이고, 레지스터는 계산할 때 필요한 값을 임시로 저장하는 놈, 제어장치는 읽거나 쓰는 제어 신호를 담당하는 놈이다.
  • 메모리
    • 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 장치
    • 명령어와 데이터를 주소 형태로 담아 빠르고 효율적으로 값을 찾을 수 있다.
    • 프로그램을 실행하려면 반드시 메모리에 명령어와 데이터를 저장해야 한다.
    • 휘발성이라 전원을 끄면 저장된 내용이 모두 사라진다.
    • 성능이 좋지만 용량이 적고 가격이 비쌈
  • 보조기억장치
    • 보관할 프로그램을 저장하는 장치
    • 전원을 꺼도 저장된 내용을 모두 보존할 수 있다.
    • 성능은 메모리보다 떨어지지만 용량이 많고 메모리보다 가격이 저렴
    • HDD, SSD, USB 메모리 등이 있다.
  • 입출력장치
    • 컴퓨터 주변에 연결한다고 해서 주변장치라고도 부른다.
    • 키보드, 마우스 등 컴퓨터 외부에 연결해 컴퓨터 내부와 정보를 교환한다.
  • 시스템 버스
    • 위 4가지 부품을 연결해서 신호를 주고 받을 수 있도록 하는 중요한 버스

확인문제(p.51)

profile
레오나의 기묘한 개발 일지

0개의 댓글