Home [파이썬 프로그래밍 기초] 1강 - 컴퓨터의 이해
Post
Cancel

[파이썬 프로그래밍 기초] 1강 - 컴퓨터의 이해

💡해당 게시글은 방송통신대학교 정재화 교수님의 '파이썬 프로그래밍 기초' 강의를 개인 공부 목적으로 메모하였습니다.



학습 목표


  • 데이터와 정보의 차이점 설명
  • 데이터의 표현 방식에 대해 설명
  • 프로그램과 알고리즘의 차이점에 대해 설명



주요 용어


  • 데이터
    • 어떤 현상이나 사실에 대한 설명 또는 설명의 집합
  • 정보
    • 문제 또는 질문을 해결하기 위해 사용할 수 있는 데이터와 데이터의 집합
  • 프로그램
    • 컴퓨터가 어떠한 작업을 자동으로 처리할 수 있도록 처리 방법 및 순서를 컴퓨터가 이해할 수 있는 언어 형태로 기술한 것
  • 알고리즘
    • 문제를 풀기 위한 단계별 절차를 체계적 명령의 형태로 기술한 것



강의록


데이터와 정보

데이터의 개념

  • 어떤 현상이나 사실에 대한 설명 또는 설명의 집합
    • ex) 불
      • 붉다, 밝다, 뜨겁다 → 질적 데이터
      • 3500도 → 양적 데이터

데이터(data)의 정의

  • 관찰이나 실험, 조사로 얻은 사실
  • 이론을 세우는 데 기초가 되는 사실 또는 바탕이 되는 자료
  • 관찰이나 측정을 통해 얻은 수치, 문자 형태의 질적(quality) 또는 양적(quantity) 값

정보의 개념

  • 문제 또는 질문을 해결하기 위해 사용할 수 있는 데이터와 데이터의 집합

정보(information)의 정의

  • 어떤 데이터나 소식을 통해 얻은 지식이나 상태의 총량
  • 관찰이나 측정을 통하여 수집한 자료를 문제 해결에 도움이 될 수 있도록 정리한 지식
  • 관찰과 측정을 통해 얻은 데이터를 처리(정렬, 합산, 군집화 등)하여 실제 문제 해결에 도움이 되는 데이터 또는 결과물

정보 처리 과정

  • 현상 — 관찰, 측정 → 데이터 — 처리, 가공 → 정보
  • 데이터는 현상에 대한 관찰과 측정으로 생성
  • 데이터는 기록된 사실이지만, 직접적으로 문제를 해결하는데 도움이 되지 않음
  • 처리가공을 통해 정보로 변환

관찰과 측정

  • 관찰
    • 사물 또는 현상을 파악하는 행위
  • 측정
    • 절대적인 기준에 맞춰 현상을 수치로 나타내는 과정

데이터의 종류

  • 연속적 데이터
    • 온도, 길이 등 끊임없이 변하는 데이터
    • ex) 불 - 3500도
  • 범주형 데이터
    • 성별, 혈액형처럼 분류할 수 있는 데이터
    • ex) 불 - A급 화염

처리와 가공

  • 수집된 데이터의 집합을 정렬, 군집화, 계산, 표현 방법 변경 등의 데이터를 변환하여 정보를 생산하는 과정

컴퓨터의 개념

컴퓨터의 정의

  • 정의된 방법에 따라 입력된 데이터를 자동으로 처리하여 정보를 생산하는 기계

데이터의 기본 단위

  • 비트(bit)
    • binary digit
    • 2개의 상태 값을 표현하는(0과 1) 가장 작은 기본 단위
    • 여러 개 중첩 시켜 데이터를 표현 또는 처리함
  • 바이트(byte)
    • 8비트로 구성된 단위

컴퓨터와 2진법

  • 컴퓨터는 트랜지스터를 통해 2진법 숫자로 데이터를 표현하여 저장 및 처리

    image.png

    • 트랜지스터는 0과 1을 이용하여 정보를 표현

아날로그와 디지털

  • 아날로그(Analog)

    image.png

    • 사물이나 개념을 연속적인 물리량 값으로 표현
      • 중간 과정을 고스란히 보여줌
    • 질적 데이터 또는 양적 데이터로 표현
  • 디지털(Digital)

    image.png

    • 사물이나 개념을 이산적인 값으로 표현
    • 양적 데이터로 표현

숫자 데이터의 표현

image.png

  • 2진수
    • 0과 1로만 표현
  • 10진수
    • 일반적인 숫자 표현 방식
  • 16진수
    • 0 ~9, A ~ F까지 사용하여 표현

문자 데이터의 표현

