section6 note taking
아니 이렇게 2진수가 나를 괴롭힌다고? 아 괴롭다
Buffer
- 충격완화, 완충지대
- 컴퓨터 엔지니어링에서 버퍼는 A에서 B로 이동할 때 속도 그리고 시간 차이 조절
- 데이터를 일시적으로 보관하는 완충기억 장치
- 전문 통역사 역할 node.js <-> machine code
Binary Data
- 컴퓨터의 가장 밑바탕 010101010
- 컴퓨터가 이해하는 유일한 언어
- cpu는 트랜지스터를 사용
- 트랜지스터는 전기신호를 열었다 닫았다 할 수 있는 스위치
- node.js <- Buffer -> [01010]
- 무수한 0과 1을 연결하는 브릿지
[Buffer] 2진수 16진수 문자인코딩
- 16진수 Hexa 6 Decimal 10
- 1 bit Binary Digit
- 8 bits = 1 Byte
- 0-9 Decimal 10진수
- 5 <-> 101 11 <-> 1011
2진수
- 밑이 2인 수 Base-2
- 1......0 8bits
- MSB Most Significant Bit 영향력 최대
- LSB Least Significant Bit
- 128.... 1 유효성이 증가
Base
- Base-10 10진수 0-9
- Base-16 16진수 0-15
- Base-2 2진수 0-1
HexaDecimal Base=16
- x * 16^i
- Binary <-> Hex 변환간단
- 0-9, A-F 16개
- 어떤 4bits를 선택하든 대응하는 문자는 1개
- 4000bits -> 16진수 변환 -> 1000chars 정보량 유지 길이는 25%
- 456 10진수? 16진수? 0x456 16진수인 것을 나타냄
- 0x456 == 1110
- FA3C == 64,060
- 컴퓨터 세계에서 메모리위치&IP주소를 다를 때 16진수가 압도적으로 편리
문자 셋
- 연산장치 cpu 숫자 <-> 키보드 텍스트
- 문자와 숫자 사이를 1대1 매핑 character set
- 모든 글자/기호의 전체 목록에 각 문자의 고유 식별 번호
- 'a' == 97 == 01100001
- 문자셋 변환, 메모리 저장
ASCII 기본
- legacy system
- 미국 정보 교환 표준 부호
- 영어만 취급
- 7bits 2^7=128
UNICODE 글로벌
- 전세계 모든 문자의 단일 통합 규칙 rule book
- 문자 <-> 숫자 완벽한 기준 unicode
Encoding Decoding
- 인간의 언어 -> 이진수 encoder
- 이진수 -> 인간이 이해할 수 있는 형태 decoder
- 인코딩 시스템 UTF-8 Unicode 8bits
- ASCII -> 8bits에 완벽 수납 젤 앞 한 칸은 항상 0으로 고정
- 한글은 예외없이 3바이트 24bits
- 모든 문자 인코딩: 글자를 쪼개어 약속된 이진수 조합을 부여하는 일관된 방식
- CODEC = enCode + Decode
소감
- 16진수 그건 뭐지? 컬로 표기할 때만 봤는데 buffer 예제 코드 보니깐 아 저것이,,,, 16진수 였구나 싶다.
- 아 괴롭다 이걸 3년전에 했으면 내 회사 생활이 좀 나아 졌을까?