01-2 정보의 표현과 컴퓨터 하드웨어 공개
1.한글은 2진수, 8진수, 10진수, 16진수에서 어떻게 표현하나요? (Unicode)에 대하여 조사
유니코드란?
- 유니코드는 한글, 영어, 특수문자, 이모티콘등을 표현하기 위한 통일된 문자 집합
- 유니코드는 현대 문자 표현에 있어서 매우 중요한 위치를 가짐
- 유니코드를 인코딩하는 방식으로 utf-8, utf-16등이 있음
- utf는 유니코드 인코딩 방법을 의미하며, 뒤에 숫자에 따라 인코딩 결과의 크기가 1-4바이트가 됨
한글을 2진수로 표현하는 것은 일반적으로 Unicode 또는 UTF-8 인코딩을 사용하여 이루어짐
Unicode에서는 한글 문자들은 16진수로 표현되며, UTF-8은 이를 이진수로 변환하여 저장함
ex) 가 (U+AC00) = 1010110000000000 (2진수로 표현)
가 (U+AC00) = 11101010 10110000 10000000 (UTF-8로 인코딩한 표현)
8진수, 10진수, 16진수도 Unicode 의 코드포인트를 변환하여 사용
예를 들어 가의 코드포인트인 U+AC00을 16진수로 변환하면 그대로 AC00 이고, 10진수로 변환하면 44032, 44032를 8진수로 변환하면 012700입니다.
2.정수이외의 수를 나타내는 데에는 어떤 방법이 이용될까?
- 부동소수점 표현 방식 :
3,1415.9 --> 3.14159 * (10**4)
- 고정소수점 표현 방식 :
정수부와 소수부로 나누어 표현
예를 들어, 123.45는 고정소수점으로 표현하면 다음과 같음
정수부: 123
소수부: 45
따라서 123.45를 고정소수점으로 표현하면 123과 45로 표현됨
3. 이미지, 사운드 등은 컴퓨터에서 어떻게 표현되는 것일까?
이미지 : 픽셀로 구성됨
각 픽셀은 색상 정보를 포함하고 있으며, 일반적으로 빨강, 초록, 파랑(RGB) 세 가지 색상 채널로 구성됨
컴퓨터에서는 이 색상 정보를 숫자로 표현하고 저장
일반적으로 8비트로 각 색상 채널을 표현하며, 이를 조합하여 하나의 픽셀을 나타냄
더 나은 품질의 이미지를 위해 더 많은 비트를 사용할 수도 있음
사운드 : 파형으로 표현됨
컴퓨터에서는 이 파형을 시간에 따른 샘플(sample)로 이산화하여 표현
이 샘플들은 일반적으로 초당 몇 천 번에서 수백만 번까지 발생할 수 있음
각 샘플은 소리의 진폭을 나타내는 숫자로 표현되며, 일반적으로 16비트 또는 24비트 정수로 저장
이러한 숫자 값들을 시간에 따라 순서대로 저장하여 사운드를 나타냄
추가적인 정보로는 샘플링 속도 및 오디오 채널 수도 저장됩니다.
02-1 컴퓨터 소프트웨어와 운영체제 공개용
1.앞에서 예로 든 OS 시스템들을 이 기준에 따라 분류해본다면?
- 운용 대상 시스템이 어떤 종류의 것인가? (범용 / 임베디드)
- 여러 사용자들에 대해 서비스를 제공할 것인가? (단일 사용자 / 다중 사용자)
- 여러 개의 중앙처리장치로 이루어진 시스템을 지원할 것인가? (단일 프로세서 / 다중 프로세서)
- 어떤 방식으로 복수의 작업을 행할 것인가? (단순 일괄 처리 / 다중 프로그래밍)
- 윈도우 : 주로 범용 운영 체제로 사용되며, 다중 사용자를 지원하고, 단일 또는 다중 프로세서 시스템을 지원하며, 다중 프로그래밍을 통해 복수의 작업을 처리
- 리눅스 : 주로 범용 운영 체제로 사용되며, 다중 사용자를 지원하고, 다중 프로세서 시스템을 지원하며, 다중 프로그래밍을 통해 복수의 작업을 처리합니다.
- 맥OS : 주로 범용 운영 체제로 사용되며, 다중 사용자를 지원하고, 단일 프로세서 시스템을 주로 지원하며, 다중 프로그래밍을 통해 복수의 작업을 처리합니다.
- Unix : 주로 범용 운영 체제로 사용되며, 다중 사용자를 지원하고, 다양한 하드웨어 아키텍처를 지원하며, 다중 프로그래밍을 통해 복수의 작업을 처리합니다.
- iOS : 주로 모바일 기기에 사용되는 운영 체제로, 단일 사용자를 지원하고, 단일 프로세서 시스템을 주로 지원하며, 다중 프로그래밍(멀티태스킹 및 멀티스레딩)을 통해 복수의 작업을 처리합니다.
- Android : 모바일 기기에 사용되는 범용 운영 체제로, 단일 사용자를 지원하고, 다중 프로세서 시스템을 지원하며, 다중 프로그래밍(멀티태스킹 및 멀티스레딩)을 통해 복수의 작업을 처리합니다.
2. 아래 프로그램 번역/실행 모델은 어느 언어에서 주로 이용할까? (컴파일러 / 인터프리터)
컴파일러 | 인터프리터 | |
출력 | 목적코드를 출력 (소스코드를 기계어로 변환하고 실행) |
출력물을 즉시 실행 (소스코드를 직접 실행) |
장점 | - 번역을 실행 이전에 함으로 코드를 최적화 -코드 실행의 효율 높음 |
- 다른 컴퓨터로 옮겨 실행하는 것이 편리 - 대화형 개발 가능 |
사용되는 언어 | C 및 C++, Java 등 | Python, Javascript, BASIC 등 |
02-2 컴퓨터 네트워크와 인터넷
1.아래 주소는 어느 클래스에 속하고, 어디의 주소일까?
216.58.197.100
IP 주소는?
- 인터넷 프로토콜(IP) 주소
- 인터넷에서 컴퓨터나 기기를 식별하는 데 사용
주어진 IP 주소인 216.58.197.100은 구글의 IP 주소입니다.
이 주소의 첫자리는 216이고 이는 클래스 C의 첫자리범위 안에 들어가므로 클래스 C에 속함
2.프로토콜이란 무엇이며 왜 필요한가?
프로토콜이란?
- 서로 다른 컴퓨터 사이에 데이터를 주고 받기 위한 약속
- 서로 다른 컴퓨터들은 이용하는 하드웨어, 데이터의 표현이 다를 수 있음 --> 표준 프로토콜을 정하고, 서로 대화할 때 이 규약을 따를 필요가 있음
- 네트워크 통신에서 중요하며, 효율적이고 안전한 통신을 위해 필수적 역할
04-1 가상화와 클라우드 컴퓨팅
1. 하이퍼바이저 Type1 과 Type2의 차이점은?
하이퍼바이저란?
- 1형 하이퍼바이저와 2형 하이퍼바이저는 단일 물리적 시스템에서 하나 이상의 가상 머신을 실행하는 데 사용하는 소프트웨어
(가상 머신은 물리적 머신의 디지털 사본 , 사용자가 기본 하드웨어와 완전히 독립적으로 경험하는 격리된 컴퓨팅 환경)
- 하이퍼바이저는 이를 가능하게 하는 소프트웨어로 물리적 리소스를 관리하고 가상 머신(VM)에 할당하며 백그라운드에서 기본 하드웨어와 통신
1형 하이퍼바이저 | 2형 하이퍼바이저 |
가상기계에서 게스트 OS가 실행 가능 | |
베어 메탈 하이퍼바이저 | 호스트형 or 내장형 하이퍼바이저 |
- 호스트의 하드웨어 위에서 직접 하이퍼바이저가 실행 | - Host OS 위에서 하이퍼바이저가 실행하여 가상기계 추상화 제공 - 호스트의 하드웨어 위에는 host OS가 실행 |
4-2 리눅스 운영체제
-실습 :
1) 새로 추가한 사용자로 로그인하고,
2) 터미널을 하나 실행하여 새로 추가한 사용자에게 sudo 권한을 부여
3) sudo 권한 부여를 확인하고 리스트(list)를 확인
출처 :
01-2 1) 과학기술정보통신부 네이버 블로그 '한글은 어떻게 전산화되었을까? 아스키코드와 유니코드'
https://blog.naver.com/with_msip/222009981690
04-1 1) https://aws.amazon.com/ko/compare/the-difference-between-type-1-and-type-2-hypervisors/