끄적이는 개발노트
260325_강의 정리 본문
728x90
■ 데이터처리 - 2진수
- 컴퓨터의 데이터 처리는 2진수로 이루어진다.
- 숫자
- 2진수로 변환 ( 정수 : 2진수 / 실수 : 부동소수점 )
- 텍스트
- 문자별 코드표를 통해 문자 -> 숫자 -> 2진수로 변환
- ex) 'A' → 65 → 01000001
- ASCII(아스키코드), Unicode(유니코드) 같은 문자별 코드표 사용
- 이미지
- 각 픽셀의 RGB 값 매핑
- 0 ~ 255 -> 1byte
- 픽셀 하나는 3byte로 24bit
- 사운드
- 소리는 연속적인 파형
- 이걸 샘플링해서 숫자로 저장
- 즉, 시간에 따른 진폭값 배열
- 동영상
- 이미지의 연속
- 숫자
- 데이터 타입이 필요한 이유 : 이렇게 저장되는 2진수 값들이 어떤 타입의 데이터인지 구분하기 위해 사용
■ 컴퓨터 구조 및 단위
- 연산 장치 ( 파이썬 => 연산자 )
- 제어 장치 ( 파이썬 => if 조건문 / for 반복문 )
- 연산과 제어를 합쳐서 CPU (+ 레지스터(=임시 저장 장치) + 캐시메모리)
- 기억 장치 ( 파이썬 => 변수(= 메모리 참조))
■ 데이터 크기 단위
- bit : 최소 정보 단위 (0, 1)
- 1byte = 8bit => 256가지 표현 (정수로 보면 0~255)
- tip) 2진수 만들기 : 1 2 4 8 16 32 64 ... => 각 수가 포함되면 1로 체크
■ 인코딩과 디코딩
- 인코딩(Encoding, 부호화)
- 정보나 데이터를 저장/전송 목적에 맞춰 컴퓨터가 이해할 수 있는 다른 형식(ex. byte)으로 변환하는 작업
- ex) "A" → 65 (코드값) → 01000001 (2진수)
- 디코딩(Decoding, 복호화)
- 인코딩된 데이터를 다시 원래의 형식으로 되돌리는 작업
- 같은 규칙을 활용하는게 중요
■ 메모리 구조
- Heap
- 동적메모리할당으로 데이터를 저장하는 영역
- 메모리 위치를 미리 알 수 없어 스택에 있는 포인터가 힙의 실제 데이터 위치를 참조하는 형태.
- Stack
- 함수가 호출될 때 지역 변수, 매개변수, 반환 주소 등을 임시로 저장하는 메모리 공간
- 마지막에 들어온 데이터가 먼저 나가는 LIFO (Last In, First Out)
- Python에서는 자동으로 C에서는 pointer에 대한 초기화가 반드시 필요
- 여기서 변수는 객체를 저장하는 것이 아니라, Heap에 있는 객체를 참조하는 이름
- 동적메모리할당 : 프로그램 실행 중(runtime)에 필요한 만큼 메모리를 요청해서 사용하는 것
■ Python 특징
- 모든 값이 객체
- 모든 변수는 값을 저장하는게 아니라 객체를 참조
728x90
'Python' 카테고리의 다른 글
| 260330_강의정리 (0) | 2026.03.30 |
|---|---|
| 260326_Python 실습 정리 (0) | 2026.03.27 |
| 260327_강의정리 (0) | 2026.03.27 |
| 260325_Python 실습 정리 (0) | 2026.03.26 |
| 260326_강의 정리 (0) | 2026.03.26 |
