상위 목록: 하위 목록: 작성 날짜: 읽는 데 7 분 소요

Python이란

Python은 1991년 귀도 반 로섬(Guido van Rossum)이 발표한 범용 고급 프로그래밍 언어입니다.

프로그래밍 언어는 사람이 컴퓨터에게 일을 시키기 위해 작성하는 약속된 문법입니다. 컴퓨터의 CPU는 0과 1로 된 기계어(Machine Code)만 실행할 수 있으므로, 사람이 작성한 코드는 어떤 방식으로든 기계가 실행할 수 있는 형태로 바뀌어야 합니다.

고급(High-level) 언어라는 말은 성능이 좋다는 뜻이 아니라, 메모리 주소나 CPU 명령어 같은 기계의 세부 사항을 감추고 사람의 언어에 가깝게 표현한다는 뜻입니다. 예를 들어 Python에서는 print("Hello") 한 줄로 화면에 글자를 출력하지만, 그 아래에서는 운영체제 호출과 메모리 관리 등 수많은 작업이 자동으로 처리됩니다.

문법이 간결하고 읽기 쉬워 효율적이고 생산성이 높으며, 웹 개발, 데이터 분석, 인공지능, 자동화 스크립트 등 다양한 분야에서 사용됩니다.

Python의 주요 특징은 다음과 같습니다.

  • 인터프리터 언어 : 별도의 Compile, Link 과정을 직접 거치지 않고 소스 코드를 바로 실행합니다. 내부적으로는 소스 코드를 바이트코드(Bytecode)로 변환한 뒤 가상 머신이 실행합니다.
  • 동적 타이핑(Dynamic Typing) : 변수의 자료형을 미리 선언할 필요가 없으며, 실행 중에 값에 따라 자료형이 결정됩니다. 그래서 간편하고 유연한 작업이 가능합니다.
  • 강한 타이핑(Strong Typing) : 자료형이 자동으로 정해지지만, "1" + 1처럼 서로 다른 자료형을 암묵적으로 섞어 연산하지 않고 오류를 발생시킵니다.
  • 다중 패러다임(Multi-Paradigm) : 객체 지향 프로그래밍(OOP)을 지원하면서도 절차적 프로그래밍과 함수형 프로그래밍 방식도 함께 사용할 수 있습니다. 숫자, 문자열, 함수를 포함한 모든 값은 객체입니다.
  • 자동 메모리 관리 : 사용하지 않는 객체의 메모리는 가비지 컬렉션(Garbage Collection)으로 자동 해제됩니다.
  • 풍부한 표준 라이브러리 : 수학, 파일, 네트워크, 날짜 등 다양한 기능이 기본으로 포함되어 있으며, pip로 외부 패키지를 설치해 확장할 수 있습니다.

다양한 데이터형과 연산이 가능하며 C언어로 작성된 모듈과 결합하여 사용이 가능합니다. 일반적으로 사용하는 Python은 C언어로 구현된 공식 구현체인 CPython입니다.

동적 타이핑과 강한 타이핑은 서로 반대말처럼 들리지만 다른 축의 개념입니다. 동적은 자료형이 언제 정해지는가(실행 중)에 대한 이야기이고, 강한은 서로 다른 자료형을 얼마나 엄격하게 구분하는가에 대한 이야기입니다. Python은 자료형을 실행 중에 정하지만, 한번 정해진 자료형은 엄격하게 지킵니다. 자세한 내용은 제 3강에서 다룹니다.


인터프리터와 실행 과정

C, C++ 같은 컴파일 언어는 프로그램을 실행하기 전에 컴파일러(Compiler)가 소스 코드 전체를 기계어로 번역하여 실행 파일(.exe 등)을 만듭니다. 실행 파일은 해당 운영체제와 CPU에서 바로 실행되므로 빠르지만, 코드를 고칠 때마다 다시 컴파일해야 합니다.

