콘텐츠로 이동

P2-7.1 로컬 환경(local environment)과 실행 환경(runtime)

Section ID: P2-7.1 Version: v2026.07.20

P2-3.5에서는 Colab과 로컬 PC를 먼저 구분했습니다. 그때 목적은 NumPy 실습을 바로 따라가기 위한 사전 안내였습니다. 이제는 조금 더 기본으로 내려갑니다.

P2-6까지에서는 수식, 손실, 최적화처럼 무엇을 계산하는가를 읽었습니다. 하지만 그 계산도 실제로는 어딘가에서 실행되고, 어떤 프로그램이 읽어야 눈으로 확인할 수 있습니다. 이 절부터는 수학 언어를 잠시 멈추는 것이 아니라, 그 계산을 실제 실행 문장으로 옮기는 환경을 읽는 구간으로 들어갑니다.

이 전환을 가장 짧게 다시 묶으면 다음과 같습니다.

바로 앞에서 붙잡은 질문 이제 새로 붙잡을 질문 왜 바로 이어서 읽어야 하는가
손실을 어떻게 줄이고 값을 어떻게 바꾸는가? 그 계산을 어디서 어떤 프로그램으로 실행하는가? 뒤의 NumPy, Pandas, Git 실습도 모두 실제 실행 환경 위에서만 확인할 수 있어서

여기서는 로컬 환경(local environment)실행 환경(runtime)의 큰 구분을 설명합니다. 뒤 절에서 터미널, 인터프리터, 가상환경, 의존성이 이어서 나오더라도, 이 두 용어의 큰 그림은 여기 설명을 기준으로 다시 연결합니다.

여기서는 Python 설치 화면을 하나씩 따라가기보다, 계산을 실제로 어디서 실행하고 누가 관리하는지 구분하는 데 집중합니다. 여기서 로컬 환경, 실행 환경, Colab, 로컬 PC의 관계를 먼저 잡아 두면, 뒤에서 터미널, 인터프리터, 가상환경을 볼 때 새 도구를 또 하나 배우는가가 아니라 같은 실행 자리를 더 세밀하게 나누는가로 읽을 수 있습니다.

먼저 가장 작은 실행 장면부터 봅니다. 아래 예시는 모두 같은 목표를 가집니다.

hello를 실제로 어디에 입력해야 실행되는가?

보고 싶은 것 어디에 입력하는가 예시 지금 확인할 감각
Colab에서 Python 코드 한 줄 실행 Colab 코드 셀 print("hello") 브라우저 안에서 보이지만 실행은 Colab 런타임이 맡습니다.
로컬 PC에서 Python 설치 여부 확인 터미널 python --version 이것은 Python 코드가 아니라 터미널 명령입니다.
로컬 PC에서 Python 코드 한 줄 실행 Python 인터프리터 또는 .py 파일 print("hello") 같은 코드라도 Python 인터프리터가 읽어야 실제 출력이 생깁니다.
Jupyter 노트북에서 Python 코드 한 줄 실행 노트북 코드 셀 print("hello") 노트북 셀도 결국 Python 실행 환경 위에서 돌아갑니다.

문제 상황: 같은 hello라도 어디에 넣는지 헷갈리면 실행 환경 설명이 추상적으로 느껴질 수 있습니다. 입력(input): 터미널 명령 하나와 Python 코드 한 줄입니다. 기대 출력(output): 터미널에서는 Python 버전이, Python 코드 자리에서는 hello가 나옵니다. 확인할 개념: 무슨 코드를 쓰는가보다 먼저 어디에 넣는가가 다르다는 점을 봅니다.

python --version
# Python 코드가 실제로 실행되는지 확인하는 가장 작은 출력 예시입니다.
print("hello")

여기서 바로 잡아야 할 최소 구분은 두 가지입니다.

  • python --version은 터미널에 넣는 명령입니다.
  • print("hello")는 Python 인터프리터나 노트북 셀에 넣는 Python 코드입니다.

즉, 실행 환경을 구분한다는 말은 거창한 설치 이론보다 먼저, 같은 화면처럼 보여도 입력하는 자리가 다를 수 있다는 사실을 아는 데서 시작합니다.

문제 유형별 먼저 돌아갈 곳

