본문 바로가기

1일차 컴퓨터 구조와 데이터

단순히 코드를 작성하는 수준을 넘어 내가 짠 코드가 하드웨어 물리 계층에서 어떻게 움직이는지 이해해야 함. 이 기초를 이해하지 못하면 나중에 메모리 누수나 인코딩 문제가 발생했을 때 원인을 찾지 못하고 헤매게 됨

1. CPU, RAM, SSD(HDD)

본인이 작성한 코드는 전기 신호가 되어 컴퓨터 내부를 돌아다님. 이 흐흠에 있어서 가장 중요한 부품 3가지가  CPU, RAM, SSD(HDD)임. 

 

1) CPU(Processor)-컴퓨터의 두뇌

역할: RAM에 올라온 명령어를 하니씩 가져와서 연산하고 처리합니다.

특징: 세상에서 제일 빠른 계산기지만 저장 능력은 거의 없음(왜 거의 라고 말하냐면 레지스터라는 아주 작은 공간이 있음 이건 시스템 프로그래밍에 대해 공부하면 배울 수 있음)

 

2) RAM(Memory)-작업대

역할: 작업을 수행하기 위해 데이터를 임시로 펼쳐놓는 공간

특징: 속도가 매우 빠르지만 전원이 꺼지면 데이터는 사라짐.

개발자와의 관계: 프로그램을 실행하면 SSD에 있건 코드가 RAM으로 복사되어 올라옴 이것을 로딩(Loading)이라고 함.

 

3) SSD(Storage)-거대한 창고

역할: 데이터를 영구적으로 저장함. 전원이 꺼져도 데이터는 남아 있음

특징: 용량은 크지만, CPU가 직접 데이터를 가져다 쓰기에는 속도가 너무 느림.

개발자와의 관계: 작성한 소스 코드 파일은 처음에 이곳에 저장됨

 

2. 데이터의 표현: 0과 1의 세계 

컴퓨터는 "안녕하세요"도 숫자 "10"도 이해하지 못합니다. 오직 전기가 흐른다(On=1), 안 흐른다(Off=0)만 알 뿐입니다. 

1) 2진수와 16진수

  • 2진수(Binary): 컴퓨터의 언어입니다.
    • 예: 십진수 10 -> 이진수 1010(2)
  • 16진수 (Hexadecimal): 2진수는 너무 길어서 사람이 읽기 힘들음 그래서 2진수 4자리를 묶어 1자리로 표현하는 16진수를 사용함 주로 메모리 주소나 색상코드를 다룰 때 씀 
    • 0, 1, 2,........,9, A, B, C, D, E, F, 
    • EX-이진수 1111(2) -> 십진수 15 -> 16진수 F(16)

2) 문자 인코딩(Encoding) - 한글이 깨지는 이유

컴퓨터에 'A'라는 글자를 저장하려면 'A'를 숫자로 바꾸는 약속(규칙)이 필요한데 것을 인코딩이라고 함.

  • ASCII(아스키): 가장 기초적인 약속. 7bit를 사용하여 영어 알파벳과 특수문자 128개만 표현 가능합니다
  • UTF-8: 전 세계 모든 언어(유니코드)를 표현하기 위한 가변 길이 인코딩 방식
    • 영어는 1byte, 한글은 3byte로 표현됨
    • 한글 깨짐: 웹 개발을 하다보면 `` 같은 문자를 보게 됨 . 이는 UTF-8로 저장된 한글을 다른 방식으로 읽으려 할 때 바이트가 어긋나서 발생하는 현상임 
컴공이지만 코딩 못함 잘하면 이름 바꿀거임
@컴공이지만 코딩 못함 잘하면 이름 바꿀거임 :: 맥북 산 김에 개발하기

맥북 산 김에 코딩 공부 열심히 해서 개발이나 해보겠습니다.

열심히 해보겠습니다

목차