Python은 인터프리터 언어로 분류합니다. 인터프리터(Interpreter)는 소스 코드를 받아 그 자리에서 실행해 주는 프로그램이며, 우리가 설치하는 python 프로그램이 바로 이 인터프리터입니다. CPython 인터프리터는 코드를 다음 순서로 실행합니다.

  1. .py 파일의 소스 코드를 읽어 문법 구조를 분석합니다. 이 단계에서 문법이 틀리면 SyntaxError가 발생하고 코드가 한 줄도 실행되지 않습니다.
  2. 분석한 구조를 바이트코드(Bytecode)로 변환합니다. 바이트코드는 특정 CPU의 기계어가 아니라 Python 가상 머신이 이해하는 중간 명령어입니다.
  3. Python 가상 머신(PVM, Python Virtual Machine)이 바이트코드 명령어를 하나씩 꺼내 실행합니다.

이 과정이 자동으로 일어나기 때문에 사용자는 python 파일명.py 한 번으로 실행할 수 있습니다. 바이트코드는 운영체제와 무관하므로 같은 .py 파일을 Windows, macOS, Linux에서 그대로 실행할 수 있습니다. 대신 실행할 때마다 가상 머신이 명령어를 해석하므로 일반적으로 컴파일 언어보다 실행 속도는 느립니다.

  • Tip : 다른 파일에서 가져온(import) 모듈의 바이트코드는 __pycache__ 폴더에 .pyc 파일로 저장되어, 다음 실행 때 소스가 바뀌지 않았다면 변환 과정을 건너뜁니다. 실제 바이트코드를 확인하는 방법은 제 2강에서 다룹니다.


버전

Python의 버전은 3.14.6처럼 주(Major).부(Minor).수정(Micro) 세 숫자로 표기합니다.

  • 주 버전(3) : 언어 전체가 크게 바뀔 때 올라갑니다. Python 2와 Python 3는 문법 호환이 되지 않으며, Python 2는 2020년 1월 1일에 지원이 종료되었습니다.
  • 부 버전(14) : 새로운 문법과 기능이 추가됩니다. 3.13에서 작성한 코드가 3.14에서는 대부분 그대로 동작하지만, 반대로 3.14에 새로 추가된 기능은 3.13에서 동작하지 않습니다.
  • 수정 버전(6) : 버그와 보안 문제만 수정하며 기능은 바뀌지 않습니다.

그래서 강좌에서 “Python 3.10 이상”이라고 표기한 기능은 부 버전이 10 이상인 인터프리터에서만 사용할 수 있습니다.

  • Tip : Python은 매년 10월경 새로운 버전(3.x)이 출시되며, 각 버전은 출시 후 약 5년간 보안 업데이트를 지원받습니다.

현재 강좌는 Python 3.14.6을 기반으로 진행하겠습니다.



Python 설치

Python Software Foundation의 공식 다운로드 페이지에서 운영체제에 맞는 Python을 무료로 내려받을 수 있습니다.

Python을 설치한다는 것은 앞에서 설명한 인터프리터 프로그램과 표준 라이브러리, 패키지 설치 도구인 pip를 컴퓨터에 복사하고, 터미널에서 실행할 수 있도록 등록하는 과정입니다. 설치가 끝나면 터미널에서 python(또는 py, python3)이라는 명령어로 인터프리터를 실행할 수 있게 됩니다.

운영체제마다 권장하는 설치 방법과 명령어 이름이 조금씩 다르므로, 사용하는 운영체제의 항목을 따라 진행합니다.


Windows

Python 3.14부터 Windows에서는 Python Install Manager(Python 설치 관리자)를 권장 설치 방식으로 안내합니다.

공식 다운로드 페이지 또는 Microsoft Store에서 Python Install Manager를 설치하면 py 명령어로 Python 버전을 설치하고 관리할 수 있습니다.

py install 3.14
py list

py install 3.14는 Python 3.14 버전을 설치하며, py list는 설치된 Python 버전 목록을 출력합니다.

py 명령어는 여러 버전의 Python 중 하나를 골라 실행하는 런처(Launcher)의 역할도 합니다. py -3.14처럼 버전을 지정하면 해당 버전으로 실행합니다.

설치 관리자를 사용하면 Python 인터프리터를 직접 찾아 실행하는 대신 py 런처가 알맞은 버전을 찾아 실행해 줍니다. 그래서 컴퓨터에 여러 버전의 Python이 설치되어 있어도 py -3.13, py -3.14처럼 원하는 버전을 골라 실행할 수 있고, 새 버전이 나오면 같은 방식으로 추가 설치할 수 있습니다.

  • Tip : 설치 관리자 대신 기존 방식의 설치 파일로 설치하는 경우, 설치 과정에서 PATH에 Python을 추가하는 옵션을 선택해야 명령 프롬프트에서 python 명령어를 바로 사용할 수 있습니다. PATH의 의미는 아래의 PATH 환경 변수에서 설명합니다.


