CS

[CS] 2. 컴퓨터의 데이터 처리 방식

kimsangjunzzang 2025. 6. 14. 23:06

안녕하세요, 루피입니다!

 

오늘은 저번 포스팅에 이어서 컴퓨터의 데이터 처리 방식에 대해 정리해보겠습니다.

 

바로 시작합니다.


 

1. 컴퓨터의 데이터 처리 단위 : 이진수

인간은 숫자를 표현할 때 0부터 9까지의 10진수를 사용합니다. 하지만, 복잡한 연산을 순식간에 처리하는 컴퓨터는 오직 0과 1이라는 두 개의 숫자만으로 세상을 인식합니다. 이처럼 0과 1로 데이터를 표현하고 처리하는 방식을 이진수(Binary) 체계라고 합니다.

 

컴퓨터가 0과 1을 인식하는 원리는 핵심 부품인 트랜지스터에 있습니다. 트랜지스터란 전기신호를 이용해 스위치처럼 켜고 끌 수 있는 작은 반도체 소자입니다.

  • 스위치가 켜진(On) 상태 → 1 (고전압)
  • 스위치가 꺼진(Off) 상태 → 0 (저전압)

수십억 개의 트랜지스터가 모여 0과 1의 조합을 만들어내고, 이를 통해 컴퓨터는 모든 종류의 정보를 표현하고 저장하게 됩니다.


2. 컴퓨터의 데이터 처리 과정

개발자는 Swift, Python과 같은 프로그래밍 언어를 사용해 코드를 작성합니다. 하지만 이는 인간이 이해하기 쉬운 언어일 뿐, 컴퓨터는 이 코드를 곧바로 이해할 수 없습니다. 컴퓨터는 오직 0과 1로 이루어진 기계어만 알아들을 수 있기 때문이죠.

 

그렇다면 우리가 작성한 코드는 어떤 과정을 거쳐 컴퓨터가 실행할 수 있는 형태가 될까요?

1단계: 고급 언어 → 어셈블리 언어 (by 컴파일러)

  • 고급 언어(High-Level Language): 우리가 사용하는 Swift, Python과 같은 프로그래밍 언어입니다.
  • 컴파일러(Compiler): 이 고급 언어를 기계어로 번역해주는 프로그램입니다. 컴파일러는 먼저 고급 언어를 '어셈블리 언어'라는 형태로 한 단계 번역합니다.

2단계: 어셈블리 언어 → 기계어 (by 어셈블러)

  • 어셈블리 언어: 기계어와 거의 1:1로 대응되지만, 사람이 이해할 수 있는 기호(MOV, ADD 등)로 구성된 저수준 언어입니다. 하드웨어를 직접 제어하는 데 사용됩니다.
  • 어셈블러: 이 어셈블리 언어를 최종 형태인 0과 1로만 이루어진 기계어로 변환하는 프로그램입니다.
MOV A, 1  ; A 레지스터에 1을 저장(Move)하라는 의미
ADD A, 2  ; A 레지스터의 값에 2를 더하라는(Add) 의미

최종 단계: 기계어

기계어는 CPU가 직접 해독하고 실행할 수 있는 유일한 언어입니다. 일반적으로 두 부분으로 구성됩니다.

  • 연산 코드(OpCode): 어떤 연산을 수행할지 명령하는 부분
  • 오퍼랜드(Operand): 연산에 사용할 데이터 또는 데이터가 저장된 위치를 나타내는 부분
언어 종류 예시 설명
고급 언어 R3 = R1 + R2 사람이 이해하기 가장 쉬운 형태
어셈블리 언어 ADD R1, R2
STORE R3
R1과 R2를 더하고, 결과를 R3에 저장하라는 명령어
기계어 10110000 00000001
11000011 01010111
CPU가 직접 해독하는 0과 1의 조합

오늘도 화이팅입니다!