[Python] 1강 - 컴퓨터의 이해

2025. 4. 9. 17:32·⚡Python

1. 데이터와 정보

(1) 데이터의 개념

- 어떤 현상이나 사실에 대한 설명 또는 설명의 집합을 의미한다.

 

(2) 데이터의 정의

[1] 데이터 (data)

- 관찰이나 실험, 조사로 얻은 사실

- 이론을 세우는데 기초가 되는 사실 또는 바탕이 되는 자료

정리 : 관찰이나 측정을 통해 얻은 수치, 문자 형태의 표현할 수 있는 질적또는 양적의 값을 의미한다.

 

(3) 정보의 개념

- 문제 또는 질문을 해결하기 위해 사용할 수 있는 데이터와 데이터의 집합을 의미한다.

 

(4) 정보의 정의

[1] 정보 (information)

- 어떤 데이터나 소식을 통하여 얻은 지식이나 상태의 총량

- 관찰이나 측정을 통하여 수집한 자료를 문제 해결에 도움이 될 수 있도록 정리한 지식

정리 : 관찰과 측정을 통해 얻은 데이터를 처리(정렬, 합산, 군집화 등)하여 실제 문제 해결에 도움이 되는 데이터 또는 결과물을 의미한다.

 

(5) 정보 처리 과정

- 데이터는 현상에 대한 관찰과 측정으로 생성

- 데이터는 기록된 사실이지만, 직접적으로 문제를 해결하는데 도움이 되지 않음.

- 처리와 가공을 통해 정보로 변환을 하는데 이러한 처리와 가공이 "정보 처리 과정" 이다.

 

(6) 처리와 가공

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


2. 컴퓨터의 개념

(1) 컴퓨터의 정의

- 데이터의 증가함에 따라 많은 데이터를 처리해 정보로 만들기에는 어려움이 있어 "컴퓨터"가 만들어졌다.

- 컴퓨터는 정의된 방법에 따라 입력된 데이터를 자동으로 처리하여 정보를 생산하는 기계를 의미한다.

- 컴퓨터가 데이터를 처리해 정보로 만들어주는 기계

 

(2) 데이터의 기본 단위

- 컴퓨터는 있지만 처리를 위해선 컴퓨터에서 데이터를 표현을 해야하기 떄문에 만들어진것이 데이터의 단위이다.

[1] 비트(bit, binary digit) / 이진수

- 이진수를 활용해 두 가지 상태로 데이터를 표현한 가장 작은 단위이다. ( 0은 off / 1은 on )

- bit 하나당 하나의 on 또는 off가 될 수 있는 공간이라고 생각하면 된다. 즉, 한개당 2개의 상태를 가진다. 

- 1 bit = on / off 총 2개의 표현이 가능함

- 2 bit = on : on / off : off / on : off / off : on 총 4개의 표현이 가능 -> 결론은 2² 을 의미함.

- 3 bit = 총 8개의 표현이 가능 -> 결론 2³ 의미함.

- 정리하면 비트가 늘어날수록 표현 할 수 있는 범위는 2ⁿ 만큼 늘어난다. (비트가 제곱이 된다.)

[2] 바이트(byte)

- 하나의 바이트는 총 8개의 비트를 가지고 있다.

- 예전 컴퓨터 구조에서 문자 하나를 저장하거나 처리하려면 8비트가 딱 적당했었다.

- 그래서 8비트를 1byte라는 단위로 표준을 정의했음. ( 결론은 제일 많이 쓰이기 때문에 만들어진 단위 )

- 8 bit = 2⁸ 이기 때문에 총 256가지 까지의 상태 표현이 가능하다.

- 해당 이진수는 각각의 고유한 값을 가지게 되므로, 원하는 숫자를 이진수로 표현이 가능하다.

 

(3) 컴퓨터와 2진법

[1] 이진법을 사용하는 이유

- 트랜지스터의 상태가 이진법을 사용하기에 매우 적합한 상태라 이진법을 사용하게 됨.

