텍스트 표현
수를 사용해 문자나 키보드에 있는 다른 기호 등을 표현하는 방법
- 아스키 코드
- 키보드에 있는 모든 기호에 대해 7비트 수 값을 할당
- 유니코드 변환 형식 8비트(UTF-8)
- 비트 가격이 떨어짐에 따라, 문자에 16비트 코드를 부여하는 유니코드 만들어짐
- 비트 같은 추상화를 사용해 숫자를 표현하고, 숫자를 사용해 문자를 표현하며, 다시 다른 숫자를 사용해 이러한(문자를 표현하는) 숫자를 표현!
- 유니코드 변환 형식 8비트 인코딩 방법이 하위 호환성과 효율성 때문에 가장 널리 쓰이고 있음
문자를 사용한 수 표현
UTF-8은 문자(ex A)를 표현하는 비트들(2진수 000000001000000)로부터 나온 숫자들(0x0041)을 표현하는 숫자들(UTF-8로 인코딩한 값)을 표현하기 위해 숫자(실제 UTF-8로 인코딩한 0x41)들을 사용.
→ 이제는 문자를 사용해 수를 표현할 수도 있음!
- 출력 가능하게 변경한 인코딩(Quoted-Printable encoding)
- 8비트 데이터를 7비트 데이터만 지원하는 통신 경로를 통해 송수신하기 위한 인코딩 방법
- 베이스 64 인코딩(base64)
- QP 인코딩 → 1바이트를 표현하기 위해 3바이트를 사용 - 비효율적
- base64 인코딩 = 3바이트 데이터를 4문자로 표현
- 3바이트 데이터의 24비트를 네 가지 6비트 덩어리로 나누고, 각 덩어리의 6비트 값에 출력 가능한 문자를 할당해 표현
- URL 인코딩(퍼센트 인코딩)
- % 뒤에 어떤 문자의 16진 표현을 덧붙이는 방식으로 문자를 인코딩
- / 는 URL에서 특별한 의미! - / 가 표현하는 특별한 의미를 뜻하고 싶지 않은 경우, /를 %2F(해당 문자의 16진수 표현)라는 문자열로 대신함
- % 뒤에 어떤 문자의 16진 표현을 덧붙이는 방식으로 문자를 인코딩
2장. 전자 회로의 조합 논리 - 컴퓨터는 어떤 논리로 비트를 다루는가
디지털 컴퓨터의 사례
- 아날로그와 디지털의 차이
- 아날로그 : 연속적(ex 계산자)
- 디지털 : 이산적(ex 손가락)
- 하드웨어에서 크기가 중요한 이유
- 컴퓨터에서 전자의 여행 시간을 최소화하는 방법은? → 부품을 가능한 (물리적으로) 가깝게 위치시키는 것!
- 하드웨어를 작게 만들면 속도와 효율은 좋아지지만, 너무 작아지면 서로 간섭하기 아주 쉬워짐
- 따라서 더 높은 판정 기준을 통해 잡음 내성을 갖는 디지털 회로를 사용하는 것이 필수적!
- 아날로그 세계에서 디지털 만들기
- 왜곡(distortion) 이용
- 출력값이 문턱값(판정 기준)의 한쪽에서 반대쪽으로 옮겨가고, 중간 정도의 출력값을 어렵게 만들기!
- 이를 통해 연속적인 공간을 이산적인 영역으로 나눠줌
- 10진 숫자 대신 비트를 사용하는 이유
- 효율!
- 숫자를 사용하면 전이 함수를 각기 다른 10가지 문턱값으로 구분할 수 있는 간단한 방법이 없기 때문
- 현대적 하드웨어는 전이 함수의 하단부와 상단부 영역을 활용!
간단한 전기 이론 가이드
전기는 수도 배관과 유사하다!
- 옴의 법칙
- 전류는 전압을 저항으로 나눈 값과 같다(I = V/R)
- 전기 스위치
- 회로
비트를 처리하기 위한 하드웨어
- 릴레이(계전기)
- 스위치를 움직이기 위해 전자석을 사용하는 장치
- 릴레이를 통해 NOT 함수를 구현하는 인버터 를 만들 수 있음!
- but 기계적인 부품이 들어가 있기 때문에, 스위치 접점에 문제 발생 시 제대로 작동 X
- 진공관
- 물체를 충분히 가열하면 전자가 튀어나오는 현상 기반 발명
- 히터가 캐소드를 가열해 전자 튀어 나가게 함, 그리드가 방해하지 않으면 전자가 애노드에 도착(그리드 = 스위치)
- 움직이는 부분이 없어서 릴레이보다 훨씬 더 빠르다는 장점
- 아주 뜨겁고 깨지기 쉽다는 단점
- 트랜지스터
- 진공관과 비슷하지만 반도체 라는 특별한 물질 사용
- 반도체 = 도체와 부도체 사이를 오갈 수 있는 물질
- 아주 작게 만들 수 있지만, 도체가 가늘고 얇아지면 저항이 더 늘어나 열이 발생(반도체가 쉽게 녹을 수 있으므로 트랜지스터에서 열 제거는 아주 중요한 문제)
- 반도체 물질로 이뤄진 기판 또는 슬랩 위에 만들어짐(보통은 실리콘이 기판 재료로 쓰임)
- 쌍극 접합 트랜지스터 / 필드 효과 트랜지스터
- 집적 회로(chip)
- 트랜지스터 → AND와 같은 간단한 회로 만들 때조차도 부품이 너무 많이 필요!
- 집적 회로를 사용해 복잡한 시스템을 트랜지스터 하나 정도의 비용으로 만들 수 있음
- 진공관과 비슷하지만 반도체 라는 특별한 물질 사용
- 새로운 기술이 나올 때마다 - 회로는 더 작아지고, 저렴해지고, 에너지를 더 효율적으로 사용!
'source-code > software' 카테고리의 다른 글
| 한 권으로 읽는 컴퓨터 구조와 프로그래밍 (0) | 2023.03.23 |
|---|---|
| 한 권으로 읽는 컴퓨터 구조와 프로그래밍 (0) | 2023.03.23 |
| 한 권으로 읽는 컴퓨터 구조와 프로그래밍 (0) | 2023.03.20 |
| SRP! (0) | 2023.02.13 |
| 정규 표현식 기본 (0) | 2023.01.09 |