macOS

공식 다운로드 페이지에서 macOS용 설치 파일(.pkg)을 내려받아 설치하거나, Homebrew를 사용하여 설치할 수 있습니다.

brew install python@3.14

Homebrew는 macOS용 패키지 관리자로, 프로그램의 내려받기·설치·업데이트를 명령어 한 줄로 처리합니다. python@3.14처럼 @ 뒤에 버전을 적으면 해당 버전을 설치합니다.

macOS에서는 python3 명령어로 Python을 실행합니다.

명령어 이름이 python이 아닌 python3인 이유는 과거에 python이라는 이름이 Python 2를 가리키던 시절의 관례가 남아 있기 때문입니다. 이름은 다르지만 실행되는 것은 같은 Python 3 인터프리터입니다.


Linux

대부분의 Linux 배포판에는 Python이 기본으로 설치되어 있거나 패키지 관리자로 설치할 수 있습니다.

sudo apt install python3

위 명령어는 Ubuntu, Debian 계열의 예시입니다. 배포판이 제공하는 Python 버전은 3.14가 아닐 수 있으므로 설치 후 반드시 버전을 확인합니다.

sudo는 관리자 권한으로 명령을 실행한다는 의미이고, apt는 Ubuntu와 Debian 계열의 패키지 관리자입니다. 배포판의 패키지 관리자는 배포판이 검증한 버전을 설치하므로, 최신 Python이 출시되어도 바로 제공되지 않는 경우가 많습니다.

  • Tip : Linux와 macOS에서는 운영체제가 사용하는 Python이 이미 설치되어 있는 경우가 많으므로, 시스템 Python을 직접 삭제하거나 덮어쓰지 않습니다. 운영체제의 일부 도구가 그 Python에 의존하고 있기 때문입니다.



PATH 환경 변수

터미널에 python이라고 입력했을 때, 운영체제는 python이라는 이름의 실행 파일이 어디에 있는지 찾아야 실행할 수 있습니다. 이때 사용하는 것이 PATH 환경 변수입니다.

환경 변수(Environment Variable)는 운영체제가 프로그램들에게 제공하는 이름과 값의 쌍으로 된 설정값입니다. 그중 PATH는 실행 파일을 찾아볼 폴더 목록을 담고 있으며, Windows에서는 세미콜론(;), macOS와 Linux에서는 콜론(:)으로 폴더를 구분합니다.

터미널은 명령어를 입력받으면 다음과 같이 동작합니다.

  1. PATH에 적힌 폴더를 앞에서부터 차례대로 확인합니다.
  2. 해당 폴더에 python(Windows에서는 python.exe) 파일이 있으면 그 파일을 실행하고 찾기를 멈춥니다.
  3. 모든 폴더를 확인해도 없으면 “명령어를 찾을 수 없다”는 오류를 출력합니다.

그래서 Python을 설치했더라도 설치 폴더가 PATH에 등록되지 않았다면 python 명령어가 동작하지 않습니다. 반대로 여러 버전이 설치되어 있고 모두 PATH에 등록되어 있다면, 목록에서 앞에 있는 폴더의 Python이 실행됩니다. “분명 새 버전을 설치했는데 이전 버전이 실행된다”는 문제는 대부분 이 순서 때문에 발생합니다.


# Windows (명령 프롬프트, PowerShell)
where.exe python

# macOS, Linux
which python3

where.exe와 which는 PATH를 위와 같은 순서로 검색하여 실제로 실행될 실행 파일의 경로를 출력합니다. Windows의 where.exe는 찾은 경로를 모두 출력하며, 맨 위에 출력된 경로가 실제로 실행되는 파일입니다. 출력되는 경로는 설치 방법과 컴퓨터마다 다릅니다.

  • Tip : Windows의 py 런처를 사용하면 py가 설치된 Python을 직접 찾아 실행하므로 PATH 순서에 덜 민감합니다. 설치 직후 명령어가 인식되지 않는다면 이미 열려 있던 터미널은 변경된 PATH를 모르므로 터미널을 새로 열어 다시 확인합니다.