Chapter 7은 한 번에 다 읽기보다, 막힌 유형에 따라 다시 찾아오는 편이 더 효율적입니다.

지금 막힌 문제 먼저 다시 볼 절 왜 그 절이 먼저인가
터미널과 Python 코드가 자꾸 섞인다 P2-7.1, P2-7.3 실행 자리와 Python 인터프리터 역할을 다시 구분해야 하기 때문입니다.
현재 폴더, 파일 위치가 헷갈린다 P2-7.2 작업 폴더 감각이 먼저 잡혀야 다음 명령이 읽힙니다.
패키지 설치와 가상환경이 섞인다 P2-7.4, P2-7.5 설치 자리와 재현성 관리가 이어지기 때문입니다.
운영체제별 터미널 창이 낯설다 P2-7.6 명령 자체보다 창과 입력 자리부터 익숙해져야 하기 때문입니다.
지금 Python을 설치해야 하는지 모르겠다 P2-7.7 설치 판단을 먼저 분리해야 불필요한 설정에 덜 막힙니다.
튜토리얼 명령의 |, >, 환경 변수가 낯설다 P2-7.8 실행 환경 문법을 읽는 최소 감각이 먼저 필요하기 때문입니다.
로컬 Python이 실제로 잘 도는지 점검하고 싶다 P2-7.9 설치 후 확인 절차를 한 번에 따라갈 수 있기 때문입니다.

이 표의 목적은 Chapter 7을 외우게 하는 것이 아니라, 지금 막힌 종류에 따라 가장 짧은 복귀 경로를 바로 찾게 하는 데 있습니다.

지금 이 절에서 잡을 것 바로 다음에 이어질 질문 이후 다시 쓰이는 위치
로컬 환경과 실행 환경을 구분하는 큰 그림 P2-7.2에서 터미널과 작업 폴더가 그 실행 자리와 어떻게 연결되는지로 이어집니다. 이후 모든 로컬 실습, 패키지 설치, 오류 점검의 출발점이 됩니다.
Colab과 로컬 PC가 모두 실행 환경이지만 관리 방식이 다르다는 점 P2-7.3과 P2-7.4에서 인터프리터와 가상환경을 왜 따로 배우는지로 이어집니다. 이후 재현성, 팀 협업, 예제 재실행 판단 기준으로 반복됩니다.
Chapter 7이 Python 전체가 아니라 실행 자리를 다루는 장이라는 점 Chapter 8~10과 역할을 섞지 않고 읽는 기준으로 이어집니다. Part 2 후반의 NumPy, Pandas, Git 실습을 서로 다른 층위로 정리할 때 다시 씁니다.

여기서는 프로그래밍 기초 지식이 없을 수 있는 독자를 기준으로 설명합니다. 이미 터미널, Python, 가상환경을 알고 있다면 익숙한 내용일 수 있지만, 이후 실습에서 계속 반복될 단어들이므로 한 번 정리해 둘 필요가 있습니다.

여기서는 네 가지 질문을 중심으로 읽습니다.

  • 코드는 어디에서 실행되는가?
  • Python은 무엇을 실행하는가?
  • 로컬 환경과 실행 환경은 무엇이 다른가?
  • 왜 가상환경이라는 말이 나오는가?
용어 이 절에서 먼저 잡을 뜻
로컬 환경(local environment) 내 컴퓨터에서 코드를 실행하기 위해 준비된 프로그램, 파일, 설정의 묶음입니다.
실행 환경(runtime) 코드가 실제로 돌아가는 자리와 그 자리에 연결된 프로그램 묶음입니다.
Colab 런타임(runtime) 브라우저에서 쓰지만 실제 실행은 외부 서비스가 관리하는 환경입니다.
로컬 PC 실행 사용자가 Python, 폴더, 패키지 상태를 직접 관리하는 실행 방식입니다.
가상환경(virtual environment) 로컬 환경 안에서 프로젝트별 Python 공간을 더 세밀하게 나누는 장치입니다.

이 질문은 AI 수학보다 더 실무적인 질문처럼 보입니다. 하지만 머신러닝 실습에서는 매우 중요합니다. 같은 코드라도 실행 환경이 다르면 결과가 달라지거나, 아예 실행되지 않을 수 있기 때문입니다.

