On a couch

1. 컴퓨터와 컴퓨팅 본문

프론트엔드 공부/CS50

1. 컴퓨터와 컴퓨팅

couch 2022. 4. 16. 12:02

01. 하드웨어

1. 컴퓨터 내의 하드웨어

컴퓨터의 하드웨어는 크게 중앙처리장치기억장치입출력장치로 구성된다.

 

중앙처리장치(Central Processing Unit, CPU)는 프로세서라고도 불리며, 입력장치에서 받은 명령을 실제로 처리함. CPU의 1초 동안의 연산량과 속도를 측정하는 단위는 기가헤르츠(GHz)이다.

 

기억장치는 입력된 명령이나 데이터가 저장되는 공간이다.

  • 주기억장치에는 RAM(Random Access Memory)이 있다. RAM은 입출력이 가능한 메모리로서, 응용 프로그램을 일시적으로 불러오거나, 데이터를 일시적으로 저장하는데 사용되는 기억 장치이다. RAM이 정보 저장 용량은 기가바이트(GB)로 표기된다.
  • 보조기억장치인 하드드라이브(C:)는 영구적으로 데이터를 저장한다. 많이 쓰이는 하드디스크(Hard Disk Drive, HDD)는 원판 모양의 플래터를 회전시켜 드라이브에 데이터를 읽고 쓰는 원리이다. 보통 기가바이트(GB)나 테라바이트(TB) 단위가 쓰인다. 이 외에 SSD(Solid State Drive)라는 보조기억장치가 있는데, 하드디스크와 달리 움직이는 부품 없이 더 빠른 속도로 데이터를 읽고 쓰는 대신  가격은 더 비싸다.
  • 플래시 드라이브는 USB  메모리 스틱 등으로 불린다. 이동식 저장공간 기기로  SSD와 마찬가지로 움직이는 부품이 없다. 이 외에도 광학 디스크 드라이브라는 것이 있는데 컴퓨터가 CD나 DVD를 읽고 쓸 수 있게 한다.

입력장치와 출력장치를 통틀어 입출력장치라고 부릅니다. 입력장치는 사용자가 입력한 자료를 컴퓨터가 이해할 수 있는 형태로 변환하는 장치입니다. 마우스, 키보드, 스캐너 등이 있습니다. 컴퓨터의 출력장치로는 모니터와 프린트를 들 수 있습니다.

해상도는 우리가 이미지를 볼 때 얼마나 선명하게 볼 수 있는가를 숫자로 나타냅니다. 화면에 이미지를 확대해 보면 하나의 작은 점으로 나타나는데 이 하나의 작은 점을 픽셀이라고 합니다. 즉 픽셀의 개수가 해상도가 됩니다. 픽셀의 개수가 많으면 많을수록 해상도는 높아지고 우리는 선명한 이미지를 볼 수 있습니다.

 

2. 주변기기

컴퓨터 자체부품이 아닌 경우 보통 컴퓨터와 연결하여 사용하는데, 이런 기기들을 보통 주변기기라고 합니다. 대표적인 예로 키보드와 외장 스피커 등이 있습니다.

주변기기는 보통 컴퓨터에 있는 물리적 포트에 꽂혀 컴퓨터에 연결됩니다. 많이 알려진 포트로는 범용 직렬 버스(USB) 포트가 있습니다. 1990년대 개발된 USB 포트는 업계 표준으로 대부분의 컴퓨터 주변기기들은 모두 USB 연결을 지원합니다.

 

02 정보 기억 과정

오른쪽으로 갈 수록 처리 속도가 빠르고, 처리 용량은 적다.

1. HDD - RAM - CPU

  • 정보 처리의 흐름
    • 아이콘을 클릭하면 HDD에 저장된 정보가 RAM에 일시적으로 저장되었다가 CPU로 흘러가 처리된다.
      (요새는 L1 Cache, L2 Cache 등이 붙어 나오는데, CPU가 재빨리 받아 처리할 수 있도록 몇KM 정도만 저장함)
    • '현재' 실행되어 실시간으로 정보를 바꾸는 작업은 모두 RAM에 저장되어 이루어진다.
      (RAM 공간이 요구받은 모든 작업을 하기에 부족하다면, 후순위에 있는 프로그램은 재빨리 HDD에 마련한 '가상 저장공간'에 잠깐 옮겨둔다.)
    • 무언가가 '실행'시키는 것은 CPU다. 1M정도의 저장공간을 가지고 한 번에 32bit / 64bit만 처리한다.
  • RAM은 속도가 매우 빠르고, 보통 8G 짜리를 사용한다. HDD는 느린데 보통 500G 짜리 정도를 쓴다. 왜 우리는 성능이 낮아 보이는 HDD 용량을 더 많이 갖고 있는가?
    1. RAM은 빠른 만큼 비싸다
    2. 컴퓨터 내의 모든 프로그램을 한꺼번의 사용할 일(500G를 빠른 속도로 처리해야 할 일)은 없다.
    3. 어차피 CPU에는 병목현상이 있어서 다 처리하지도 못한다.

 