설치 확인

설치가 완료되었다면 터미널(명령 프롬프트, PowerShell 등)에서 Python의 버전을 확인합니다.

터미널은 마우스 대신 글자로 명령을 입력하여 프로그램을 실행하는 창입니다. Windows에서는 시작 메뉴에서 명령 프롬프트 또는 PowerShell을, macOS에서는 터미널 앱을 실행합니다.

python --version
py --version
결과
Python 3.14.6

python --version은 PATH에 등록된 python의 버전을 출력하며, Windows에서는 py --version으로 py 런처가 실행하는 기본 버전을 확인할 수 있습니다.

macOS와 Linux에서는 python 대신 python3 --version을 사용합니다.

--version 처럼 명령어 뒤에 붙이는 값을 옵션(Option)이라 하며, 인터프리터에게 코드를 실행하는 대신 버전만 출력하고 종료하라고 지시합니다. python -V도 같은 의미입니다.

  • Tip : 출력된 버전이 예상과 다르다면 여러 버전의 Python이 설치되어 있는 경우입니다. Windows에서는 py list로 설치된 버전을 확인할 수 있습니다.


인터프리터 안에서 확인하기

버전은 Python 코드로도 확인할 수 있습니다. 다음 코드는 sys 모듈을 이용하여 지금 코드를 실행하고 있는 인터프리터의 정보를 출력합니다. 코드를 실행하는 방법은 제 2강에서 다루므로, 지금은 결과의 의미만 확인합니다.

import sys

print(sys.version_info)
print(sys.version_info >= (3, 14))
결과
sys.version_info(major=3, minor=14, micro=6, releaselevel=’final’, serial=0)
True

sys.version_info는 버전을 주(major), 부(minor), 수정(micro) 숫자로 나누어 담고 있습니다. releaselevel='final'은 시험판이 아닌 정식 출시 버전이라는 의미입니다.

sys.version_info >= (3, 14)는 실행 중인 Python이 3.14 이상인지 비교하여 True 또는 False를 반환합니다. 특정 버전 이상에서만 동작하는 코드를 작성할 때 이와 같이 확인할 수 있습니다.

  • Tip : print(sys.executable)을 실행하면 지금 실행 중인 인터프리터 파일의 전체 경로를 출력합니다. 터미널의 python과 편집기에서 실행되는 Python이 서로 다른지 의심될 때 유용합니다.


pip 확인

pip는 Python의 패키지 설치 도구로, 표준 라이브러리에 없는 외부 패키지를 내려받아 설치합니다. 공식 설치 파일로 설치했다면 Python과 함께 설치됩니다.

python -m pip --version

-m 옵션은 뒤에 적은 모듈을 프로그램처럼 실행하라는 의미입니다. pip 명령어를 직접 입력하는 대신 python -m pip로 실행하면, 지금 python으로 실행되는 바로 그 인터프리터에 연결된 pip를 사용하게 되므로 여러 버전이 설치된 환경에서도 패키지가 엉뚱한 Python에 설치되는 일을 막을 수 있습니다.

출력에는 pip의 버전, pip가 설치된 경로, 그리고 연결된 Python 버전(python 3.14)이 표시되므로 어떤 Python에 연결되어 있는지 확인할 수 있습니다.



정리

이름 설명 특징
인터프리터 소스 코드를 바이트코드로 변환해 가상 머신에서 실행하는 프로그램 python 명령어가 실행하는 대상
CPython C언어로 구현된 공식 Python 구현체 일반적으로 설치하는 Python
py Windows용 Python 설치 관리자 겸 런처 py install, py list, py -3.14
PATH 실행 파일을 찾아볼 폴더 목록 앞에 있는 폴더가 우선
python –version 실행될 Python의 버전 출력 macOS, Linux는 python3
python -m pip 해당 Python에 연결된 pip 실행 패키지 설치 대상을 명확히 지정

Python을 설치한 뒤에는 어떤 명령어로, 어떤 버전의 인터프리터가 실행되는지를 확인하는 습관을 들이는 것이 좋습니다. 이후 강좌의 모든 예제는 Python 3.14.6 인터프리터로 실행한 결과입니다.

댓글 남기기