1. 정보 표현 단위: bit, byte
Bit (비트): 컴퓨터에서 정보를 표현하는 가장 작은 단위입니다. 0 또는 1의 값을 가질 수 있습니다.
예시: 스위치의 ON/OFF 상태, 전기 신호의 높음/낮음.
Byte (바이트): 8개의 비트가 모여서 구성되는 단위입니다. 문자를 표현하는 데 주로 사용됩니다.
예시: 'A'라는 문자는 1바이트로 표현될 수 있습니다.
더 큰 정보 표현 단위
Kilobyte, Megabyte, Gigabyte, Terabyte: 더 큰 데이터 양을 나타내는 단위입니다.
각각 1024바이트, 1024KB, 1024MB, 1024GB입니다.
2. 1 바이트는 8 비트1바이트는 8비트로 구성됩니다.
컴퓨터에서 문자를 표현하거나 데이터를 처리하는 기본적인 단위입니다.
예시: 8개의 0 또는 1로 이루어진 조합 (예: 01000001)이 1바이트를 나타냅니다.
3. 비트 단위 논리 연산
비트 단위 논리 연산은 개별 비트 수준에서 수행되는 연산입니다. AND, OR, NOT, XOR 등의 연산이 있습니다.
AND: 두 비트가 모두 1일 때 결과가 1, 아니면 0.
예시: 1 AND 1 = 1, 1 AND 0 = 0
OR: 두 비트 중 하나라도 1이면 결과가 1, 아니면 0.
예시: 1 OR 0 = 1, 0 OR 0 = 0
NOT: 비트 값을 반전시킵니다. 0은 1로, 1은 0으로.
예시: NOT 1 = 0, NOT 0 = 1
XOR: 두 비트가 서로 다를 때 결과가 1, 같으면 0.
예시: 1 XOR 0 = 1, 1 XOR 1 = 0
이러한 연산은 데이터 처리, 암호화, 네트워크 프로토콜 등에서 사용할 수 있습니다.
4. 2진수와 16진수 변환
2진수: 0과 1만을 사용하여 수를 표현하는 방식입니다. 컴퓨터 내부에서 사용됩니다.
예시: 101101 (2진수)
16진수: 0부터 9까지의 숫자와 A부터 F까지의 문자를 사용하여 수를 표현하는 방식입니다. 2진수를 간결하게 표현하기 위해 사용됩니다.
예시: 2D (16진수)
변환: 2진수를 16진수로 변환하려면 2진수를 4비트씩 묶어서 해당하는 16진수 문자로 바꾸면 됩니다.
예시: 101101 (2진수) -> 0010 1101 -> 2D (16진수)
5. 1024MB는 1GB
컴퓨터 저장 용량 단위에서 1024MB는 1GB와 같습니다.
1KB = 1024 Bytes, 1MB = 1024 KB, 1GB = 1024 MB, 1TB = 1024 GB
이는 2의 10제곱 (1024)을 기준으로 정의되기 때문입니다.
6. 프로그램과 프로세스의 차이
Program (프로그램): 디스크 등에 저장된 실행 가능한 명령어들의 집합입니다. 정적인 상태입니다.
예시: .exe 파일, .py 스크립트
Process (프로세스): 프로그램이 실행되어 메모리에 로드된 상태입니다. 동적으로 실행되는 프로그램의 인스턴스입니다.
예시: 웹 브라우저를 실행하면 웹 브라우저 프로세스가 생성됩니다.
즉, 프로그램은 프로세스의 코드가 됩니다.
7. OSI 7 계층
OSI (Open Systems Interconnection) 7 Layer는 네트워크 통신 과정을 7개의 계층으로 나눈 표준 모델입니다. 각 계층은 특정 기능을 수행합니다.
물리 계층 (Physical Layer): 전기적, 물리적 연결을 다룹니다.
예시: 케이블, 커넥터, 전압
데이터 링크 계층 (Data Link Layer): 동일 네트워크 상 장치 간 데이터 전송을 다룹니다.
예시: MAC 주소, 스위치
네트워크 계층 (Network Layer): 논리적 주소(IP)를 사용하여 다른 네트워크와 통신합니다.
예시: IP 주소, 라우터
전송 계층 (Transport Layer): 신뢰성 있는 데이터 전송을 보장합니다.
예시: TCP, UDP
세션 계층 (Session Layer): 통신 장치 간 연결 설정, 유지, 종료를 관리합니다.
예시: 로그인, 로그아웃
표현 계층 (Presentation Layer): 데이터 형식 변환 및 암호화를 담당합니다.
예시: JPEG, ASCII
응용 계층 (Application Layer): 사용자가 네트워크에 접근할 수 있도록 서비스를 제공합니다.
예시: HTTP, FTP, DNS
8. 운영체제의 User 모드와 Kernel 모드
운영체제는 User mode와 Kernel mode라는 두 가지 실행 모드를 가집니다.
Kernel Mode (커널 모드): 운영체제의 핵심 부분(커널)이 실행되는 모드입니다. 모든 하드웨어 자원에 접근할 수 있으며, 시스템 전체를 제어합니다.
예시: 장치 드라이버 실행, 메모리 관리
User Mode (사용자 모드): 일반 응용 프로그램이 실행되는 모드입니다. 제한된 자원에만 접근할 수 없어 시스템 안정성을 보호합니다.
예시: 웹 브라우저 실행, 문서 작성
사용자 모드의 프로그램이 커널 기능이 필요하면 시스템 호출(System call)을 통해 커널 모드로 전환하여 작업을 수행합니다.
9. Buffer의 의미
Buffer (버퍼): 데이터를 일시적으로 저장하는 메모리 영역입니다. 속도가 다른 장치나 프로세스 간 데이터 전송 효율성을 높이는 데 사용됩니다.
예시: 동영상 스트리밍 시, 미리 데이터를 버퍼에 저장하여 끊김 없이 재생합니다. 프린터 버퍼는 인쇄할 문서를 임시로 저장하여 CPU가 다른 작업을 처리할 수 있도록 합니다.
10. 추상화와 구현의 차이
Abstraction (추상화): 복잡한 시스템에서 불필요한 세부 사항을 숨기고 핵심적인 부분에만 집중하는 것입니다.
예시: 자동차 운전자는 엔진의 작동 원리를 몰라도 운전할 수 있습니다.
이는 자동차가 운전 인터페이스(핸들, 가속 페달 등)를 통해 엔진 작동의 복잡성을 추상화했기 때문입니다.
Implementation (구현): 추상화된 개념을 실제로 만드는 과정입니다.
예시: 자동차 엔진의 실제 설계 및 제작 과정은 엔진 작동 원리의 구현에 해당합니다.
추상화는 '무엇(What)'에 대한 것이고, 구현은 '어떻게(How)'에 대한 것입니다
'시스템엔지니어 > CS와 이것저것' 카테고리의 다른 글
[프로토콜] MCP는 API의 다음 세대?, Copilot Agents (0) | 2025.03.31 |
---|---|
[프론트엔드] CDN 개념과 특징 (0) | 2025.03.30 |
[프론트엔드] 프로토타입 상속의 동작 방식 (0) | 2025.03.29 |
[백엔드] 연결 리스트, 포인터로 연결하여 관리 (0) | 2025.03.28 |
[프론트엔드] BFF, MSA아키텍처에서 중간자 역할 수행 (1) | 2025.03.27 |