3주차 - park-gyubi/Computer GitHub Wiki
1-1. 디지털 데이터와 이진수
컴퓨터의 데이터 표현
- 컴퓨터는 두 가지 전기 상태를 이용해 데이터를 표현함.
- 꺼짐 → 0
- 켜짐 → 1
비트(bit)
- 0 또는 1을 저장하는 가장 작은 정보 단위
- 비트가 여러 개 조합되면 더 많은 상태를 표현할 수 있음.
- 1비트 → 2가지
- 2비트 → 4가지
- 3비트 → 8가지
- n비트 → 2^n가지
디지털 데이터
- 문자, 사진, 음악, 영상 등 모든 데이터는 최종적으로 0과 1의 비트 조합으로 저장됨.
- 같은 비트 데이터라도 어떤 규칙으로 해석하는지에 따라 의미가 달라짐.
- 숫자 0과 1 자체만 저장하는 것이 아니라 비트의 조합과 해석 규칙을 이용해 다양한 데이터를 표현함.
1-2. 이진수와 십진수 변환
이진수
- 0과 1만 사용하는 수 체계
- 각 자리에는 2의 거듭제곱에 해당하는 자리값이 존재함.
- 오른쪽부터 1, 2, 4, 8, 16, 32, 64, 128...
이진수 → 십진수
- 각 자리의 비트와 자리값을 곱한 뒤 모두 더함.
- 예시: 1011₂
- 8×1 + 4×0 + 2×1 + 1×1
- = 11₁₀
- 예시: 11010110₂
- 128 + 64 + 16 + 4 + 2
- = 214₁₀
십진수 → 이진수
- 방법 1: 2의 거듭제곱으로 수를 분해함.
- 예시: 13
- 13 = 8 + 4 + 1
- 1101₂
- 예시: 45
- 45 = 32 + 8 + 4 + 1
- 101101₂
- 방법 2: 2로 반복해서 나누고 나머지를 아래에서 위로 읽음.
- 예시: 45
- 45 ÷ 2 → 나머지 1
- 22 ÷ 2 → 나머지 0
- 11 ÷ 2 → 나머지 1
- 5 ÷ 2 → 나머지 1
- 2 ÷ 2 → 나머지 0
- 1 ÷ 2 → 나머지 1
- 결과: 101101₂
이진 소수
- 소수점 오른쪽 자리값은 1/2, 1/4, 1/8, 1/16... 순서임.
- 예시: 0.101₂
- 1/2 + 1/8
- = 0.625₁₀
- 십진 소수를 이진수로 변환할 때는 2를 반복해서 곱하는 방법을 사용함.
- 일부 십진 소수는 이진수로 정확하게 끝나지 않고 무한히 반복될 수 있음.
변환 방법 정리
- 정수 → 반복 나눗셈
- 소수 → 반복 곱셈
- 결과 확인 → 각 자리값을 이용하여 다시 계산
비트 수와 표현 범위
- n비트로 표현 가능한 상태 수: 2^n개
- 부호 없는 정수의 범위: 0 ~ 2^n-1
- 4비트 → 0~15
- 8비트 → 0~255
- 예시: 4비트에서 1111₂ + 1 = 10000₂
- 5비트가 필요하므로 4비트 범위를 벗어남.