즉, 지금 이 말을 배우는 이유는 단순합니다. 뒤에서 NumPy 배열을 만들고 Pandas 데이터를 읽고 Git으로 예제 프로젝트를 받을 때, 코드가 왜 안 도는가를 수학 문제가 아니라 실행 환경 문제로 먼저 구분할 수 있어야 하기 때문입니다.

이후 Part 2 Chapter 7~10을 읽을 때는 다음 세 층을 나눠 둡니다.

지금 읽는 층 중심 질문 대표 Chapter
실행 환경 어디서 실행하나? Chapter 7
코드 문법과 자료 구조 무엇을 어떤 문장으로 적나? Chapter 8-9
노트북 기록 실행 결과를 어떻게 남기나? Chapter 10

이 표의 핵심은 터미널, Python 문법, 노트북이 모두 Python 공부라는 한 이름 아래 있어도 같은 역할은 아니라는 점입니다. 지금 Chapter 7은 그중에서도 실행 자리와 관리 주체를 먼저 구분하는 절입니다.

이 흐름을 Part 2 Chapter 7~10 기준으로 더 짧게 묶으면 다음과 같습니다.

지금 읽는 묶음 먼저 붙잡을 질문 바로 뒤에서 더 구체화되는 것
Chapter 7 실행 환경 어디서 실행하나 터미널, 인터프리터, 가상환경
Chapter 8-9 코드 문법과 자료 구조 무엇을 어떤 값과 묶음으로 적나 값, 변수, 리스트, 딕셔너리, 자료구조 감각
Chapter 10 노트북 기록 실행 결과를 어떻게 남기고 다시 실행하나 Jupyter, Colab, 로컬 실행, 재현성 습관

이 전환을 앞뒤 장과 한 번에 붙여 보면 다음과 같이 정리할 수 있습니다.

바로 앞 장 지금 장 바로 다음에 더 붙는 장
수식과 계산: 무엇을 계산할까 실행 환경: 그 계산을 어디서 어떤 프로그램으로 실행할까 Python 문법: 그 계산을 어떤 문장으로 적을까
계산 언어 실행 자리와 관리 주체 코드 문장

즉, 지금 장의 핵심은 무엇을 계산할까에서 그 계산을 어디서 실행할까로 손잡이가 바뀐다는 점입니다.

핵심 기준: 로컬 환경(local environment)과 실행 환경(runtime)

  • 로컬 환경(local environment)을 내 컴퓨터에서 코드가 실행되는 조건으로 설명할 수 있습니다.
  • 실행 환경(runtime)을 코드가 실제로 실행되는 자리로 설명할 수 있습니다.
  • 터미널(terminal), Python 인터프리터(Python interpreter), 가상환경(virtual environment)이 왜 순서대로 등장하는지 설명할 수 있습니다.
  • Colab과 로컬 PC가 모두 실행 환경이지만 관리 방식이 다르다는 점을 설명할 수 있습니다.

세 가지 기준

여기서는 설치 절차 자체보다, 코드가 도는 자리를 구분합니다. 아래 세 가지 기준이 뒤 절의 설치, 터미널, 가상환경 설명을 묶는 바탕이 됩니다.

기준 왜 중요한가 이 절에서 필요한 이해 수준
코드는 어딘가에서 실행되어야 한다 파일에 적힌 글자와 실제 실행을 구분해야 하기 때문이다 코드만 쓰면 끝이 아니라 실행하는 프로그램과 자리가 필요하다고 이해한다
Python 인터프리터는 Python 코드를 읽고 실행하는 프로그램이다 터미널, 스크립트, 노트북 실행이 한 흐름으로 묶인다 print("hello")를 누가 읽는지 이 구분으로 설명할 수 있다
Colab과 로컬 PC는 둘 다 실행 환경이지만 관리 주체가 다르다 이후 가상환경과 의존성 이야기가 왜 필요한지 연결된다 Colab은 서비스가, 로컬은 사용자가 더 많이 관리한다고 이해한다

Python은 왜 자주 등장하는가

AI를 공부하다 보면 Python이 자주 나옵니다. 이때 “왜 하필 Python인가?”라는 질문이 생길 수 있습니다.