image.png

  • ASCII 코드

    2진법십진법문자2진법십진법문자2진법십진법문자
    010 000032SP100 000064@110 000096`
    010 000133!100 000165A110 000197a
    010 001034100 001066B110 001098b
    010 001135#100 001167C110 001199c
    010 010036$100 010068D110 0100100d
    010 010137%100 010169E110 0101101e
    010 011038&100 011070F110 0110102f
    010 011139100 011171G110 0111103g
    010 100040(100 100072H110 1000104h
    010 100141)100 100173I110 1001105i
    010 101042*100 101074J110 1010106j
    010 101143+100 101175K110 1011107k
    010 110044,100 110076L110 1100108l
    010 110145-100 110177M110 1101109m
    010 111046.100 111078N110 1110110n
    • 알파벳, 숫자, 특수 문자를 2진수로 변환
  • 유니코드

    • 다양한 언어를 지원하는 확장된 문자 표현 방식

컴퓨터와 프로그램

프로그램의 이해

  • 컴퓨터는 정보를 처리하기 위한 방법과 과정을 자의적으로 결정 불가능
  • 처리 방법과 과정이 정의된 프로그램을 사용
    • 프로그램이란 컴퓨터가 어떠한 작업을 자동으로 처리할 수 있도록 처리 방법 및 순서를 컴퓨터가 이해할 수 있는 언어 형태로 기술한 것
    • 유사한 유형의 여러 문제를 추상화 시킨 알고리즘(algorithm)을 구현한 결과물

알고리즘의 정의

  • 문제 해결을 위한 단계별 절차를 체계적 명령의 형태로 기술한 것
  • 주어진 명령어를 처리하는 컴퓨터에게 문제를 해결하도록 만드는 정형화된 절차

    image.png

  • ex) 모든 카드를 오름차순으로 정렬하는 문제 → 선택 정렬 알고리즘
    • 선택 정렬
      • 가장 작은 값을 선택하여 정렬하는 방식
    • 버블 정렬
      • 인접한 두 값을 비교하여 정렬하는 방식

프로그래밍 언어

  • 사람과 컴퓨터 간 의사소통 도구
  • 프로그래머는 컴퓨터가 이해할 수 있는 언어를 사용하여 프로그램을 작성

프로그래밍 언어의 분류

image.png

  • 저급 언어
    • 기계에 가까운 언어
    • 1세대
      • 기계어 (0과 1로 구성된 코드)
    • 2세대
      • 어셈블리어 (기계어를 간단한 영어 명령어로 대체)
  • 고급 언어
    • 사람에 가까운 언어
    • 3세대
      • 자연어와 유사한 프로그래밍 언어 (C, Java, Python 등)
    • 4세대
      • 자동화 (Visual Basic)

프로그래밍의 실행

  • 고급 언어로 작성된 프로그램은 기계어 밖에 인식할 수 없는 컴퓨터에 의해 실행 불가능
    • 고급 언어로 작성된 코드는 기계어로 변환해야 실행 가능
    • 컴파일러 또는 인터프리터 사용

      image.png

      • 컴파일러 방식
        • 전체 코드를 한 번에 번역 후 실행 (C, Java 등)
      • 인터프리터 방식
        • 한 줄씩 번역하며 실행 (Python, JavaScript 등)



연습 문제


  1. 다음과 같이 어떤 문제(라면끓이기)를 해결하기 위한 절차를 무엇이라고 하는가?

    a. 알고리즘

  2. ‘방송대 컴퓨터과학과의 파이썬 프로그래밍 기초는 전공 과목이다’ 라고 할 때, ‘전공’이라는 설명은 어떤 유형의 데이터에 속하는가?

    a. 범주적 데이터

  3. 표현의 모호성을 제거하고 자연어와 유사한 형태의 문법을 갖는 프로그래밍 언어는?

    a. 3세대 프로그래밍 언어



학습 정리


  • 데이터
    • 관찰이나 측정을 통해 얻은 수치, 문자 같은 변할 수 있는 질적 또는 양적 값
  • 정보
    • 데이터를 처리해 실제 문제 해결에 도움 될 수 있도록 정리한 결과물
    • 데이터 처리에는 정렬, 합산, 군집화 등의 작업이 동반 됨
  • 데이터와 정보
    • 데이터는 현상에서 관찰 · 측정을 통해 얻어지며, 정보는 데이터를 처리 · 가공해 추출
  • 컴퓨터
    • 입력된 데이터를 자동으로 처리하는 기계로, 데이터 처리 과정을 순서화해 전체 과정을 자동화할 수 있는 장치
  • 컴퓨터의 기능
    • 입력 기능(외부 데이터 수신)
    • 제어 기능(내부 장치 조정)
    • 저장 · 기억 기능(입력 데이터 저장)
    • 연산 기능(계산 수행)
    • 출력 기능(내부 데이터를 사용자에게 전달)
  • 디지털 컴퓨터
    • 0과 1의 신호로 동작하므로 데이터 및 명령문도 0과 1로 표현되어야 함
    • 수나 문자, 명령어도 0과 1로 표현됨
  • 프로그램
    • 컴퓨터가 작업을 자동으로 처리할 수 있도록 처리 방법 및 순서를 컴퓨터가 이해할 수 있는 언어로 기술한 것
    • 프로그램을 만드는 사람을 프로그래머라 하며, 제작 과정은 프로그래밍이라 함
  • 알고리즘
    • 문제 해결을 위한 단계별 절차를 수학적으로 기술한 것
    • 입력과 출력이 있어야 하며, 명확성 · 유한성 · 효율성이 보장되어야 함
  • 프로그램
    • 프로그래밍 언어를 이용하여 알고리즘을 구현한 결과
    • 프로그래밍 언어로 작성된 소스 코드를 컴파일러나 인터프리터를 통해 컴퓨터에서 실행 가능한 프로그램으로 생성됨

[UNIX 시스템] 1강 - 리눅스 소개

[데이터베이스 시스템] 1강 - 데이터의 이해