1-3. 비트와 바이트 그리고 용량
비트와 바이트
- 비트(bit): 0 또는 1
- 바이트(Byte): 8개의 비트
- 8bit = 1Byte
용량 단위
- B → KB → MB → GB → TB
- 용량 단위가 올라갈수록 더 많은 데이터를 저장할 수 있음.
사례
- 사진 한 장이 약 5MB이고 사진이 200장이라면
- 5MB × 200 ≈ 1GB
비트와 바이트 단위
- b = bit
- B = Byte
- 8b = 1B
- 통신 속도는 주로 bps(bit per second)를 사용함.
- 저장 용량은 주로 B, KB, MB, GB 등을 사용함.
- 예시: 100Mbps
- 100 ÷ 8 = 약 12.5MB/s
- 비트와 바이트를 혼동하지 않도록 주의해야 함.
1-4. 문자는 어떻게 숫자가 되는가
문자 인코딩
- 컴퓨터는 문자 자체의 모양을 저장하는 것이 아니라 문자에 대응되는 번호를 이용함.
- 문자 → 코드 번호 → 바이트 형태로 변환하여 저장
예시
가- Unicode 코드 포인트: U+AC00
- UTF-8 바이트: EA B0 80
ASCII
- 영문 문자 중심의 문자 코드
- 알파벳, 숫자, 기본 기호 등을 표현
Unicode
- 세계 여러 언어의 문자와 기호를 하나의 체계에서 표현하기 위한 문자 표준
- 각각의 문자에 고유한 코드 포인트를 부여함.
- 예시
- A → U+0041
- 가 → U+AC00
- 😀 → U+1F600
UTF-8
- Unicode 문자를 실제 바이트로 저장하는 인코딩 방식
- 문자에 따라 필요한 바이트 수가 달라지는 가변 길이 방식
- 예시
- A → 41 → 1바이트
- 가 → EA B0 80 → 3바이트
- 😀 → F0 9F 98 80 → 4바이트
- 따라서 글자 수와 저장되는 바이트 수는 항상 같지 않음.
문자 표시 과정
- 키 입력 → 문자 코드 → 글꼴 → 화면
- 문자 번호와 실제 화면에 그려지는 글자의 모양은 서로 다른 개념임.
- 인코딩 = 문자 번호를 바이트로 표현하는 규칙
- 글꼴 = 해당 문자의 모양을 화면에 그리는 데이터
한글 정규화
- 화면에서 똑같이 보이는 글자도 내부 코드 포인트 구성은 다를 수 있음.
- NFC
- 완성된 하나의 코드 포인트 형태로 표현
- 예: 가(U+AC00)
- NFD
- 자모를 여러 코드 포인트로 분리해서 표현
- 예: ㄱ(U+1100) + ㅏ(U+1161)
- 같은 글자로 보여도 내부 데이터가 다를 수 있음.
결합 문자와 이모지
- 화면에서 한 글자처럼 보여도 여러 코드 포인트가 결합되어 있을 수 있음.
- 예시
- é = e + 결합 악센트로 표현 가능
- 이모지 + 피부색 수정자
- 여러 이모지 + ZWJ(Zero Width Joiner)
- 사용자가 하나의 문자처럼 인식하는 단위를 그래핌 클러스터(Grapheme Cluster)라고 함.
문자 처리 과정
- 코드 포인트 + 인코딩 + 정규화 + 글꼴
1-5. 문자 인코딩과 깨짐 해결
문자 깨짐 원인
- 데이터를 저장할 때 사용한 인코딩과 읽을 때 사용한 인코딩이 다르면 문자가 깨질 수 있음.
- 저장 인코딩 ≠ 읽기 인코딩 → 문자 깨짐 발생
자주 발생하는 사례
- CSV 파일
- 오래된 웹페이지
- 전자우편
- 다른 운영체제나 프로그램 사이에서 파일을 주고받을 때
문자 깨짐과 글꼴 문제 구분
- 이상한 문자나 기호가 표시됨 → 인코딩 문제 가능성
- 네모 상자(□) 등이 표시됨 → 해당 문자를 지원하는 글꼴이 없는 경우 가능성
안전한 해결 순서
- 원본 파일 보존
- 복사본 만들기
- 사용된 인코딩 후보 확인
- 올바른 인코딩으로 열기
- 올바른 인코딩으로 다시 저장
문자 깨짐 진단 과정
- 바이트 확인 → 디코딩 → 정규화 → 글꼴 확인
- 인코딩 문제라면 UTF-8 등의 올바른 설정을 확인
- 글꼴 문제라면 해당 문자를 지원하는 글꼴을 확인

2-1. 픽셀과 디지털 이미지
픽셀
- 디지털 이미지를 구성하는 가장 작은 점
- 각각의 픽셀은 색상 값을 가짐.
- 이미지를 크게 확대하면 픽셀 격자가 보임.
해상도
- 이미지의 가로 픽셀 수 × 세로 픽셀 수
- 예시: 1920×1080
- 가로 1920픽셀
- 세로 1080픽셀
화면 크기와 선명도
- 같은 해상도라도 화면 크기에 따라 보이는 선명도가 달라질 수 있음.
- 작은 화면에서는 픽셀이 촘촘하게 보여 더 선명하게 느껴질 수 있음.
- 큰 화면에서는 같은 픽셀 수가 더 넓게 배치되어 픽셀이 쉽게 보일 수 있음.
이미지 품질
- 해상도가 높다고 무조건 최고의 화질이 되는 것은 아님.
- 화질에 영향을 주는 요소
- 초점
- 압축 방식과 품질
- 카메라 센서
- 조명 및 촬영 환경
- 해상도

