공부/컴퓨터구조

[ 컴퓨터구조 ] 컴퓨터구조 시작하기

haena02 2023. 1. 10. 03:22
반응형

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

 

컴퓨터구조를 왜 배워야할까?

 

배워야하는 이유를 모르면 공부가 노잼이다.

근데 공부해야하는 이유를 공부하는것도 노잼이다 ㅋㅋ

 

 컴퓨터구조는 야매개발자들은 잘 모르는!! 실력자 개발자들이 되려면 알아야하는! 기본 지식이다. 

 

1.1 문제해결

 

공부를 좀 해본사람은 알테지만 예제코드를 그대로 쳐도 코드가 제대로 안돌아갈 때가 있다. 

이런 상황은 실무에서도 일어난다. 

이런 경우레는 코드의문법적인 이유는 아닐 것이다. 

하지만 코딩의 문법만 아는사람은 이를 해결할 수 없다..

 

하지만 컴퓨터구조를 이해하고 있다면 문제상황을 빠르게 진단할 수 있고, 문제해결의 실마리를 다양하게 찾을 수 있다. 

글구 이를 기업들도 알고있기 때문에 기술면접에서 많이 물어보기도한다.

 

컴퓨터구조는 코더가 아닌 개발자로 만들어준다..!

 

2.2 성능, 용량, 비용

 

컴퓨터를 고를 때 성능, 용량을 아는것은 중요하다 (특히 서버컴퓨터)

클라우드 서비스(AWS)를 사용 할 때도 컴퓨터구조 내용을 알아야한다. 

 

내 프로그램이 어떤 환경에서 최적인지, 어떤 환경에서 어떻게 실행되는지 스스로 판단할 줄 알아야한다. 

그것이 개발자

 

 

2. 컴퓨터구조의 큰그림

 

왜 컴퓨터구조를 배워야하는지 알았으니 이제 어떤 내용을 알아야하는지 보자.

 

우리가 알아야할 컴퓨터 구조 지식은 크게 두가지이다.

  • 컴퓨터가 이해하는 정보
  • 컴퓨터의 네 가지 핵심 부품

 

2.1 컴퓨터가 이해하는 정보

 

컴퓨터는 0과 1로 표현된 정보만을 이해한다.

0과 1로 데이터명령어를 표현할 수 있다. 

 

데이터는 컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상과 같은 정적인 정보를 가리켜 데이터라고한다.

컴퓨터와 주고받는 정보나 컴퓨터에 저장된 정보를 가리킬 때 편하게 데이터라고 통칭하기도한다.

 

명령어는 컴퓨터를 움직이게하는 동력이다.

데이터는 명령어 없이는 정보덩어리일 뿐이다.

명령어는 데이터를 움직이고 컴퓨터를 작동시키는 정보이다!

 

예를 들어서 1과 2는 데이터이고 더해랏!은 명령어이다

또, '안녕하세요'는 데이터고 화면에 출력해랏!은 명령어이다

 

한마디로 데이터는 명령어를 위한 재료같은 느낌이다.

이런 점에서 컴퓨터는 명령어들의 모음으로정의되기도한다.

 

2.2 컴퓨터의 4가지 핵심부품

 

세상에는 다양한 종류의 컴퓨터가 있다.

아두이노, 스마트폰, 노트북, 서버컴퓨터 등등등등

크기와 용도가 제각각인 컴퓨터가 많다.

 

하지만 컴퓨터를 이루는 핵심부품은 크게 다르지않다.

  • 중앙처리장치 (CPU)
  • 주기억장치 (메모리)
  • 보조기억장치 
  • 입출력장치

이 네가지의 역할만 이해해도 컴퓨터의 작동원리를 알 수 있다.

*메모리는 RAM과 ROM이 있지만 메모리라고 하면 대부분 RAM을 가르키는 것

열심히그린그림

 

이제 그림을 보면서 하나하나 개념을 잡아보장!

 

메모리

컴퓨터가 이해하는 정보는 명령어와 데이터였다.

메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품이다.

즉, 프로그램이 실행되려면 반드시 메모리에 저장되어 있어야한다. 

 

