본문 바로가기

Python/Python Programming

Part 03 Ch01 파이썬 프로그래밍- 01. 프로그래밍이란?

프로그래밍(Programming)


프로그래밍: 컴퓨터에게 일련의 명령을 수행하는 프로그램을 만드는 과정.

  • 프로그래밍(Programming)은 간단하게 컴퓨터에게 일을 시키는 방법입니다.
  • 컴퓨터에게 일을 시키기 위해서는 소통 수단이 필요합니다.
  • 그 소통수단은 프로그래밍 언어(Programming Language) 라고 합니다.
  • 프로그래밍 언어를 통해서 일을 어떻게 하면 되는지 컴퓨터에게 알려줘야 합니다.
  • 이 과정 전반을 프로그래밍 또는 코딩(Coding)이라고 합니다.

 

프로그래밍의 구성요소

1. 코드(code)- 특정 프로그래밍 언어로 기술되는 텍스트

def say_welcome(name):
	print(f"Hello World! {name}!")
say_welcome("Yongdam")
  • 언어이기 때문에, 문법(Sytax)와 의미론(Semantic)을 가집니다.
  • 컴퓨터는 코드를 완전하게 이해합니다. 대신에, 사람이 시키는 그대로를 이해합니다.
  • 즉, 코드 그 자체를 그대로 믿기 때문에 문법이 틀린 코드를 작성하면, 절대로 실행되지 않습니다!
  • 코드를 잘 쓰기 위해서는(= 컴퓨터에게 일을 잘 시키기 위해서는) 컴퓨터를 잘 이해해야 합니다.

 

2. 컴퓨터(Computer) - 코드를 수행하는 기계.

- 컴퓨터는 다음과 같은 구조로 되어 있습니다.

Computer Architecture(Von Neumann Architecture) : 폰 노이만이 제안한 현대 컴퓨터 구조.

Source : https://geteducationskills.com/computer-architecture/

  • 우리가 이해해야 하는 중요한 부분은 다음 3가지입니다.

1. Central Processing Unit(CPU)

컴퓨터에서 일어나는 모든 연산을 담당합니다.

2. Memory (주로 DRAM)

프로그래밍을 할 때 사용하는 모든 데이터, 코드가 올라와 있는 공간.

3. Input/Output Devices

storage (HDD, SSD) 

Monitor, Mouse, Keyboard,.......

 

  • 우리가 작성한 프로그램은 모두 메모리 안에 상주하고 있습니다!
  • 프로그램 입장에서 모든 처리는 메모리를 기준으로 이루어집니다.
  • 저장장치(storage)에 있는 데이터를 불러오는 Load,
  • 메모리에 있는 내용을 저장장치에 저장하는 Save 모두 I/O에 해당합니다.
  • 메모리에 잇는 프로그램이 명령을 CPU로 보내는 fetch, CPU에서 해당 내용을 연산하고 처리하는 decode, execute, 다시 해당 내용을 메모리로 보내는 fetch까지 instruction cycle이라고 부릅니다.
  • instruction cycle을 계속 돌면서 프로그램이 컴퓨터에서 실행이 됩니다.

요약


  1. 프로그래밍은 컴퓨터에게 일을 시키는 과정입니다.
  2. 프로그래밍의 구성 요소에는 코드 / 컴퓨터가 있습니다.
  3. 코드는 특정 프로그래밍 언어의 문법/ 의미론을 따릅니다.
  4. 컴퓨터는 폰 노이만 아키텍처로 구성되어 있습니다. (CPU, Memory, I/O Devices)
  5. 데이터와 프로그램은 메모리에 상주하며, 모든 연산은 CPU가 담당합니다. 
  6. 프로그램에서 수행한 결과를 저장하고 싶을 때는 저장 장치에 Save를 합니다.
  7. Instrution cycle을 통해서 CPU는 지속적을 주어진 일을 처리합니다.