2-2. 색은 어떻게 숫자가 되는가
RGB
- 빛의 빨강(R), 초록(G), 파랑(B)을 조합하여 색을 표현
- 빛을 더할수록 밝아지는 가산 혼합 방식
- 모니터, 스마트폰 등의 화면에서 사용
RGB 채널 값
- R: 0~255
- G: 0~255
- B: 0~255
- 각 채널은 8비트
- RGB 전체는 24비트
- 표현 가능한 색상 수
- 256 × 256 × 256
- = 16,777,216색
- 약 1677만 색
예시
- R=255, G=0, B=0 → 빨강
- 색상 코드 #FF8000
- R=255
- G=128
- B=0
RGB와 CMYK
- RGB
- 빛을 더하는 가산 혼합
- 화면에 사용
- CMYK
- Cyan, Magenta, Yellow, Black
- 잉크가 빛을 흡수하는 감산 혼합
- 인쇄에 주로 사용
2-3. 래스터 이미지와 벡터 이미지
래스터 이미지
- 픽셀을 이용하여 이미지를 저장
- 사진 표현에 적합
- 확대하면 픽셀이 보이면서 이미지가 깨져 보일 수 있음.
- 대표 형식: JPEG, PNG
벡터 이미지
- 선, 곡선, 도형 등의 수학적인 명령으로 이미지를 표현
- 확대해도 선명함을 유지
- 로고, 아이콘 등에 적합
- 대표 형식: SVG
비교
- 사진 → 래스터 방식에 적합
- 로고, 아이콘 → 벡터 방식에 적합
- 이미지의 사용 목적에 따라 적절한 방식을 선택해야 함.

2-4. 소리의 디지털 표현
소리
- 실제 소리는 시간에 따라 연속적으로 변화하는 아날로그 신호
- 컴퓨터에서 처리하기 위해 일정한 간격으로 측정해 숫자로 변환함.
표본화 주파수
- 1초 동안 소리를 측정하는 횟수
- 단위: Hz
- 표본화 주파수가 높을수록 더 많은 지점을 측정함.
비트 깊이
- 측정한 진폭을 몇 단계로 나누어 표현하는지 결정
- 비트 깊이가 높을수록 더 세밀하게 소리를 표현할 수 있음.
- 예시: 3비트 → 2³ = 8단계
채널
- 모노 → 1채널
- 스테레오 → 2채널
소리 데이터 용량
- 용량(bit) = 표본화 주파수 × 비트 깊이 × 채널 수 × 시간
- 용량(Byte) = 용량(bit) ÷ 8
- 다른 조건이 같다면 스테레오는 모노보다 약 2배 많은 데이터가 필요함.
2-5. 표본화와 양자화
표본화
- 연속적인 신호를 일정한 시간 간격으로 측정하는 과정
- 표본화 시간 간격(Δt)이 작을수록 원래 신호의 변화를 더 잘 표현할 수 있음.
- 표본화 주파수가 낮으면 빠르게 변화하는 신호를 제대로 표현하지 못할 수 있음.
양자화
- 측정된 진폭 값을 정해진 단계 중 가장 가까운 값으로 반올림하여 표현하는 과정
- 양자화 단계가 많을수록 원래 값과의 차이가 작아짐.
- 비트 깊이가 낮으면 양자화 단계가 적어 반올림 오차가 커지고 왜곡이나 잡음이 증가할 수 있음.
품질에 미치는 영향
- 표본화 주파수 증가 → 시간 방향 표현이 세밀해짐.
- 비트 깊이 증가 → 진폭 방향 표현이 세밀해짐.
- 두 설정이 디지털 변환의 품질과 데이터 용량에 영향을 줌.
나이퀴스트 원리
- 원래 신호를 제대로 표현하려면 최고 주파수의 2배보다 높은 표본화 주파수가 필요함.
- fs > 2fmax
- 또는 Δt < 1/(2fmax)
- 조건을 만족하지 못하면 원래 신호를 정확하게 복원하기 어려움.

