[2일차] Python

송정근·2026년 5월 20일

python 시작과 개발환경 구축

1.python이란

Python은 간결하고 가독성이 높은 문법을 특징으로 하는 고수준 프로그래밍 언어입니다. 코드의 표현력이 뛰어나 개발 생산성이 높으며, 데이터 처리, 자동화, 웹 개발, 인공지능 등 다양한 분야에서 활용됩니다.

👉 고수준 프로그래밍 언어

고수준 프로그래밍 언어는 사람이 이해하기 쉬운 형태로 프로그램을 작성할 수 있도록 설계된 언어를 의미합니다. 하드웨어의 동작 방식이나 메모리 관리와 같은 저수준 세부사항을 직접 다루지 않고, 변수, 함수, 객체와 같은 추상화된 개념을 사용하여 문제 해결에 집중할 수 있도록 합니다. 따라서 코드의 가독성과 생산성이 높으며, 동일한 코드를 다양한 환경에서 비교적 쉽게 실행할 수 있는 특징을 가집니다.

vs 저수준 프로그래밍 언어

저수준 프로그래밍 언어는 컴퓨터 하드웨어에 더 가까운 방식으로 작성하는 언어를 말합니다. 사람이 이해하기는 어렵지만, 컴퓨터가 처리하는 방식과 가깝기 때문에 하드웨어를 세미할게 제어할 수 있습니다.

예시 :

  • 기계어 : 컴퓨터가 직접 이해하는 0 과 1 로 이루어진 언어
  • 어셈블리어 : 기계어를 사람이 조금 더 읽기 쉽게 표현한 언어

2.Python의 장점

1. 간결하고 가독성이 높은 문법

  • 문법이 단순하고 직관적이다.
  • 코드가 자연어에 가까워 이해하기 쉽다.
  • 동일한 기능을 더 적은 코드로 구현할 수 있다.

2. 높은 생산성

  • 개발 속도가 빠르다.
  • 코드 작성량이 적고 구현이 단순하다.
  • 다양한 기능을 빠르게 프로토타이핑할 수 있다.

3. 풍부한 라이브러리 생태계

  • 표준 라이브러리가 강력하다.
  • 다양한 외부 라이브러리를 지원한다.
    • 데이터 처리
    • 웹 개발
    • 인공지능 / 머신러닝

4. 다양한 분야에서 활용 가능

  • 데이터 분석
  • 자동화 스크립트
  • 웹 백엔드
  • 인공지능 / 딥러닝

5. 플랫폼 독립성

  • Windows, macOS, Linux 등 다양한 환경에서 실행 가능하다.
  • 동일한 코드로 여러 운영체제에서 동한다.

6. 대규모 커뮤니티와 자료

  • 전 세계적으로 사용자가 많다.
  • 문제 해결 자료가 풍부하다.
  • 학습 자료와 예제가 많다.

Python 의 단점

  1. 실행 속도가 느릴 수 있음
    • Python은 코드를 한 줄씩 해석하며 실행하는 인터프리터 언어이기 때문에 컴파일 언어보다 실행 속도가 느릴 수 있습니다.
  2. 메모리 사용량이 비교적 많음
    • Python은 사용하기 편리한 대신 내부적으로 많은 기능을 처리하기 때문에 메모리를 비교적 많이 사용할 수 있습니다.
  3. 실행 환경 관리가 필요함
    • 프로젝트마다 사용하는 Python 버전이나 라이브러리 버전이 다를 수 있기 때문에, 가상환경을 잘 관리해야 합니다.
  4. 하드웨어 제어에는 한계가 있음
    • Python은 고수준 언어라 사용하기 쉽지만, 하드웨어를 세밀하게 제어해야 하는 작업에는 C, C++ 같은 저수준 언어보다 적합하지 않을 수 있습니다.

3. 파이썬 설치

이 강의에서는 3.12.7 버전을 사용할 예정

설치 방식은 생략.

4. Python 버전

1. 메이저 버전 (Major)

👉 가장 큰 단위의 변화

  • 언어 구조나 문법에 큰 변화가 발생한다
  • 이전 버전과 호환되지 않을 수 있다