Python은 1980년대 말 Guido van Rossum이 만들기 시작했고, 1991년에 공개된 언어입니다. Python 공식 FAQ는 Python이 ABC 언어의 경험에서 영향을 받았고, 시스템 관리 작업을 C 프로그램이나 셸 스크립트만으로 처리하기 어려웠던 상황에서 더 확장 가능한 스크립팅 언어가 필요했다는 배경을 설명합니다.

이 역사에서 중요한 점은 Python이 처음부터 사람이 읽고 쓰기 쉬운 고수준 언어이면서, 실제 시스템 작업에도 연결되는 실행 도구였다는 점입니다.

그래서 Python은 학습, 자동화, 데이터 처리, 실험 코드에 잘 맞습니다. Python 공식 FAQ도 Python이 명확한 문법, 큰 표준 라이브러리, 대화형 인터프리터를 갖고 있어 처음 배우는 언어로도 적합하다고 설명합니다.

AI 분야에서 Python이 자주 보이는 이유도 이 흐름과 연결됩니다.

  • 수식을 코드로 옮기기 쉽습니다.
  • 작은 실험을 빠르게 실행할 수 있습니다.
  • NumPy, Pandas, Matplotlib 같은 도구가 많습니다.
  • 머신러닝과 딥러닝 라이브러리가 Python 생태계에 많이 모여 있습니다.

물론 Python이 유일한 언어라는 뜻은 아닙니다. 실제 서비스 내부에서는 C++, Java, JavaScript, Go, Rust 같은 언어도 함께 쓰입니다. 하지만 AI 학습과 실험의 입구에서는 Python을 만날 가능성이 높습니다. 그래서 이 장에서는 Python 설치보다 먼저 “Python 코드가 어디에서 어떻게 실행되는가”를 잡습니다.

먼저 코드가 실행되는 장소를 생각한다

프로그래밍을 처음 시작하면 “코드를 쓴다”는 말이 먼저 보입니다. 하지만 코드는 글자만으로 동작하지 않습니다. 코드를 읽고 실행하는 프로그램과 실행되는 장소가 필요합니다.

여기서 구분할 말은 세 가지입니다.

  • 코드: 사람이 작성한 명령입니다.
  • 실행: 그 명령을 컴퓨터가 처리하는 일입니다.
  • 실행 환경: 실행에 필요한 프로그램, 설정, 패키지, 파일이 준비된 자리입니다.

예를 들어 다음 코드는 Python 코드입니다.

문제 상황: 코드가 실제로 실행되려면 글자만 적는 것과 실행하는 것이 다르다는 점을 가장 작은 예제로 봅니다. 입력(input): 문자열을 출력하는 Python 코드 한 줄입니다. 기대 출력(output): Python 인터프리터가 읽으면 hello가 출력됩니다. 확인할 개념: Python 코드는 실행 환경과 인터프리터가 있어야 실제 동작으로 이어진다는 점을 봅니다.

# 같은 print 코드라도 실행 환경에 따라 실행 위치가 달라질 수 있습니다.
print("hello")

하지만 이 문장을 메모장에 적어 두기만 하면 아무 일도 일어나지 않습니다. Python 인터프리터(Python interpreter)가 이 문장을 읽고 실행해야 합니다.

Python 인터프리터는 코드를 읽고 실행하는 프로그램이다

Python 인터프리터(Python interpreter)는 Python 코드를 읽고 실행하는 프로그램입니다. 공식 Python 문서에서는 명령줄에서 Python 인터프리터를 호출할 수 있고, 대화형 모드(interactive mode)에서는 >>> 프롬프트에서 명령을 입력할 수 있다고 설명합니다.

여기서는 Python 코드와 Python 인터프리터를 다음처럼 구분합니다.

  • Python 코드: 사람이 쓴 명령입니다.
  • Python 인터프리터: 그 명령을 읽고 실행하는 프로그램입니다.

Python을 실행하는 방식은 여러 가지입니다.

방식 예시 입문적 설명
대화형 실행 python을 실행한 뒤 >>>에 입력 한 줄씩 바로 확인한다
스크립트 실행 python example.py 파일에 적은 코드를 한 번에 실행한다
노트북 실행 Colab/Jupyter 코드 셀 코드와 결과를 셀 단위로 확인한다