3-1. 디지털 영상의 원리
프레임
- 영상은 여러 장의 정지 이미지가 시간 순서대로 빠르게 이어진 것
- 각각의 정지 이미지를 프레임이라고 함.
- 프레임이 빠르게 이어지면 사람이 움직이는 영상으로 인식함.
FPS
- Frames Per Second
- 1초 동안 표시되는 프레임의 수
- 예시
- 24fps → 영화
- 30fps → 강의 영상 등
- 60fps → 게임, 빠른 움직임이 많은 영상
- FPS가 높아질수록 움직임이 부드러워지지만 데이터 양도 증가함.
영상 데이터의 주요 요소
- 해상도
- 색 깊이
- FPS
- 재생 시간
- 값이 커질수록 일반적으로 데이터 용량과 연산량이 증가함.
FPS와 화면 주사율
- FPS: 영상 콘텐츠에서 1초 동안 생성되는 프레임 수
- 화면 주사율(Hz): 모니터가 1초 동안 화면을 갱신하는 횟수
- 서로 관련은 있지만 같은 개념은 아님.
- 예시: 콘텐츠 30fps를 60Hz 모니터에서 표시할 수 있음.

3-2. 이미지와 소리의 압축
압축
- 데이터를 더 적은 용량으로 저장하거나 전송하기 위한 방법
- 반복되는 데이터를 줄이거나 사람이 덜 민감하게 느끼는 정보를 줄이는 방식 등을 사용함.
무손실 압축
- 압축을 해제하면 원본 데이터를 정확하게 복원할 수 있음.
- 대표 형식
- PNG
- FLAC
- ZIP
- 원본 보존이 중요한 데이터에 적합
손실 압축
- 일부 정보를 제거하여 용량을 크게 줄임.
- 압축을 해제해도 제거된 정보는 완전히 복구할 수 없음.
- 대표 형식
- JPEG
- MP3
- 압축률을 높일수록 일반적으로 용량은 작아지지만 품질이 떨어질 수 있음.
목적에 따른 선택
- 로고, 중요한 문서 → 무손실 또는 벡터 방식
- 웹 사진, 스트리밍 → 용량과 품질을 고려한 적절한 손실 압축
- 데이터의 목적에 따라 압축 방법을 선택해야 함.
3-3. 동영상 압축과 코덱
동영상 압축
- 동영상에는 공간적·시간적으로 반복되는 정보가 많기 때문에 이를 이용해 용량을 줄임.
공간 중복
- 한 프레임 안에서 비슷한 색상이나 정보가 반복되는 현상
- 비슷한 영역을 묶거나 단순화하여 저장량을 줄일 수 있음.
시간 중복
- 연속되는 프레임에서 같은 배경이나 물체가 반복되는 현상
- 전체 정보를 저장하는 키 프레임과 이전 프레임에서 달라진 부분을 저장하는 변화 프레임 등을 이용할 수 있음.
- 예시: 배경은 그대로 있고 손만 움직인다면 손의 움직임과 같이 달라진 부분을 중심으로 저장
코덱
- Codec
- 영상이나 음성 데이터를 어떻게 압축하고 복원할지 정하는 규칙
- 인코딩: 원본 데이터를 압축
- 디코딩: 압축된 데이터를 복원하여 재생
- 인코딩과 디코딩에서 같은 코덱 규칙을 사용해야 함.
- 대표 영상 코덱
- H.264 / AVC
- H.265 / HEVC
- VP9
- AV1
코덱과 컨테이너
- 코덱 = 데이터를 압축하고 복원하는 규칙
- 컨테이너 = 영상, 음성, 자막 등의 여러 데이터를 하나의 파일로 묶는 형식
- MP4는 영상·음향·자막 등의 스트림을 담을 수 있는 컨테이너 형식
3-4. 해상도, 비트레이트, 파일 크기
영상 품질에 영향을 주는 요소
- 해상도
- FPS
- 비트레이트
- 코덱
- 장면 복잡도
- 4K와 같이 해상도가 같더라도 다른 설정에 따라 품질과 파일 크기는 달라질 수 있음.
비트레이트
- 1초 동안 사용하는 데이터의 양
- 단위: bps(bit per second)
- 비트레이트가 높을수록 일반적으로 더 많은 정보를 저장할 수 있지만 파일 용량도 증가함.
파일 크기 계산
- 파일 크기(Byte) ≈ 비트레이트 × 재생 시간 ÷ 8
- 예시: 10Mbps 영상 10분
- 10Mbps = 10,000,000bps
- 10분 = 600초
- 10,000,000 × 600 ÷ 8
- ≈ 750,000,000Byte
- ≈ 750MB
장면 복잡도
- 움직임이 적고 단순한 화면
- 반복되는 정보가 많음.
- 압축 효율이 높음.
- 비교적 낮은 비트레이트로도 표현 가능
- 스포츠처럼 움직임이 많고 복잡한 화면
- 변화하는 정보가 많음.
- 압축하기 어려움.
- 높은 품질을 유지하려면 더 많은 데이터가 필요
3-5. 목적에 맞는 데이터 형식 선택
파일 형식 선택 기준
- 내용
- 편집 가능 여부
- 품질
- 용량
- 호환성
- 원본 보존 여부
형식 예시
- 문자 → UTF-8
- 사진 → JPEG, PNG
- 로고 → SVG
- 소리 → WAV, MP3
- 영상 → MP4
원본과 배포본
- 편집 가능한 원본은 따로 보존
- 다른 환경에서 쉽게 사용할 수 있는 배포본을 별도로 생성
- 원본을 직접 변환하거나 덮어쓰기보다 원본과 배포본을 분리하는 것이 안전함.
안전한 변환 과정
- 백업
- 파일 변환
- 정상적으로 열리거나 재생되는지 확인
- 공유
데이터 형식 선택
- 데이터 형식은 무조건 하나가 좋은 것이 아니라 사용 목적, 품질, 용량, 호환성 등을 고려하여 선택해야 함.