메모리를 효율적으로 활용하기 위해서는 저장된 정보들이 정리정돈되어있어야한다.

이를 위해 우리는 주소는 개념을 이용한다. 

 

CPU

CPU는 보통 컴퓨터의 두뇌라고 말한다.

CPU는 메모리에 저장된 명령어 읽어 들이고, 읽어들인 명령어를 해석하고, 실행한다.

 

CPU는 산술논리연산장치(ALU), 레지스터, 제어장치로 구성되어있다.

 

  • ALU는 계산기라고 많이 표현한다. 계산을 위해 존재하는 부품이다.
  • 레지스터는 CPU안에 작은 임시저장장치이다. 프로그램을 실행하는 데 필요한 값들을 임시로 저장한다. CPU안에는 여러개의 각기다른 이름과 열할을 하는 레지스터가 존재한다.
  • 제어장치는 전기신호를 보내고 명령어를 해석하는 장치이다.  여기서 신호란 컴퓨터 부품들을 관리하고 작동시키는 전기신호이다. CPU가 메모리에 저장된 값을 읽고싶을 때는 메모리읽기라는 제어신호를 보내고 저장하고 싶을 때는 메모리 쓰기라는 제어신호를 보낸다.

이들이 움직이는 것을 두 숫자를 더하는 과정으로 설명해보자.

 

  1. 먼저 메모리에 있는 명령어를 읽기 위해 제어장치에서 '메모리읽기' 제어신호를 보낸다.
  2. 메모리에 >>3번지와 4번지의 값을 더해라<< 라고 적힌 명령어를 레지스터에 저장하고 3번지 4번지를 읽기위해 제어장치에서 '메모리읽기' 제어신호를 보낸다.
  3. 3번지와 4번지에서 읽은 숫자들을 레지스터에 저장한다.
  4. ALU는 레지스터에 있는 값들을 읽어서 계산하고 값을 레지스터에 저장한다.
  5. 다음 명령어 >>연산결과를 저장해라<<를 읽기 위해 제어장치에서 '메모리 읽기' 제어신호를 보낸다.
  6. 읽어낸 명령어를 레지스터에 저장하고 수행하기 위해 제어장치에서 '메모리 쓰기' 제어신호를 보낸다.
  7. 레지스터에 있던 값을 메모리에 저장한다. 

 

보조기억장치

 

앞서 메모리는 실행되는 프로그램의 명령어와 데이터를 저장하지만

이 메모리는 기격이 비싸서 저장용량이 적고 전원이 꺼지면 저장된 내용을 읽는다는 것이다. 

 

이때문에 작업하다가 컴퓨터가 꺼지면 정보가 다 날라가게된다.

이에 우리는 메모리보다 크기가 크고 전원이 꺼져도 내용을 잃지 않는 메모리를 보조할 보조기억장치를 사용한다.

 

하드디스크, SSD, USB, DVD 들은 모두 보조기억장치의 일종이다. 

메모리는 실행되고있는 프로그램을 저장하고 보조기억장치는 보관할 프로그램을 저장한다.

 

입출력장치

 

입출력장치는 우리가 잘 아는 마이크, 스피커, 프린터, 마우스 처럼 컴퓨터 외부에 연결되어있는 컴퓨터내부와 정보를 교환하는 장치이다. 

 

보조기억장치와 입출력장치는 주변장치라고 총칭하기도한다.

 

 

메인보드와 시스템버스

 

지금까지 나온 부품들은 메인보드라는 판에 연결된다.

메인보드는 마더보드라고도 부른다.

메인보드에는 여러 부품들을 부착할 수 있는 슬롯과 연결단자가 있다.

 

메인보드에 연결된 부품들은 버스라는 통로로 정보를 주고받는다.

여러종류의 버스가 존재하지만 가장 중요한 버스는 네 부품을 연결하는 시스템 버스이다. 

 

시스템 버스는 주소를 주고받는 주소버스, 명령어와 데이터를 주고받는 데이터 버스, 제어신호를 주고받는 제어버스가 있다. 

 

 

 

 

 

 

반응형