- 트랜지스터는 2가지의 상태를 가지고 있음 ( 전류 흐르는 상태 / 흐르지 않는 상태 )

- 트랜지스터에 전류가 흐르는 상태를 1 전류가 흐르지 않는 상태를 0으로 표현함.

- 트랜지스터에는 이미터, 베이스, 콜렉터 총 3가지가 있음.

- 이미터에는 전류가 항상 흐로고 있고, 베이스에 특정 전압을 가하면 콜렉터에 전류가 흐름

- 이 과정에서 베이스에 전압을 가하기 전엔 0 , 가한 후에는 1이 되는 원리이다.

- 결국은 트랜지스터 1개를 1bit로 볼 수 있다.

 

(4) 아날로그와 디지털

- 컴퓨터가 등장하며, "아날로그"와 "디지털"이라는 단어가 나와 구분을 하기 시작함.

[1] 아날로그

- 사물이나 개념을 연속적인 물리량 값으로 표현

- 즉, 연속적인 모든 값들을 표현할 수 있음.

[2] 디지털

- 사물이나 개념을 이산적인 값 즉, 모든 것을 숫자로 표현을 하게 됨.

- 연속적으로 모든 값을 표현할 수 없음. 즉, 중간에 일어나는 과정을 표현할 수 없으므로 이산적이다.

* 예시 : 가장 큰 예시로는 "아날로그 시계" 와 "디지털 시계" 가 있다.

[3] 정리

- 디지털 데이터를 사용하는 컴퓨터는 현실세계의 물리량을 모두 표현이 불가능하며, 근사하게만 표현이 가능함.

 

(5) 숫자 데이터의 표현

- 현실 세계에선 일반적으로 10진수, 12진수 등 여러 진수를 사용함.

- 반면, 컴퓨터는 무조건 2진수만 사용이 가능하다.

- 즉, 현실 세계의 10진수나 12진수를 2진수로 변환을 해야지만 컴퓨터로 표현이 가능하다는 말이다.

- 진법 변환 과정을 통해 현실 세계의 숫자를 이진수로 변환한 뒤 컴퓨터가 이해하게 만드는 과정을 거친다.

 

(6) 문자 데이터의 표현

- 현실 세계의 문자의 종류는 매우 다양하다. ( 언어의 종류도 엄청 다양하고 많음 )

- 현실 세계의 문자를 컴퓨터의 이진수로 변환 즉, 표현하기 위한 방법으로는 인코딩 체계를 이용한다.

- "인코딩 체계"란 문자를 숫자로 바꾸고, 그 숫자를 이진수로 표현하는 방법이다.

[1] ASCII 코드표

- 가장 처음에 만들어진 인코딩 체계이다.

- American Standard Code for Information Interchange의 약자로 미국 정보 교환 표준 부호를 의미한다.

- 쉽게 말해, 컴퓨터가 문자나 기호를 숫자로 표현할 수 있도록 만든 표준 코드 체계이다.

- 해당 숫자가 문자인지 숫자인지 구별을 하기 위해 구별 정보를 별도 공간 속에 저장을 하는 방식을 이용함.

* 프로그래밍을 하다보면 데이터 타입을 사용하는데, 그러한 데이터 타입이 문자와 숫자 등 이런것들을 구분하기 위함임.


3. 컴퓨터의 프로그램

(1) 프로그램의 이해

- 컴퓨터는 정보를 처리하기 위해 방법과 과정을 자의적으로 결정을 할 수 없다. 즉, 자의적 결정이 불가능하다.

- 컴퓨터가 언제, 어디에 저장되어있는 데이터를 처리해서 그 결과를 어디에 저장시키거나 보여줄지를 정의해야함.

- 즉, 처리 방법과 과정이 정의된 내용을 프로그램이라고 한다.

 

- 프로그램은 단순히 알고리즘을 구현한 결과물이라고 볼 수도 있다.

 

(2) 알고리즘

- 문제를 풀기 위한 단계별 절차를 체계적 명령의 형태로 기술한 것