확인 질문
- 스위치 4개는 몇 가지 상태를 표현할까? 16가지 (2^4)
- 십진수 13을 이진수로 표현 1101
- 100Mbps는 초당 몇 MB일까? 100 ÷ 8 = 12.5Mps
- 'A', '가', 이모지는 어떻게 표시될까? 각각 문자 코드 A - U+0041 가 - U+AC00 😀 → U+1F600
- 깨진 CVS를 안전하게 복구하는 순서는? 파일의 저장 인코딩 확인 -> 같은 인코딩으로 다시 읽기 -> 글꼴이 지원하는지 확인
- 같은 이미지가 큰 화면에서 거칠어지는 이유는? 같은 픽셀 수를 더 큰 화면에서는 확대가 되기 때문이다.
- R=255, G=0, B=0은 어떤 색일까? 빨강색
- 증명사진, 학교 로고, 지도 아이콘의 형식은? 사진 - 래스터 로고, 아이콘 - 벡터
- 모노와 스테레오의 용량 차이(같은 조건이라면 어떻게 달라지는가)? 모노 - 1채널, 스테레오 - 2채널 => 스테레오가 모노의 2배
- 시간 간격과 진폭 단계가 품질에 미치는 영향은? 시간 간격이 작아지면 자주 측정할 수 있어 원래 신호를 더 정확하게 표현 가능 진폭 단계가 늘어나면 진폭을 더 세밀하게 표현 할 수 있어서 원래 신호에 더 가까워짐
- 30fps 와 60fps의 표현과 용량 차이는? 표현:60fps가 30fps보다 1초에 표시되는 프레임이 2배 많기때문에 움직임이 더 부드럽다 용량: 같은 조건에서 6-fps가 30fps의 2배가 된다.
- 학교로고, 여행 사진, 음성 녹음의 방식은? 로고 - 무손실 압축 사진, 음성 녹음 - 손실 압축
- 고정 배경에서 손만 움직이면 무엇을 저장할까? 배경은 그대로 두고 움직이는 손의 변화만 저장
- 10Mps 영상 10분의 대략적인 크기는? 10Mbps * 600초 ÷ 8 = 750MB
필기 내용을 chat gpt로 다듬어 요약 정리함