03 정보 처리 과정

1. BIT와  BYTE

  • bit(Binary digit) : 정보의 최소 단위. 0과 1을 이용해 추상적 정보를 정량적이고 연산 가능한 정보로 전환. 
  • byte = 8bit :  1비트면 'true/false, 예/아니오' 정도의 정보량, 4비트면 숫자 1개, 8비트면 알파벳 한 글자.
  • KB = 1000byte = 8000bit : MS워드 문서 하나 정도.
  • MB = 1000KB : 음악파일 1분 정도.
  • GB = 1000MB : HD영화 30분
  • TB = 1000GB

2. 데이터를 표기하는 방법

  1. 2진법 : 컴퓨터가 사용하는 방식

  • ASCII 코드 : 컴퓨터가 텍스트를 저장하기 위해 사용하는 2진법 표준코드체계
    • ASCII코드 표는 각 문자를 10진수에 대응하며, 임의적이지만 일관된 표준임
    • ASCII에서 소문자는 같은 대문자 글자보다 항상 2^5만큼 크. 이진수에서 2^5의 자릿수만 바꾸면 되기 때문에(소문자는 1, 대문자는 0으로) 소문자와 대문자 간의 변환이 쉬워짐.
    • 기본 ASCII 코드 표는 7비트이용해서 2^7 개, 즉 128개의 문자를 나타낼 수 있음. 확장 ASCII는 8번째 비트를 추가하여 총 256개의 문자를 나타냄. 
  • 16진법: 프로그래머들이 주로 사용하는 방식
    • 컴퓨터가 처리하려면 2진수로 적어야 하지만 그러면 길이가 너무 길어짐.
    • 2진수로 8자리인 수를 16진수로는 2자리만으로 표현할 수 있다. -> 숫자 2개면 딱 8bit=1byte

3. 데이터의 인식과 활용

  • 이미지를 구별하는 방법
    • 이미지 파일의 헤더에는 파일 확장자를 구분할 수 있는 구분자를 넣어둔다. e.g. JPEG의 첫 부분은 255 216 255
    • BMP 파일 형식은 파일 내부를 보면 아래와 같다.

 

  • 심리상담 챗봇 Eliza
    • 사용자의 대화에서 문장 구조를 파악해, 그것을 대답/재질문의 형태로 변환시킨다. (I want ~. -> Why do you want ~? )
    • 사용자가 입력하는 문장을 계속 한 곳(변수 or 배열)에 저장하면서 반복 등장하는 단어를 찾아 반응한다.

  • 음성인식 시스템
    • 음절 인식 : 초성 중성 종성을 인식, tomato 등 여러 발음이 가능한 경우도 확률로 대응
    • 단어 간 연결 인식 : "날씨"라는 단어 뒤에 올 확률이 높은 것을 분석해서 요구의 일정 패턴을 읽어냄.
    • 문장 인식 : 문법적 분석 -> 의미적 분석 -> 중첩되는 의미 구별(다의어, 말장난, 비유 등)
    • 해답 찾기 : 외부 DB에서 정보를 찾아서(크롤링 등) 전달할 수 있어야 함
    • 비언어적 소통 : 거리, 시선, 어조 등 (e.g. 비언어적으로 반응하는 로봇 지보)

 


이 개쩌는 무료강의를 듣고 있자니 그동안 내가 모 유명 컴활 강사의 강의에 들인 시간과 돈이 겁나게 아깝게 느껴지기 시작했다.

모르는 걸 반복해서 들으며 머릿속에 cram하는 방식 물론 10번씩 들으면 각인은 되겠지만

이 강의 들으면서 '아!?'하는 모먼트가 엄청 많았던 걸 보면 컴활강의의 실질적 이해도는 엄청 떨어졌던 것.

나의 시간과 (얼마 없는)에너지는 소중한 것이니 아껴주자..

'프론트엔드 공부 > CS50' 카테고리의 다른 글

6. 인터넷과 네트워크  (0) 2022.04.21
5. 프로그래밍 응용 (2)  (0) 2022.04.20
4. 프로그래밍 응용 (1)  (0) 2022.04.19
3. 프로그래밍 기초 (C)  (0) 2022.04.19
2. 알고리즘  (0) 2022.04.18