2. 마이너 버전(Minor)

👉 기능 추가 및 개선

  • 새로운 기능 추가
  • 기존 기능 개선
  • 하위 호환성 유지 (대부분)

3. 패치 버전 (Patch)

👉 버그 수정 및 안정화

  • 오류 수정 (bugfix)
  • 보안 문제 해결
  • 기능 변화 없음

5. 파이썬의 확장자

1. 확장자

확장자는 파일의 종류를 구분하기 위한 표시로, 파일 이름 뒤에 붙는 .py, .ipynb와 같은 형식을 의미합니다. 확장자를 통해 운영체제와 프로그램은 해당 파일을 어떤 방식으로 실행하거나 처리할지 판단합니다.

2. py파일 (Python Script)

.py 파일은 Python으로 작성된 일반적인 소스 코드 파일로, 프로그램을 구성하고 실행하기 위한 가장 기본적인 형태입니다. 작성된 코드는 위에서 아래로 순차적으로 실행되며, 함수와 클래스 등을 활용해 구조적으로 코드를 설계할 수 있습니다. 주로 애플리케이션 개발, 웹 백엔드, 자동화 스크립트 등과 같이 완성된 프로그램을 구현하는 데 사용되며, 파일 단위로 코드 관리가 가능해 프로젝트 구조화와 유지보수에 유리합니다.

3. ipynb파일 (Jupyter Notebook)

.ipynb 파일은 Jupyter Notebook 형식의 파일로, 코드를 여러 개의 셀로 나누어 작성하고 실행 결과를 함께 확인할 수 있는 것이 특징입니다. 각 셀을 독립적으로 실행할 수 있어 중간 결과를 바로 확인하거나 실험을 반복하기에 적합하며, 코드와 함께 설명과 출력 결과를 동시에 기록할 수 있습니다. 이러한 특징 때문에 데이터 분석, 머신러닝 실험, 시각화, 교육 및 강의 자료 작성 등 탐색과 실험 중심의 작업에 적합한 개발 방식입니다.

6.Python 개발환경 구축하기

Python은 메모장으로도 작성할 수 있지만, 실제 개발에서는 VSCode 같은 편집기를 사용하는 것이 훨씬 효율적입니다. VSCode는 코드 자동완성, 오류 표시, 디버깅, 터미널 실행, 확장 기능 등을 제공하므로 학습과 실무 모두에 적합합니다.

또한 Python 프로젝트를 진행하다 보면 프로젝트마다 사용하는 라이브러리 버전이 달라질 수 있습니다. 이때 하나의 컴퓨터에 모든 라이브러리를 한 곳에 설치하면 버전 충돌이 발생할 수 있습니다. 이를 해결하기 위해 사용하는 것이 가상환경입니다. 가상환경은 프로젝트마다 별도의 Python 실행 공간을 만들어 주는 기능입니다.

1. VSCode 설치하기

VSCode는 Microsoft에서 제공하는 코드 편집기입니다. 가볍고 빠르며, Python뿐 아니라 JavaScript, Java, C/C++, 웹 개발 등 다양한 언어를 지원합니다. 특히 확장 기능이 강력해서 Python 개발 도구로 많이 사용됩니다.

2. Python 개발을 위해 필요한 확장 설치

VSCode에서 Pyhton을 편하게 사용하려면 확장 프로그램을 설치해야 합니다.

1. Python (.py)

  • Python 코드 실행
  • 자동완성
  • 문법 하이라이팅
  • 오류 표시
  • 디버깅
  • 인터프리터 선택

2. Jupyter (.ipynb)

  • 노트북 파일 생성 및 실행

  • 셀 단위 실행

  • 데이터 분석 및 시각화 실습

3. Python 설치 확인하기

VSCode는 코드를 작성하는 도구이고, 실제 Python 코드를 실행하려면 컴퓨터에 Python 인터프리터가 설치되어 있어야 합니다. 터미널에서 Python 버전을 확인해 설치 여부를 확인할 수 있습니다.

4. 가상환경 만들기

