일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 99클럽
- 코드잇
- redis
- 파이썬프로그래밍기초
- 파이썬
- 데이터베이스시스템
- 엘리스sw트랙
- node.js
- aws
- SQL
- 꿀단집
- MySQL
- 유노코딩
- 방송대
- 항해99
- Python
- HTML
- CSS
- Git
- presignedurl
- JavaScript
- TiL
- 프로그래머스
- 코딩테스트
- 중간이들
- nestjs
- Cookie
- 방송대컴퓨터과학과
- 개발자취업
- 코딩테스트준비
- Today
- Total
배꼽파지 않도록 잘 개발해요
방송대 파이썬 프로그래밍 기초 - 1강. 컴퓨터의 이해 본문
1. 데이터와 정보
데이터의 정의와 개념
• 데이터 (data)
- 어떤 현상이나 사실에 대한 설명 또는 설명의 집합
- 관찰이나 측정을 통해 얻은 수치, 문자 형태의 표현할 수 있는 질적(quality) 또는 양적(quantity) 값
• 질적 데이터 (Qualitative, Categorical)
- 설명적이고 주관적인 특성을 나타내는 데이터
- 범주로 나누어지며, 보통 숫자나 통계로 측정하기 어려운 현상이나 개념을 포함함.
- 주로 텍스트, 이미지, 음성 등의 비정량적인 형태로 표현됨.
ex. 성별, 고객만족도 조사에서 개인적인 경험 등
• 양적 데이터 (Quantitative, Numeric)
- 정량적이고 객관적인 특성을 나타내는 데이터
- 수학적 연산(사칙연산 등)이 가능한 수치 값으로, 수치나 통계로 쉽게 측정될 수 있음.
ex. 고객만족도 조사에서 1부터 5까지 점수로 평가한 리커트 척도, 나이, BMI(체질량지수) 등
ex. 타오르는 불
붉다, 밝다, 뜨겁다 ---> 질적 데이터
3500도(연속) ---> 양적 데이터
정보의 정의와 개념
• 정보 (information)
- 문제 또는 질문을 해결하기 위해 사용할 수 있는 데이터와 데이터의 집합
- 관찰과 측정을 통해 얻은 데이터를 처리(정렬, 합산, 군집화 등)하여 실제 문제 해결에 도움이 되는 데이터 또는 결과물
ex.
파란색 불
- 저 파란색은 무엇일까?
- 붉고 뜨거운 것과는 무엇이 다를까?
정보처리 과정
• 정보처리 과정
현상 ---(관찰,측정)---> 데이터 ---(처리,가공)---> 정보
• 데이터는 현상에 대한 관찰과 측정으로 생성
• 데이터는 기록된 사실이지만, 직접적으로 문제를 해결하는데 도움이 되지 않음.
• 데이터는 처리와 가공을 통해 정보로 변환됨.
관찰과 측정
• 관찰 : 사물 또는 현상을 파악하는 행위
• 측정 : 절대적인 기준에 맞춰 현상을 수치로 나타내는 과정
출처 : http://www.ktword.co.kr/test/view/view.php?m_temp1=5123
• 데이터의 분류 : 질적(범주형)데이터 / 양적(수치형)데이터 [수업X]
- 질적(범주형) : 명목형 / 순서형
- 양적(수치형) :
구간형 / 비율형 (수치 부여 유형에 따른 구분 )
연속형 / 이산형 (셀 수 있음 여부에 따라 구분)
• 질적(Qualitative), 범주형(Catergorical) 데이터
- 명목형(Nominal) : 어떤 속성을 분류하기 위해 수치 부여
ex. 성별(남, 여), 혈액형(A, B, AB, O), 지역(서울, 대전, 부산), 인종(한국인, 중국인, 일본인 등), 전공(컴퓨터과학, 간호학 등)
- 서열형(Ordinal) : 상대적인 크기 비교
ex. 만족도(매우 만족, 불만족, 보통, 만족, 매우 만족), 직급(사원, 대리, 과장, 부장) 등
• 양적(Quantitative), 수치형(Numerical) 데이터
· 수치 부여 유형에 따른 구분
- 구간형, 등간형(Interval) : 간격이 균등한 수치 부여
ex. 온도(섭씨, 화씨), 시간(시, 분, 초), 날짜(월, 일) 등
- 비율형(Ratio) : 절대 영점이 있는 균등 간격이 있는 자료, 비율 표현 및 비교가 자연스러움.
ex. 길이(cm, inch), 무게(kg), 빈도(횟수), 속도(km/h), 온도(절대온도) 등
· 셀 수 있음 여부에 따른 구분
- 이산적, 계수치 (Discrete) : 셀 수 있는 정수 값을 가지는 데이터
ex. 도시의 인구 수, 사과의 개수 등
- 연속적, 계량치 (Continuous) : 측정 단위가 연속적인 값을 가지는 데이터
ex. 온도, 시간, 길이, 무게, 속도, 키, 수익 등
처리와 가공
• 처리와 가공
수집된 데이터의 집합을 정렬, 군집화, 계산 또는 표현방법 변경 등의 데이터를 변환하여 정보를 생산하는 과정
ex. 불의 온도에 따라 나타내는 색상을 나열하여 '빛 온도 스펙트럼(℃)'을 제작함
→ 궁금증을 해결할 수 있는 데이터가 됨.
2. 컴퓨터의 개념
컴퓨터의 정의
• 컴퓨터
- 정의된 방법에 따라 입력된 데이터를 자동으로 처리하여 정보를 생산하는 기계
- 데이터 처리 과정을 순서화하여 전체 과정을 자동화할 수 있는 장치
데이터의 기본 단위
• 비트(bit, binary digit)
- 0 또는 1의 두 가지 값 중 하나를 나타내는 이진수(binary digit)의 최소 단위
- 두 가지 상태값을 표현하는 기본 단위(비트)를 여러 개 중첩시켜 데이터를 표현 또는 처리함.
- 8bit는 0과 1의 조합으로 256개의 다른 값을 나타냄.
ex. 불이 켜져 있거나(1), 꺼져 있는 상태(0)
• 바이트(byte)
- 8비트(bit)를 모아서 이루어진 단위 (1byte=8bit)
- 1byte는 8bit의 조합으로 256개의 다른 값을 나타냄.
ex. 텍스트 문자 하나, 그림 파일에서 한 픽셀의 색상
컴퓨터와 2진법
• 컴퓨터는 트랜지스터를 통해 2진법 숫자로 데이터를 표현하여 저장 및 처리
• 트랜지스터의 구조
- 베이스(Base) : 트랜지스터의 중심 부분으로, 전기 신호가 주입되는 곳
- 컬렉터(Collector) : 트랜지스터에서 전기 신호가 나오는 부분으로, 전기 신호를 출력함.
- 에미터(Emitter) : 트랜지스터에서 전기 신호가 흐르는 부분으로, 전기 신호의 흐름을 제어함.
• 트랜지스터의 작동
- 베이스에 특정 전압 이상의 전류를 흘려주면, 컬렉터와 에미터 사이의 전류가 증폭됨.
- 트랜지스터에 전류가 흘러간 상태를 1, 차단하여 전류가 흘러 나오지 않는 상태를 0이라고 볼 수 있음.
• 트랜지스터를 컴퓨터에 사용하는 이유
- 우리가 사용하는 일반적인 구형 CPU에는 트랜지스터가 50억개, 애플의 M1칩에는 160억개의 트랜지스터가 들어가 있다고 함.
- 두 가지 상태의 트랜지스터는 축적이 가능하나, 세 네 가지 상태를 갖는 트랜지스터는 축소시켜서 가볍게 들고 다닐 수 있는 휴대용 컴퓨터를 만들기 어려움.
- 트랜지스터는 컴퓨터를 가장 소형화시키기 좋은 상태로, 이진법이라고 하는 숫자의 형태로만 모든 데이터를 처리함.
아날로그와 디지털
• 아날로그(analog)
- 사물이나 개념을 연속적인 물리량 값으로 표현
- 질적 데이터 또는 양적 데이터로 표현
• 디지털(digital)
- 사물이나 개념을 이산적인 값으로 근사하여 표현
- 0과 1로 이루어진 비트로 표현됨.
- 양적 데이터로 표현
- 중간과정, 중간값을 표현하기 어려움.
→ 컴퓨터의 디지털 데이터로는 현실의 아날로그 데이터를 그대로 반영할 수 없고 근사하여 표현함.
숫자 데이터와 문자데이터의 표현
• 진법 변환 (Number conversion)
- 숫자를 한 진법에서 다른 진법으로 변환하는 것
- 컴퓨터가 숫자 데이터를 처리하기 위해 진법 변환이 필요함.
ex. 10진수, 14진수 ---> 2진법
• 문자 인코딩(character encoding), 텍스트 인코딩(text encoding)
- 사용자가 입력한 한글, 알파벳 등 문자를 컴퓨터가 이용할 수 있는 신호로 만드는 것.
- 각각의 비트열이 어떤 문자에 대응되는지 매칭해놓은 표
- 문자데이터는 숫자와 같이 진법 변환이 불가능하여 고안된 방법임.
- 가장 처음에 만들어진 인코딩 체계 : ASCII(아스키) 코드표
ASCII 코드표
• ASCII 코드표
- 미국정보교환표준부호(American Standard Code for Information)
- 7비트 인코딩으로, 0부터 127까지 총 128개의 문자에 대한 아스키 코드 값을 표시하고 있음.
- 0000000부터 1111111까지의 7자리 수가 나오며, 이 수를 10진수로 변환한 것이 각 문자에 대응하는 아스키 코드 값
- 52개의 영문 알파벳 대소문자와, 10개의 숫자, 32개의 특수 문자, 하나의 공백 문자로 이루어짐.
• 패리티 비트(parit bit)
- 정보 전달 과정에서의 오류 검출을 위해 무결성 검사를 위해 추가된 비트
- 전송할 데이터의 비트 중에서 1의 개수를 짝수 또는 홀수로 맞추는 방식으로 패리티 비트를 추가함.
ex. 짝수 패리티 방식
- 데이터 비트 중에서 1의 개수가 짝수가 되도록 패리티 비트를 추가함.
- 전송된 데이터의 1의 개수가 홀수가 되면, 전송된 데이터에 오류가 있음을 나타내게 됨.
• 자료형(data type)
- 저장되는 데이터의 종류에 따른 분류
- 컴퓨터는 입력받은 데이터가 어떤 유형인지 구별해야하므로 숫자, 문자의 구별 정보를 별도 공간 속에 저장함.
3. 컴퓨터와 프로그램
프로그램의 이해
• 프로그램 (program)
- 컴퓨터는 정보를 처리하기 위한 방법과 과정을 자의적으로 결정 불가능하여 처리 방법과 과정이 정의된 프로그램을 사용함.
- 컴퓨터가 어떠한 작업을 자동으로 처리할 수 있도록 처리 방법 및 순서를 컴퓨터가 이해할 수 있는 언어로 기술한 것
- 유사한 유형의 여러 문제를 추상화시킨 알고리즘(algorithm)을 구현한 결과물
알고리즘
• 알고리즘(algorithm)
- 문제를 풀기 위한 단계별 절차를 체계적 명령의 형태로 기술한 것
- 주어진 명령어를 처리하는 컴퓨터에게 문제를 해결하도록 만드는 정형화된 절차
- 알고리즘에는 입력과 출력이 있어야 하며, 명확성과 유한성, 효율성이 보장되어야 함.
위 알고리즘은 1부터 n(사용자가 입력한 수)의 합을 나타냄을 알 수 있음.
• 정렬 알고리즘
- 모든 카드를 오름차순으로 정렬하는 문제에서 선택정렬 알고리즘을 활용하여 문제를 해결할 수 있음.
- 선택정렬 알고리즘(selection sort) : 리스트에서 최소값을 찾아 맨 앞으로 이동시키고, 그 다음 최소값을 찾아 두 번째 자리로 이동시키는 과정을 반복하여 리스트 전체를 정렬하는 알고리즘
프로그래밍 언어
• 프로그래밍 언어
- 사람과 컴퓨터 사이의 의사소통 도구
- 프로그래머는 컴퓨터가 이해할 수 있는 언어를 사용하여 프로그램을 작성함.
• 프로그래밍 언어의 분류
저급언어 (기계와 유사) |
1세대 | - 기계어, 데이터를 0과 1로 표현함. - 컴퓨터가 곧바로 실행하기 쉽지만 사람이 사용하기 어려움. |
2세대 | - 어셈블리어 - 명령어, 영어 대체 (MOV, ad) |
|
고급언어 (사람과 유사) |
3세대 | - Python, C, Java, Rust - 표현의 모호성을 제거하고 자연어와 유사한 형태의 문법을 갖는 프로그래밍 언어 |
4세대 | - Visual Basic - 자동화가 되어서 빨리 만들 수 있으나, 프로그램 효율성이 현저하게 떨어짐. - 대부분 3세대 언어를 그대로 사용하고 있음. |
• 프로그램의 실행
- 고급 언어로 작성된 프로그램은 기계어 밖에 인식할 수 없는 컴퓨터에 의해 실행 불가능
- 프로그램 언어를 이해하고 해석하는 방법으로 컴파일러(compiler) 또는 인터프리터(interpreter)를 사용
컴파일러 (compiler) |
- 프로그램 전체를 목적 프로그램으로 번역한 후 실행 가능한 실행 프로그램을 생성함. - 목적 프로그램을 생성함. - 객체 코드 생성 때문에 많은 메모리를 필요로 함. - 실행 속도는 빠르고, 번역 속도는 느림. - C언어, Java 등 |
인터프리터 (interpreter) |
- 소스 코드를 한 줄씩 읽어들여 즉시 실행함. - 실행 시간이 길어질 수 있으나, 개발자가 쉽게 디버깅할 수 있음. - 실행 속도는 느리고, 번역 속도는 빠름.- Python, BASIC, SNOBOL, LISP, APL 등 |
참고문헌
http://www.ktword.co.kr/test/view/view.php?m_temp1=5123
https://ko.wikipedia.org/wiki/%ED%8A%B8%EB%9E%9C%EC%A7%80%EC%8A%A4%ED%84%B0
https://ko.wikipedia.org/wiki/ASCII
'방송대 컴퓨터과학과 > 파이썬 프로그래밍 기초' 카테고리의 다른 글
방송대 파이썬 프로그래밍 기초 - 6강. 선택구조 (0) | 2023.04.10 |
---|---|
방송대 파이썬 프로그래밍 기초 - 5강. 제어구조 (0) | 2023.04.08 |
방송대 파이썬 프로그래밍 기초 - 4강. 파이썬 시작하기 (0) | 2023.04.08 |
방송대 파이썬 프로그래밍 기초 - 3강. 파이썬의 이해 (0) | 2023.04.07 |
방송대 파이썬 프로그래밍 기초 - 2강. 컴퓨터의 구성 (0) | 2023.04.06 |