이 세 가지는 섞여 보일 수 있습니다. 중요한 것은 모두 “Python 인터프리터가 Python 코드를 실행한다”는 공통점을 갖는다는 점입니다.

Python 인터프리터와 스크립트 실행은 P2-7.3에서 다시 다룹니다. 여기서는 “Python 코드는 Python 인터프리터가 실행한다”는 큰 그림만 기억합니다.

터미널은 컴퓨터에게 명령을 보내는 창이다

터미널(terminal)은 컴퓨터에게 명령을 입력하는 창입니다. macOS의 Terminal, Windows Terminal, PowerShell, Linux shell 같은 프로그램이 여기에 해당합니다.

터미널 명령과 Python 코드는 다릅니다.

python --version

위 명령은 터미널에서 실행하는 명령입니다. Python 코드 파일 안에 그대로 쓰는 문장이 아닙니다.

반면 다음은 Python 코드입니다.

문제 상황: 터미널 명령과 대비해 Python 코드가 어떤 자리에서 쓰이는지 다시 확인합니다. 입력(input): 문자열을 출력하는 Python 코드입니다. 기대 출력(output): Python 코드로 실행하면 hello가 출력됩니다. 확인할 개념: 같은 문장처럼 보여도 터미널 명령과 Python 코드는 입력하는 자리가 다르다는 점을 봅니다.

# 런타임이 바뀌어도 실행할 Python 문장 자체는 같습니다.
print("hello")

이 구분이 중요합니다.

여기서도 역할을 분리해 읽습니다.

  • 터미널 명령: Python을 실행하거나 패키지를 설치하거나 파일을 실행합니다.
  • Python 코드: Python 인터프리터가 읽는 코드입니다.

자주 헷갈리는 지점은 다음과 같습니다.

문장 어디에서 쓰는가
python example.py 터미널
python -m pip install numpy 터미널
%pip install numpy Colab/Jupyter 코드 셀
import numpy as np Python 코드
print("hello") Python 코드

P2-3.5에서 본 구분을 여기서 다시 확인하는 이유가 있습니다. 실행 위치를 모르면 오류가 났을 때 무엇을 고쳐야 하는지 판단하기 어렵습니다.

터미널, 셸(shell), 작업 폴더(working directory)는 P2-7.2에서 별도로 다룹니다. 여기서는 터미널 명령과 Python 코드가 같은 문장이 아니라는 점만 잡습니다.

로컬 환경은 내 컴퓨터의 실행 조건이다

로컬 환경(local environment)은 내 컴퓨터 안에서 코드가 실행되는 조건을 말합니다. 여기에는 운영체제, Python 설치 위치, 패키지 설치 상태, 현재 작업 폴더, 환경 변수 같은 것들이 포함될 수 있습니다.

여기서는 로컬 환경을 내 컴퓨터에서 Python 코드가 실행되는 조건으로 다룹니다.

같은 코드라도 컴퓨터마다 결과가 달라질 수 있습니다.

예를 들어 다음처럼 컴퓨터마다 조건이 달라질 수 있습니다.

  • 내 컴퓨터에는 NumPy가 설치되어 있지만, 다른 컴퓨터에는 없을 수 있습니다.
  • 내 컴퓨터는 Python 3.12를 쓰지만, 다른 컴퓨터는 Python 3.10을 쓸 수 있습니다.
  • 내 컴퓨터에서는 파일 경로가 맞지만, 다른 컴퓨터에서는 파일 위치가 다를 수 있습니다.

그래서 실습 문서에서는 “코드”만큼이나 “어디에서 실행하는가”가 중요합니다.

실행 환경은 코드가 실제로 도는 자리다

실행 환경(runtime)은 코드가 실제로 실행되는 자리입니다. 로컬 PC에서 실행하면 내 컴퓨터가 실행 환경이 됩니다. Colab에서 실행하면 Google이 제공하는 노트북 런타임(runtime)이 실행 환경이 됩니다.

실행 방식 실행 환경
Colab 코드 셀 실행 Colab 런타임
내 컴퓨터 터미널에서 실행 로컬 Python 환경
가상환경을 켜고 실행 해당 가상환경의 Python과 패키지

Colab은 편합니다. Python 설치 없이 브라우저에서 실행할 수 있습니다. 하지만 런타임이 끊기거나, 파일이 사라지거나, 제공 정책이 바뀔 수 있습니다.