- 쉽게말해, 공통점과 규칙을 찾아 문제를 해결하기 위한 일련의 절차나 방법을 알고리즘이라고 한다.

- 유사한 모든 문제를 풀기 위한 틀을 만드는 것이 알고리즘 일 수 있다.

- 이러한 알고리즘을 구현한 것이 프로그램이다.

 

(3) 프로그래밍 언어

- 사람과 컴퓨터 사이의 의사소통 도구

- 사람이 이해할 수 있는 언어를 이용해 프로그램을 작성한 뒤 이진수로 변환하여 컴퓨터가 실행을 시킴.

[1] 프로그래밍 언어의 분류

- 프로그래밍언어는 점점 사람이 읽기 쉽게 진화를 하고 있음.

- 1세대(저수준 언어) : 기계어 -> 0과 1을 그대로 써서 프로그램을 만듦(너무 헷갈리고 복잡함)

- 2세대(저수준 언어) : 어셈블리어 -> 명령어 영어로 대체해 사용을 함.
- 3세대(고소준 언어) : Python / C / Java / Rust -> 자연어와 유사한 언어

- 4세대(고소준 언어) : Visual Basic -> 자동화 마우스 몇번의 클릭으로 프로그램을 만듦(효율성은 떨어짐)

 

(4) 프로그램의 실행

- 3세대 / 4세대 고수준 프로그래밍 언어로 만들어진 프로그램은 컴퓨터 알아볼 수 없음.

- 즉, 알아보게 하기 위해서는 고수준 언어를 컴퓨터 기계어로 변환을 시켜줘야함.

- 이때 필요한게, 컴파일러 / 인터프리터 이다. ( 일종의 번역기라고 생각하면 됨 )

'⚡Python' 카테고리의 다른 글

[Python] 5강 - 순차 구조 및 제어 구조  (0) 2025.04.15
[Python] 4강 - 파이썬 시작하기  (0) 2025.04.14
[Python] 개인 컴퓨터에서 파이썬 설치 및 VS Code로 실행하기  (0) 2025.04.11
[Python] 3강 - 파이썬의 이해  (1) 2025.04.11
[Python] 2강 - 컴퓨터의 구성  (0) 2025.04.09
'⚡Python' 카테고리의 다른 글
  • [Python] 4강 - 파이썬 시작하기
  • [Python] 개인 컴퓨터에서 파이썬 설치 및 VS Code로 실행하기
  • [Python] 3강 - 파이썬의 이해
  • [Python] 2강 - 컴퓨터의 구성
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • 전체
    오늘
    어제
    • 전체보기 (141) N
      • 🎓방송통신대학교 (25) N
        • 🖥️컴퓨터과학과 (1)
        • 🌍유비쿼터스 컴퓨팅 (10) N
        • ⚙️컴퓨터의 이해 (11)
        • 🏛️세계의정치와경제 (3)
      • 📚Computer Science (0)
      • 🛠️Backend (2)
      • ☕Java (1) N
        • 📝Java Programming (9)
        • 🧩Java Design Pattern (1)
      • 🌳Spring (9)
        • 🌱Spring Framework (6)
        • 🌱Spring Security (1)
      • ⚡Python (13)
      • 🛢️Database (0)
      • 🌿GitHub (1)
      • 🌐 Network (7)
        • 📜HTTP (7)
      • 🚀DevOps (1)
      • Algorithm Problem Solving (2)
      • Data Structure (1)
      • JavaScript (1)
      • ⛺스파르타코딩클럽 (65)
      • 잡담 (1)
      • 정리가 필요한 글 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    함수
    유비쿼터스 컴퓨팅
    방송통신대학교
    유비쿼터스
    컴파일러
    클래스
    컴퓨터의 이해
    방통대
    Python
    파이썬
    spring
    세계화
    Java
    유비쿼터스 컴퓨팅개론
    클라우드
    자바
    Spring Framework
    방송대
    스프링
    메모리
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
junbin2
[Python] 1강 - 컴퓨터의 이해
상단으로

티스토리툴바