Supplementary Materials

프로그래밍은 개념 이해만으로 익힐 수 없으므로, 직접 코드를 작성하고 실행한다. (개념 지식 + 문제 해결 + 반복 연습 → 프로그래밍 능력)

로봇 프로세스 자동화(RPA, Robotic Process Automation)는 사람이 컴퓨터로 처리하는 단순하고 반복적인 업무를 소프트웨어 로봇(Bot)을 통해 자동화

1. Programming

컴퓨터

컴퓨터가 하는 기본적인 일은 두 가지이다.

  • 계산을 수행한다.
  • 계산 결과를 기억한다.

컴퓨터는 언어에 내장된 연산과 프로그래머가 정의한 연산을 수행하지만, 명시적으로 지시받지 않은 일은 할 수 없다.

선언적 지식과 절차적 지식

지식은 다음 두 종류로 구분할 수 있다.

  • 선언적 지식: 무엇이 참인지 나타내는 사실
  • 절차적 지식: 결과를 얻는 방법이나 순서

예를 들어 “의 제곱근이다”는 선언적 지식이다. 반면 추측값을 반복해서 개선하는 방법은 절차적 지식이다.

컴퓨터는 작성된 명령을 정확히 실행할 뿐, 작성자의 의도를 스스로 추측하지 않는다.

알고리즘

알고리즘은 다음 세 요소를 갖춘 계산 절차이다.

  1. 단순한 단계들의 순서
  2. 각 단계를 언제 실행할지 정하는 제어 흐름
  3. 반복을 언제 끝낼지 결정하는 종료 조건

제곱근을 구하는 예에서는 추측값 g를 다음과 같이 계속 갱신한다.

  • 새로운 추측값 = (g + x/g) / 2
  • x = 16일 때 3 → 4.17 → 4.0035 → 4.000002처럼 4에 가까워진다.
  • 이는 알고리즘이 “정답에 도달하는 레시피”라는 점을 보여주는 예이다.

프로그램을 실행하는 방식

프로그램 (Program)

  • 문제 해결 절차인 알고리즘을 프로그래밍 언어로 표현한 것이다.
  • 컴퓨터가 수행할 명령어(instruction)들을 포함한다.

저장 프로그램 컴퓨터는 명령어를 메모리에 저장하고 순서대로 실행한다.

기본 구조는 다음 요소로 구성된다.

  • 메모리: 명령과 데이터를 저장
  • 제어 장치: 다음 명령을 선택하고 실행을 조정
  • 산술논리장치: 계산과 논리 연산 수행
  • 입력과 출력

명령어의 기본 종류는 산술·논리 연산, 조건 검사, 데이터 이동이다.

인터프리터는 명령을 순서대로 실행하며, 조건에 따라 실행 흐름을 바꾸고 종료 조건이 충족되면 멈춘다.

프로그래밍 언어의 구성

프로그래밍 언어

  • 컴퓨터는 사람의 말을 이해하지 못하고 기계어만 이해한다.
  • 그래서 사람은 프로그래밍 언어로 작성하고, 컴파일러(또는 인터프리터)가 이를 기계어로 번역해 준다.
  • 대표 언어로 파이썬, 자바, C, BASIC 등이 있다.

프로그래밍 언어에는 세 가지 중요한 측면이 있다.

  • 기본 요소: 숫자, 문자열, 연산자 등
  • 문법: 기호를 올바른 순서로 작성하는 규칙
  • 의미: 올바르게 작성된 코드가 실제로 뜻하는 것

오류도 이에 따라 구분된다.

  • 문법 오류: 코드 형식이 잘못됨
  • 정적 의미 오류: 형식은 맞지만 연산의 조합이 유효하지 않음
  • 논리 오류: 코드는 실행되지만 프로그래머가 의도한 결과와 다름 (논리 오류는 프로그램이 중단되거나 무한히 실행되는 형태뿐 아니라, 그럴듯하지만 틀린 답을 내는 형태로도 나타날 수 있다.)

2. Python 소개

파이썬 (Python)

  • Python 프로그램은 정의와 명령문으로 구성되며 인터프리터가 이를 평가하고 실행한다.
  • 코드는 대화형 셸에 직접 입력하거나 파일로 저장해 실행할 수 있다.
  • 1991년 귀도 반 로섬(Guido van Rossum) 개발

특징

생산성

  • 문법이 간결하고 쉬워 프로그램을 빠르게 작성할 수 있다.
  • C의 여러 줄짜리 Hello World가 print("Hello World!") 한 줄이면 끝

인터프리터 언어

  • 코드를 한 줄씩 실행하고 결과를 즉시 확인할 수 있어 초보자에게 적합

라이브러리가 풍부하고 설치가 쉽다.

  • 데이터 과학(Matplotlib, Pandas)
  • 인공지능(Keras)
  • 웹 크롤링(Requests)
  • OpenCV, scikit-learn, BeautifulSoup 등

실행 모드

대화형 모드(interactive mode)

  • 콘솔에서 한 줄씩 입력·즉시 실행
  • 간단한 계산·테스트에 적합

스크립트 모드(script mode)

  • 파일(.py)로 저장 후 한 번에 전부 실행
  • 코드가 복잡할 때 필수

Python 개발 환경

아나콘다(Anaconda)

  • 인기 라이브러리(numpy, pandas, scipy, sklearn 등)가 거의 다 포함된 배포판
  • 설치가 쉽고 관리가 편하다.
  • anaconda.com에서 내려받아 설치

스파이더(Spyder)

  • 파이썬으로 만들어진 개발 도구(IDE)
  • 에디터, IPython 콘솔, 변수 탐색기, 프로파일러, 디버거, 도움말 제공

Jupyter Notebook

  • 웹 브라우저 상에서 코드 실행과 설명(문서)을 함께 작성할 수 있는 도구
  • 코드와 설명(마크다운)을 한 문서에 담는 환경

Google Colab

  • 클라우드 기반의 주피터 노트북 환경으로 별도 설치 없이 사용 가능하다.
  • 브라우저에서 실행되고 구글 드라이브에 저장·공유된다.