로컬 PC는 처음 설정이 번거롭습니다. 하지만 내 프로젝트 파일, 패키지 버전, 실행 방식을 직접 관리할 수 있습니다.

정리하면 다음과 같습니다.

  • Colab: 시작하기 쉽고, 실행 환경은 외부 서비스가 관리합니다.
  • 로컬 PC: 처음 설정이 필요하지만, 실행 환경을 내가 관리합니다.

가상환경은 프로젝트별 실행 공간이다

가상환경(virtual environment)은 Python 프로젝트마다 별도의 실행 공간을 만들어 주는 장치입니다. Python 공식 문서는 venv가 가벼운 가상환경을 만들고, 각 가상환경이 독립된 Python 패키지 집합을 가질 수 있다고 설명합니다.

가상환경은 프로젝트별 Python 실행 공간으로 이해하면 됩니다.

왜 필요할까요? 프로젝트 A는 numpy 1.x가 필요하고 프로젝트 B는 numpy 2.x가 필요할 수 있습니다. 이 둘을 한 컴퓨터에 모두 섞어 설치하면 충돌할 수 있으므로, 프로젝트별로 공간을 나눕니다.

가상환경은 프로젝트 코드 자체가 아닙니다. Python 공식 문서도 가상환경은 보통 .venv 또는 venv 같은 디렉터리에 만들며, 소스 관리 시스템에 넣지 않는다고 설명합니다. 어떤 프로젝트에서든 .venv는 실행을 위한 로컬 환경이지 본문 파일이나 코드 자체가 아닙니다.

자주 보는 명령은 다음과 같습니다.

문제 상황: 프로젝트별 실행 공간을 만드는 명령이 실제로 어떤 모양인지 먼저 익숙해집니다. 입력(input): python -m venv .venv 터미널 명령입니다. 기대 출력(output): .venv라는 가상환경 디렉터리가 만들어집니다. 확인할 개념: 가상환경은 개념 설명만이 아니라 프로젝트별 Python 공간을 실제로 만드는 명령과 연결된다는 점을 봅니다.

python -m venv .venv

이 명령은 .venv라는 가상환경 디렉터리를 만듭니다. 여기서는 실제 활성화 명령을 운영체제별로 외우지 않습니다. 지금은 “프로젝트별 실행 공간을 만든다”는 의미만 잡습니다.

가상환경 생성과 패키지 설치는 P2-7.4에서 다시 다룹니다. 여기서는 가상환경이 왜 필요한지의 이유만 봅니다.

패키지는 가져다 쓰는 코드 묶음이다

패키지(package)는 다른 사람이 만들어 둔 코드 묶음입니다. NumPy, Pandas, Matplotlib 같은 도구가 여기에 해당합니다.

여기서는 세 층을 구분해 읽습니다.

  • Python: 언어와 실행 프로그램입니다.
  • 패키지: Python에서 가져다 쓰는 코드 묶음입니다.
  • pip: 패키지를 설치하는 도구입니다.

예를 들어 NumPy를 설치하는 명령과 불러오는 코드는 다릅니다.

python -m pip install numpy

문제 상황: 설치 명령과 Python 코드의 자리가 어떻게 다른지 바로 이어서 확인합니다. 입력(input): NumPy를 np라는 이름으로 불러오는 Python 코드입니다. 기대 출력(output): 출력은 없지만 현재 Python 코드에서 NumPy를 사용할 준비가 됩니다. 확인할 개념: 패키지 설치는 터미널에서 하고, import는 Python 코드 안에서 한다는 점을 다시 봅니다.

# NumPy를 현재 실행 환경에서 불러올 수 있는지 확인합니다.
import numpy as np

첫 번째는 설치입니다. 두 번째는 Python 코드 안에서 사용하겠다고 불러오는 일입니다.

패키지, 의존성, 재현성은 P2-7.4와 P2-7.5에서 더 자세히 다룹니다. 여기서는 설치와 사용이 다른 일이라는 점만 남깁니다.

프로그래밍을 모르면 무엇부터 구분해야 하는가

문법을 많이 외우는 것보다 구분을 먼저 잡는 것이 중요합니다.