Python에는 기본적으로 venv라는 가상환경 기능이 포함되어 있습니다. 따라서 별도 프로그램을 설치하지 않아도 가상환경을 만들 수 있습니다.

# windows
python --version
# mac
python3 --version

실행 결과

Python 3.12.7

VSCode 터미널에서 프로젝트 폴더 위치인지 확인한 후 다음 명령어를 입력합니다.

# windows
python -m venv venv
# mac
python3 -m venv venv
  • python -m : Python 모듈 실행
  • venv : 가상환경 생성 모듈
  • 마지막 venv : 생성할 가상환경 폴더 이름

5. 가상환경 활성화하기

가상환경을 만들기만 해서는 아직 사용 상태가 아닙니다. 실제로 사용하려면 활성화(activate) 해야 합니다.

가상환경 폴더 이름이 venv일 때 다음 명령어를 입력합니다. 터미널 프롬프트 앞에 보통 다음처럼 (venv) 표시가 붙습니다. 해당 표시가 보이면 현재 가상환경이 활성화된 상태입니다. 즉, 지금부터 설치하는 라이브러리는 전역이 아니라 이 프로젝트 전용 환경에 설치됩니다.

# windows
venv\Scripts\activate
# mac
source venv/bin/activate

가상환경을 활성화한 뒤 다음 명령어를 입력합니다.

# windows
where python
# mac
which python3 

가상환경을 쓰는 이유

가상환경을 쓰는 이유는 프로젝트마다 필요한 라이브러리와 버전을 따로 관리하기 위해서입니다. 쉽게 말하면, 프로젝트별로 독립된 Python 작업 공간을 만드는 거에요.

A 프로젝트 가상환경
- Python 3.10
- pandas 1.5
- numpy 1.x

B 프로젝트 가상환경
- Python 3.12
- pandas 2.2
- numpy 2.x

예를 들어 A 프로젝트는 pandas 1.x 버전이 필요하고, B 프로젝트에서는 pandas 2.x 버전이 필요할 수 있다.

이때 하나의 Python 환경에 모든 라이브러리를 설치하면 버전 충돌이 발생할 수 있다.

가상환경을 사용하면 프로젝트마다 독립된 Python 실행 공간을 만들 수 있기 때문에, 각 프로젝트에 필요한 라이브러리와 버전을 따로 관리할 수 있다.
따라서 다른 프로젝트에 영향을 주지 않고 안정적으로 개발할 수 있다.

6. VSCode에서 Python 인터프리터 연결하기

가상환경을 활성화했다고 해서 VSCode가 자동으로 항상 올바른 Python을 선택하는 것은 아닙니다. 따라서 인터프리터 선택을 확인하는 것이 중요합니다.

  • Cmd + Shift + P
  • Python: Select Interpreter 검색
  • 프로젝트의 venv 경로를 선택

예를 들어 아래와 같은 항목을 선택하면 됩니다.

# windows
.\venv\Scripts\python.exe
# mac
./venv/bin/python

👉 이 설정이 맞아야 다음 기능이 정상 동작합니다.

  • 실행 버튼으로 Python 파일 실행
  • 자동완성
  • 설치된 라이브러리 인식
  • 디버깅
  • import 오류 확인

7. 첫 Python 파일 만들고 실행하기

1. 테스트 파일 만들기

프로젝트 폴더 안에 새 파일을 만들고 이름을 test.py로 저장합니다. 아래 코드를 작성합니다.

print("Hello, Python")

2.실행하기

터미널에서 아래와 같이 실행합니다.

python test.py

실행화면

Hello, Python

8. 주석문

파이썬 주석은 코드 내에 프로그래머가 작성한 설명이나 메모를 포함하는데 사용됩니다. 주석은 코드를 이해하고 다른 개발자와 협업하는 데 도움이 되며, 코드의 기능과 목적을 명확하게 설명할 수 있습니다. 주석은 프로그램 실행 중에 무시되므로 코드 실행에 영향을 미치지 않습니다.

  1. 한 줄 주석: 코드 한 줄에서 주석을 작성하는 것입니다. # 기호를 사용하여 주석을 시작합니다. # 다음에 작성된 내용은 그 줄에서 끝까지 주석으로 처리됩니다.
print('파이썬 출력하기') # 문자열 출력은 작은따옴표 '' 또는 큰따옴표 ""를 사용함
  1. 여러 줄 주석: 여러 줄에 걸쳐 주석을 작성하는 것입니다. 여러 줄 주석은 큰따옴표 세 개(""") 또는 작은따옴표 세 개(''') 사이에 작성됩니다.
"""
이것은 여러 줄 주석입니다.
여러 줄 주석은 큰따옴표 세 개 또는 작은따옴표 세 개 사이에 작성됩니다.
여러 줄에 걸쳐 설명을 적을 수 있습니다.
"""
print("파이썬 출력하기!")

9. 가상환경 비활성화기

deactivate

간략한 정리

Python의 기본 개념과 개발환경을 구축하는 방법에 대해 배웠다. Python은 문법이 간단하고 읽기 쉬운 고수준 프로그래밍 언어이며, 데이터 처리, 자동화, 웹 개발, 인공지능 등 다양한 분야에서 활용된다. 또한 Python의 장점뿐만 아니라 실행 속도나 메모리 사용량, 환경 관리 같은 단점도 함께 정리하면서 언어의 특징을 더 균형 있게 이해할 수 있었다.

개발환경 구축에서는 VSCode 설치, Python 확장 프로그램 설치, Python 인터프리터 확인, 가상환경 생성과 활성화 방법을 배웠다. 특히 가상환경은 프로젝트마다 필요한 Python 버전과 라이브러리를 따로 관리할 수 있게 해 주기 때문에, 안정적인 개발을 위해 꼭 필요한 개념이라는 것을 알게 되었다. 마지막으로 .py와 .ipynb 파일의 차이, 첫 Python 파일 실행 방법, 주석 작성법까지 함께 정리했다.

느낀점

Python을 배우려면 코드 문법만 알면 된다고 생각했는데, 개발환경을 제대로 준비하는 것도 중요한 시작이라는 것을 알게 되었다. 특히 가상환경을 사용하는 이유를 예시로 보니, 여러 프로젝트를 관리할 때 왜 필요한지 더 쉽게 이해할 수 있었다. 앞으로 Python을 공부하면서 단순히 코드를 따라 치는 것에서 끝나지 않고, 실행 환경과 파일 구조까지 신경 쓰면서 더 체계적으로 학습해야겠다고 느꼈다.

파이썬 변수

1. 하드웨어와 메모리 개념 정리

Python에서 변수를 배우기 전에, 먼저 컴퓨터가 데이터를 어떻게 저장하고 처리하는지 이해하는 것이 중요합니다. 변수는 단순한 개념이 아니라, 실제로는 메모리라는 공간에 데이터를 저장하고 이름을 붙이는 것이기 때문입니다.

1. 주요 구성 요소

img

  • 컴퓨터는 여러 장치가 서로 역할을 나누어 동작합니다. Python 코드가 실행될 때도 CPU, 메모리, 저장장치 등이 함께 사용됩니다.

    • CPU(중앙처리장치)
      컴퓨터의 명령을 해석하고 계산을 수행하는 장치입니다. 프로그램이 실행되면 CPU가 메모리에 올라온 명령어를 읽고 처리합니다.

    • 메모리(RAM)
      현재 실행 중인 프로그램과 데이터를 임시로 저장하는 공간입니다. Python에서 사용하는 변수 값도 프로그램 실행 중에는 메모리에 저장됩니다. 전원이 꺼지면 저장된 내용은 사라집니다.

    • 저장장치(SSD/HDD)
      파일이나 프로그램을 오래 보관하는 공간입니다. .py 파일은 실행 전에는 저장장치에 저장되어 있고, 실행할 때 메모리로 불러와집니다.

    • 입력장치
      사용자가 컴퓨터에 데이터를 입력할 때 사용하는 장치입니다. 예를 들어 키보드, 마우스 등이 있습니다.

    • 출력장치
      컴퓨터가 처리한 결과를 사용자에게 보여 주는 장치입니다. 예를 들어 모니터, 스피커, 프린터 등이 있습니다.

즉, Python 파일은 저장장치에 보관되어 있다가 실행되면 메모리로 올라가고, CPU가 메모리에 있는 코드를 읽어 처리합니다. 이때 변수에 저장된 값도 메모리에 저장됩니다.

2. CPU의 역할

CPU는 계산하고 판단하는 역할을 합니다.

  • 연산 수행 (덧셈, 비교 등)
  • 프로그램 명령 실행
  • 전체 시스템 제어

vs GPU (Graphics Processing Unit)

GPU는 대량의 병렬 연산을 빠르게 처리하기 위해 설계된 장치

  • 수천 개의 작은 코어 사용
  • 병렬 처리에 특화
  • 동일한 연산 반복 처리에 강함

CPU vs GPU 비교표

항목CPUGPU
목적범용 연산병렬 연산
코어 수적음매우 많음
처리 방식순차 처리병렬 처리
강점복잡한 계산반복 계산
대표 작업운영체제, 프로그램 실행그래픽 , AI
구조고성능 코어 중심다수 코어 중심

3. 메모리(RAM)의 역할

메모리는 현재 실행 중인 데이터를 저장하는 공간입니다.

CPU가 빠르게 접근할 수 있도록 데이터를 보관하며, 전원이 꺼지면 저장된 내용이 사라지는 휘발성 저장장치입니다.

  • 프로그램 실행 시 필요한 데이터 저장
  • 변수 값이 저장되는 곳
  • 빠른 읽기/쓰기 가능

4. 저장장치 (SSD/HDD)

운영체제, 프로그램, 파일 등을 장기간 보관하는 장치입니다.

전원이 꺼져도 데이터가 유지되는 비휘발성 저장장치이며, RAM보다 속도는 느리지만 더 많은 데이터를 저장할 수 있습니다.

5. 입력장치

사용자가 컴퓨터에 명령이나 데이터를 입력할 때 사용하는 장치입니다.

예시 : 키보드, 마우스, 마이크, 스캐너

6. 출력장치

컴퓨터가 처리한 결과를 사용자에게 보여 주거나 전달하는 장치입니다.

예시 : 모니터, 스피커, 프린터

정리

입력장치 → CPU 처리 → 메모리(RAM)에 임시 저장 → 저장장치(SSD/HDD)에 장기 보관 → 출력장치로 결과 출력

2. Python 파일의 실행

Python 코드는 단순한 텍스트 파일(.py)이지만, 실행되는 순간에는 CPU와 메모리를 통해 실제 프로그램으로 동작합니다.

1. 시작 상태 (파일 저장)

# test.py
print("Hello, Python")

👉 이 파일은 현재 저장장치(SSD/HDD) 에 저장되어 있는 상태입니다.
👉 아직 실행된 것이 아니라 단순한 텍스트입니다.

2. 실행 명령 입력

python test.py

👉 이 명령은 “Python 프로그램을 실행해라” 라는 의미입니다.

3. Python 인터프리터 실행

👉 Python 인터프리터(실행 프로그램)가 먼저 실행됩니다.

  • Python은 컴파일 언어가 아니라 인터프리터 언어입니다. 코드를 한 줄씩 읽고 실행합니다.

vs 컴파일 언어

  • 번역가처럼 전체 코드를 미리 번역

  • 기계어로 변환 후 실행

    예시 :

    #include <iostream>
    using namespace std;
    int main(){
      cout << "Hello";
    }

    실행 흐름 :

    코드 작성 → 컴파일 → 실행 파일 생성 → 실행

인터프리터 언어 vs 컴파일 언어

구분인터프리터 언어컴파일 언어
실행 방식코드를 한 줄씩 바로 해석하며 실행전체 코드를 한 번에 번역 후 실행
실행 속도상대적으로 느림상대적으로 빠름
오류 발견실행 중 발견컴파일 단계에서 발견
개발 편의성수정 후 바로 실행 가능수정 후 다시 컴파일 필요
운영 방식인터프리터 프로그램 필요실행 파일 생성 가능
대표 언어Python, JavaScript, RubyC, C++, Go
장점디버깅과 테스트 편리성능 우수
단점속도가 느릴 수 있음개발 과정이 다소 번거로움

4. 메모리(RAM)에 코드 로드

👉 .py 파일이 저장장치 → 메모리(RAM)로 올라옵니다.

👉 CPU는 저장장치가 아니라 메모리에서만 작업 가능

5. CPU가 코드 실행

👉 CPU가 메모리에 있는 코드를 읽어서 실행합니다.

👉 CPU → RAM에서 코드 읽기 → 실행

CPU는 내부적으로 아래와 같이 처리합니다.

# test.py
print("Hello, Python")

'''
1. print 함수 찾기
2. "Hello, Python" 문자열 확인
3. 출력 명령 실행
'''

👉 CPU → 출력 시스템 → 화면(모니터)

Python 파일의 실행 흐름을 그림으로 표현하면 아래와 같다.

[1. Python 파일 작성]
        |
        v
+----------------------+
|      test.py         |
|----------------------|
| print("Hello")       |
+----------------------+
        |
        | 저장
        v
+----------------------+
| 저장장치 SSD / HDD   	 |
| 단순한 텍스트 파일   		 |
+----------------------+
        |
        | python test.py 실행
        v
+----------------------+
| Python 인터프리터    |
| 코드를 한 줄씩 해석  |
+----------------------+
        |
        | 코드 로드
        v
+----------------------+
| 메모리 RAM           |
| 실행할 코드 저장     |
+----------------------+
        |
        | 명령 전달
        v
+----------------------+
| CPU                  |
| print 함수 실행      |
+----------------------+
        |
        | 출력
        v
+----------------------+
| 모니터               |
| Hello 출력           |
+----------------------+

간략한 정리

이번에는 변수를 배우기 전에 컴퓨터의 하드웨어 구조와 데이터 처리 흐름에 대해 배웠다. 컴퓨터는 입력장치, CPU, 메모리(RAM), 저장장치(SSD/HDD), 출력장치 등이 서로 역할을 나누어 동작한다. 입력장치를 통해 데이터가 들어오면 CPU가 명령을 처리하고, 처리에 필요한 데이터는 메모리에 임시로 저장된다. 저장장치는 파일과 프로그램을 장기간 보관하며, 출력장치는 처리 결과를 사용자에게 보여 준다.

또한 CPU와 GPU의 차이도 정리했다. CPU는 복잡한 명령을 순차적으로 처리하는 데 강하고, GPU는 많은 연산을 동시에 처리하는 병렬 작업에 강하다. Python 파일의 실행 과정에서는 .py 파일이 처음에는 저장장치에 있는 텍스트 파일이지만, 실행하면 Python 인터프리터가 코드를 한 줄씩 해석하고, 코드가 메모리에 올라간 뒤 CPU가 이를 읽고 처리한다는 흐름을 배웠다. 인터프리터 언어와 컴파일 언어의 차이도 함께 비교하면서 Python의 실행 방식에 대해 이해할 수 있었다.

느낀점

변수를 배우기 전에 하드웨어 구조를 먼저 보니, 변수가 단순히 값을 담는 이름이 아니라 메모리와 관련된 개념이라는 점이 더 잘 이해되었다. 특히 파일이 저장장치에 있다가 실행 시 메모리로 올라가고, CPU가 그 내용을 처리한다는 흐름이 인상적이었다. 평소에는 코드를 실행하면 바로 결과가 나온다고만 생각했는데, 그 안에서 여러 장치가 역할을 나누어 동작한다는 것을 알게 되었다. 앞으로 코드를 작성할 때도 결과만 보는 것이 아니라, 컴퓨터 내부에서 어떤 과정으로 실행되는지 생각하면서 공부해야겠다고 느꼈다.

출처 및 참고 자료

본 정리는 강의 내용과 아래 자료를 참고하여 학습 목적으로 작성하였습니다.

profile
기록하며 성장하는 개발자

0개의 댓글