질문 먼저 구분할 것
이 문장은 어디에 입력하는가? 터미널인가, 코드 셀인가, Python 파일인가
이 코드는 누가 실행하는가? Python 인터프리터인가, 셸인가
패키지가 없다는 오류가 났는가? 설치 문제인가, import 문제인가
내 컴퓨터와 Colab 결과가 다른가? 실행 환경이 다른가
예제가 다른 사람 컴퓨터에서 안 되는가? 가상환경과 패키지 버전이 다른가

이 구분은 머신러닝 자체의 개념은 아닙니다. 하지만 머신러닝을 배우는 과정에서 계속 발목을 잡을 수 있습니다. 그래서 이 장에서 먼저 정리합니다.

사례 및 예시

사례 1. 같은 예제 파일인데 Colab에서는 되고 내 컴퓨터에서는 안 될 때

학습자가 책 예제를 Colab에서 실행했을 때는 잘 동작했는데, 같은 파일을 내려받아 로컬 PC에서 실행하자 오류가 났다고 하겠습니다. 사람은 보통 코드가 틀렸나?, 다운로드가 잘못됐나?부터 의심합니다.

하지만 이런 상황에서는 코드 문법보다 실행 자리를 먼저 구분해야 합니다. Colab에서는 이미 준비된 런타임과 패키지를 쓰고 있을 수 있고, 로컬 PC에서는 Python 인터프리터, 작업 폴더, 패키지 설치 상태를 직접 확인해야 하기 때문입니다.

이 절이 강조하는 로컬 환경, 실행 환경, 인터프리터, 가상환경이라는 말은 바로 이 실패를 나눠 읽기 위한 언어입니다. 즉 어디에서 실행했는가, 누가 실행했는가, 필요한 패키지가 그 자리에 있는가를 구분하면 문제를 더 빨리 좁힐 수 있습니다.

확인 가능한 결과는 간단합니다. Colab에서는 import numpy as np가 바로 되는데 로컬 PC에서는 ModuleNotFoundError가 난다면, 코드 내용보다 로컬 실행 환경의 패키지 준비 상태를 먼저 확인해야 한다는 결론을 얻을 수 있습니다.

체크리스트

  • 로컬 환경(local environment)을 내 컴퓨터에서 코드가 실행되는 조건으로 설명할 수 있다.
  • 실행 환경(runtime)을 코드가 실제로 실행되는 자리로 설명할 수 있다.
  • 터미널 명령과 Python 코드를 구분할 수 있다.
  • Python 인터프리터(Python interpreter)를 Python 코드를 읽고 실행하는 프로그램으로 설명할 수 있다.
  • 가상환경(virtual environment)이 프로젝트별 실행 공간이라는 정도로 설명할 수 있다.
  • 패키지 설치와 import가 다른 일임을 입문 수준에서 설명할 수 있다.
  • Colab과 로컬 PC가 모두 실행 환경이지만 관리 방식이 다르다는 점을 설명할 수 있다.
  • 어디에서 실행하는가, 무엇이 실행하는가, 어떤 패키지가 필요한가, 그 패키지는 어디에 설치되어 있는가를 먼저 점검할 수 있다.

출처와 참고 자료

  • Python Software Foundation, Using the Python Interpreter, Python 3.14.6 documentation, 확인 날짜: 2026-07-20. Python 인터프리터를 호출하고, 대화형 입력과 스크립트 실행을 구분하는 근거로 사용했다.
  • Python Software Foundation, General Python FAQ, Python 3.14.6 documentation, 확인 날짜: 2026-07-20. Python이 인터프리터형·대화형 프로그래밍 언어이며 여러 운영체제에서 사용할 수 있다는 기본 설명 확인에 사용했다.
  • Python Software Foundation, venv — Creation of virtual environments, Python 3.14.6 documentation, 확인 날짜: 2026-07-20. 가상환경이 독립된 디렉터리 안에 Python 설치와 패키지 상태를 갖는다는 설명 확인에 사용했다.
  • Python Packaging Authority, Install packages in a virtual environment using pip and venv, Python Packaging User Guide, 확인 날짜: 2026-07-20. 프로젝트별 가상환경 생성, 활성화, 패키지 설치 흐름을 확인하는 근거로 사용했다.