콘텐츠로 이동

P2-10.2 Jupyter, Colab, 로컬 실행의 차이

Section ID: P2-10.2 Version: v2026.07.20

P2-10.1에서는 노트북(notebook)을 코드(code), 설명(markdown), 출력(output)이 함께 있는 계산 문서(computational notebook)로 봤습니다. 이제 실제로 많이 만나는 세 실행 방식을 구분합니다.

Jupyter, Colab, 로컬 실행.

이 세 이름은 서로 겹쳐 보입니다. Colab도 Jupyter Notebook 형식을 사용하고, Jupyter도 내 컴퓨터에서 실행할 수 있으며, 로컬 실행도 노트북이 아니라 .py 스크립트로 할 수 있습니다. 그래서 “어디에서 실행되는가”, “어디에 저장되는가”, “무엇을 공유하는가”를 나누어 봅니다.

여기서는 Jupyter, Colab, 로컬 실행(local execution), 런타임(runtime), .ipynb 파일의 관계를 설명합니다. 앞 절이 노트북 문서 형식을 설명했다면, 실제로 그 문서가 어디서 실행되고 무엇이 공유되는지는 여기 기준으로 다시 연결합니다.

핵심 기준: Jupyter, Colab, 로컬 실행의 차이

  • Jupyter를 오픈소스 노트북 생태계로, Colab을 Jupyter 기반 hosted 서비스로 설명할 수 있습니다.
  • 로컬 실행을 내 컴퓨터의 Python, 파일, 터미널, 패키지 환경에서 실행하는 방식으로 설명할 수 있습니다.
  • 노트북 파일(.ipynb)과 실행 중인 런타임(runtime)을 구분할 수 있습니다.
  • Colab에서 노트북 내용은 공유될 수 있지만, 런타임의 파일과 설치 상태는 그대로 공유되지 않을 수 있음을 설명할 수 있습니다.
  • 학습 상황에 맞게 Colab, Jupyter, 로컬 스크립트 중 어느 방식을 먼저 쓸지 판단할 수 있습니다.

세 가지 기준

기준 왜 중요한가 이 절에서 필요한 이해 수준
Jupyter와 Colab의 관계 도구 이름을 같은 층위로 오해하지 않게 해 줍니다. Colab은 Jupyter 스타일 노트북을 제공하는 하나의 서비스로 이해합니다.
환경을 고르는 기준 실행 위치와 재현성 조건을 함께 보게 해 줍니다. 시작 장벽, 재현성, 파일 접근, 반복 실행 편의성을 기준으로 봅니다.
공유할 때 조심할 점 노트북 파일과 런타임을 혼동하지 않게 해 줍니다. 파일만 공유되는지, 실행 환경까지 같은지 따로 확인합니다.

같은 .ipynb 파일이라도 어디에서 실행하느냐에 따라 런타임과 파일 접근이 달라지고, Colab은 hosted 서비스이며 로컬 Jupyter와 로컬 스크립트는 내가 환경을 더 직접 관리합니다. 또한 노트북 파일과 실행 중인 런타임은 다릅니다. 이 구분이 서면 Chapter 10은 노트북 서비스 비교보다 실행 기록이 놓이는 자리와 조건을 읽는 장으로 읽힙니다.

즉, 지금 장의 핵심은 무엇을 한 문서에 남길까에서 그 문서가 실제로 어디에서 어떤 조건으로 실행될까로 질문이 이동한다는 점입니다. P2-10.3에서는 이 실행 차이를 재실행 가능한 기록 습관으로 다시 정리합니다.

Jupyter와 Colab은 같은 층위의 말이 아니다

Google Colab FAQ는 Jupyter를 Colab의 기반이 되는 오픈소스 프로젝트라고 설명합니다. Colab은 Jupyter 노트북을 다운로드, 설치, 실행 없이 사용하고 공유할 수 있게 해 주는 hosted 서비스라고 설명합니다.

여기서는 이렇게 구분합니다.

이름 먼저 이해할 말 실행 위치
Jupyter 오픈소스 노트북 도구와 생태계 보통 내 PC, 서버, 클라우드 등 다양
Colab Google이 제공하는 hosted Jupyter Notebook 서비스 Google이 제공하는 원격 런타임
로컬 실행 내 컴퓨터의 Python으로 실행 내 PC

따라서 “Jupyter냐 Colab이냐”는 완전히 대립되는 질문이 아닙니다. Colab은 Jupyter Notebook 형식과 흐름을 기반으로 한 서비스입니다. 다만 사용자가 설치와 서버 실행을 직접 관리하지 않는다는 점이 다릅니다.

노트북 파일과 실행 위치를 분리해서 본다

자주 헷갈리는 지점은 파일과 실행 상태를 같은 것으로 보는 것입니다.

노트북 파일은 보통 .ipynb 형식입니다. Jupyter 아키텍처 문서는 Jupyter Notebook이 코드, 메타데이터, 내용, 출력을 나타내는 구조화된 데이터이며, 디스크에 저장될 때 .ipynb 확장자와 JSON 구조를 사용한다고 설명합니다.

하지만 파일이 있다는 것과 코드가 실행 중이라는 것은 다릅니다.

구분 무엇인가
노트북 파일 코드, 설명, 일부 출력이 저장된 문서 practice.ipynb
런타임(runtime) 코드를 실제로 실행하는 Python 환경 Colab VM, Jupyter kernel
파일 시스템 코드가 읽고 쓰는 파일 위치 내 PC 폴더, Colab VM, Google Drive

이 구분이 중요한 이유는 간단합니다. 노트북 파일은 남아 있어도 런타임은 사라질 수 있고, 코드 셀은 남아 있어도 그 셀에서 설치한 패키지나 만든 임시 파일은 사라질 수 있습니다.

Colab FAQ도 Colab 코드가 계정에 할당된 가상 머신(virtual machine)에서 실행되고, 가상 머신은 일정 시간 유휴 상태가 되면 삭제되며 최대 수명이 있다고 설명합니다.

세 환경의 차이를 한 번에 보기

아래 표는 학습자가 먼저 알아야 할 차이만 정리한 것입니다.

기준 Colab 로컬 Jupyter 로컬 스크립트
실행 위치 Google 원격 런타임 내 PC 또는 내가 띄운 서버 내 PC
설치 부담 낮다 중간 중간
파일 접근 Colab VM, 업로드, Drive 연동 내 PC 파일 접근이 자연스럽다 내 PC 파일 접근이 자연스럽다
결과 기록 노트북에 남기기 좋다 노트북에 남기기 좋다 별도 출력/로그를 남겨야 한다
반복 자동화 제한적 가능하지만 노트북 특성 주의 가장 자연스럽다
공유 링크 공유가 쉽다 파일 또는 서버 접근 필요 코드 파일과 환경 설명 필요
주의점 런타임 제한, 자원 제한, Drive 권한 설치와 패키지 관리 설명과 결과 기록이 분리되기 쉽다

이 표에서 중요한 것은 “어느 것이 항상 좋은가”가 아닙니다. 학습 목적과 실행 목적이 다르면 적합한 환경도 달라집니다.

Colab은 시작 장벽을 낮춘다

Colab의 큰 장점은 시작 장벽이 낮다는 점입니다. 개인 PC에 Python, Jupyter, NumPy, pandas를 직접 설치하기 전에 브라우저에서 코드를 실행해 볼 수 있습니다.

이 파트의 초반 실습처럼 작은 수학 계산, 리스트와 딕셔너리 예제, 간단한 NumPy 계산을 확인할 때는 Colab이 충분할 수 있습니다.

Colab이 유용한 상황은 다음과 같습니다.

  • Python을 아직 설치하지 않았다.
  • 다른 컴퓨터에서도 같은 노트북을 열어 보고 싶다.
  • 코드, 설명, 결과를 링크로 공유하고 싶다.
  • 작은 데이터로 개념을 확인하고 싶다.
  • GPU나 TPU 같은 가속 환경을 잠깐 실험하고 싶다.

하지만 Colab은 외부 서비스입니다. 무료 자원은 보장되거나 무제한이 아니며, 사용량 제한과 런타임 종료 조건은 바뀔 수 있습니다. Colab FAQ도 사용량 제한, 유휴 종료, 최대 런타임, GPU 종류 같은 요소가 시간에 따라 달라질 수 있다고 설명합니다.

따라서 Colab은 “항상 유지되는 내 컴퓨터”가 아니라, 학습과 실험을 빠르게 시작하는 원격 작업 공간으로 보는 편이 안전합니다.

로컬 Jupyter는 내 환경에서 노트북을 실행한다

로컬 Jupyter는 내 컴퓨터나 내가 관리하는 서버에서 Jupyter Notebook 또는 JupyterLab을 실행하는 방식입니다.

장점은 파일과 환경을 직접 통제할 수 있다는 점입니다.

  • 내 PC 폴더의 파일을 직접 읽고 쓸 수 있다.
  • 가상환경(virtual environment)을 직접 선택할 수 있다.
  • 패키지 버전을 프로젝트에 맞게 관리할 수 있다.
  • 인터넷 연결이나 외부 서비스 정책에 덜 의존할 수 있다.

대신 준비해야 할 것이 늘어납니다.

  • Python이 설치되어 있어야 한다.
  • Jupyter 관련 패키지를 설치해야 할 수 있다.
  • 프로젝트별 가상환경을 관리해야 한다.
  • 다른 컴퓨터에서 재현하려면 의존성(dependency)을 기록해야 한다.

그래서 여기서는 초반에는 Colab으로 실행 장벽을 낮추고, 이후 로컬 설치와 가상환경이 필요한 시점은 Part 2 Chapter 7 Section 7에서 따로 다룹니다.

로컬 스크립트는 반복 실행과 재사용에 유리하다

노트북은 학습 기록에 좋지만, 모든 코드를 노트북에만 남기면 나중에 재사용이 어려울 수 있습니다.

예를 들어 데이터 파일을 매일 읽어서 같은 처리를 반복하거나, 여러 프로젝트에서 같은 함수를 재사용해야 한다면 .py 파일이 더 자연스럽습니다.

문제 상황: 노트북에서 검증한 계산을 나중에 반복 재사용할 함수로 옮기고 싶습니다. 입력(input): 숫자 목록을 받아 평균을 반환하는 함수 정의입니다. 기대 출력(output): 출력은 없지만 재사용 가능한 함수 형태가 만들어집니다. 확인할 개념: 반복 실행과 재사용이 필요해지면 노트북 코드가 .py 함수로 이동할 수 있음을 봅니다.

1
2
3
# 실행 환경에 따라 함수, 패키지, 파일 경로가 어떻게 달라지는지 확인하는 예제입니다.
def mean(values):
    return sum(values) / len(values)

이런 함수는 노트북에서 먼저 실험할 수 있습니다. 하지만 반복해서 쓰게 되면 stats_utils.py 같은 파일로 옮기는 편이 좋을 수 있습니다.

여기서는 다음 순서가 자연스럽습니다.

  1. 노트북에서 작은 예제로 이해한다.
  2. 코드가 길어지면 함수로 묶는다.
  3. 반복해서 쓰게 되면 .py 파일로 분리한다.
  4. 다른 컴퓨터에서 실행해야 하면 의존성과 실행 방법을 기록한다.

노트북과 스크립트는 경쟁 관계가 아닙니다. 노트북은 탐색과 설명에 강하고, 스크립트는 반복 실행과 재사용에 강합니다.

공유할 때는 무엇이 공유되는지 확인한다

Colab FAQ는 노트북을 공유하면 텍스트, 코드, 출력, 댓글 같은 노트북의 전체 내용이 공유된다고 설명합니다. 반면 사용 중인 가상 머신, 실행 중에 준비한 파일과 라이브러리 상태는 그대로 공유되지 않는다고 설명합니다.

이 차이는 매우 중요합니다.

공유되는 것 공유되지 않을 수 있는 것
노트북의 설명 셀 런타임 안의 임시 파일
코드 셀 직접 설치한 패키지 상태
저장된 출력 현재 메모리 변수
댓글 또는 문서 내용 개인 계정의 Drive 파일 권한

그래서 공유할 노트북에는 필요한 준비 과정을 문서 안에 남겨야 합니다.

예를 들어 다음 내용을 앞쪽 셀에 둡니다.

문제 상황: 다른 사람이 Colab 노트북을 다시 실행할 때 필요한 패키지를 먼저 설치하게 하고 싶습니다. 입력(input): numpy 설치를 위한 %pip 명령입니다. 기대 출력(output): 현재 커널에 numpy가 설치됩니다. 확인할 개념: 공유 노트북은 필요한 준비 과정을 앞쪽 셀에 남겨야 재실행이 쉬워집니다.

# 실행 환경에 따라 함수, 패키지, 파일 경로가 어떻게 달라지는지 확인하는 예제입니다.
%pip install numpy

그리고 코드에서 필요한 import를 명확히 둡니다.

문제 상황: 설치 뒤 실제 코드가 어떤 패키지를 쓰는지 분명히 보여 주고 싶습니다. 입력(input): numpynp 이름으로 import하는 코드입니다. 기대 출력(output): 출력은 없지만 뒤 셀에서 np를 사용할 준비가 됩니다. 확인할 개념: 설치 셀과 import 셀을 분리해 두면 실행 환경 의존성이 더 잘 드러납니다.

# 실행 환경에 따라 함수, 패키지, 파일 경로가 어떻게 달라지는지 확인하는 예제입니다.
import numpy as np

파일이 필요하다면 파일을 어디에서 받아야 하는지도 적어야 합니다. 내 런타임에는 파일이 있어도, 다른 사람의 런타임에는 없을 수 있기 때문입니다.

파일 접근은 환경마다 다르다

같은 코드라도 파일 경로(path)는 실행 환경에 따라 달라질 수 있습니다.

예를 들어 로컬 PC에서는 현재 프로젝트 폴더에 data/scores.csv가 있을 수 있습니다.

문제 상황: 파일을 읽는 코드가 환경에 따라 왜 달라지는지 가장 단순한 경로 예시로 보고 싶습니다. 입력(input): 로컬 프로젝트 기준 파일 경로 문자열입니다. 기대 출력(output): 출력은 없지만 코드가 어떤 파일을 찾으려는지 드러납니다. 확인할 개념: 파일 문제는 코드 문법보다 실행 환경과 경로 차이에서 생길 수 있다는 점을 봅니다.

# 실행 환경에 따라 함수, 패키지, 파일 경로가 어떻게 달라지는지 확인하는 예제입니다.
path = "data/scores.csv"

Colab에서는 같은 파일이 런타임에 없을 수 있습니다. 파일을 업로드했는지, Google Drive를 마운트했는지, GitHub에서 내려받았는지에 따라 경로가 달라집니다.

여기서는 다음 질문을 먼저 확인합니다.

질문 이유
이 코드는 어디에서 실행되는가? 로컬 PC인지 Colab인지에 따라 파일 위치가 다르다
이 파일은 어디에 있는가? 내 PC 폴더, Colab VM, Google Drive가 다르다
이 파일은 다시 실행해도 남아 있는가? 임시 런타임 파일은 사라질 수 있다
다른 사람도 접근할 수 있는가? 개인 Drive 권한은 공유되지 않을 수 있다

파일 문제는 코드 오류처럼 보이지만, 실제로는 실행 환경 문제인 경우가 많습니다.

어떤 환경을 먼저 선택할까

이 파트의 실습을 따라갈 때는 다음 기준으로 시작하면 됩니다.

상황 먼저 선택할 환경
Python 설치가 아직 부담스럽다 Colab
작은 수학 계산과 표 출력을 확인한다 Colab 또는 로컬 Jupyter
내 PC의 파일을 많이 읽고 쓴다 로컬 Jupyter 또는 로컬 스크립트
같은 코드를 반복 실행하거나 자동화한다 로컬 스크립트
다른 사람에게 설명과 결과를 함께 보여 준다 Colab 또는 Jupyter 노트북
패키지 버전을 엄격히 고정해야 한다 로컬 가상환경

처음부터 완벽한 환경을 고르려고 할 필요는 없습니다. 중요한 것은 실습이 막혔을 때 “코드 문제인지, 패키지 문제인지, 파일 위치 문제인지, 런타임 문제인지”를 나누어 보는 것입니다.

사례 및 예시

사례 1. 같은 CSV 파일인데 Colab에서는 왜 안 열릴까

학습자가 집에서는 로컬 Jupyter로 data/scores.csv를 잘 읽었는데, 다음 날 Colab에서 같은 코드를 실행하자 파일을 찾을 수 없다는 오류가 났다고 해 보겠습니다. 사람 입장에서는 어제 되던 코드라서 코드 자체가 잘못된 것처럼 느껴질 수 있습니다.

하지만 실제 문제는 코드보다 실행 위치일 가능성이 큽니다. 로컬 Jupyter에서는 내 컴퓨터 폴더가 바로 보이지만, Colab에서는 원격 런타임이 새로 열리고 그 안에는 같은 파일이 없을 수 있습니다. Drive를 연결했는지, 파일을 업로드했는지, 다운로드 셀이 있는지에 따라 결과가 달라집니다.

이 사례는 Jupyter, Colab, 로컬 실행을 기능 이름이 아니라 실행 환경의 차이로 읽게 해 줍니다. 같은 .ipynb 문서라도 어디에서 실행되는지에 따라 파일 경로, 설치 상태, 유지되는 런타임이 달라질 수 있습니다.

그래서 실습 문서를 읽을 때는 먼저 이 코드는 어디에서 실행되는가, 이 파일은 어디에 있는가, 다른 사람이 다시 실행해도 같은 파일을 볼 수 있는가를 확인해야 합니다. 환경 구분이 선행되어야 오류 원인도 더 빨리 좁힐 수 있습니다.

체크리스트

  • Jupyter와 Colab이 완전히 같은 층위의 말이 아니라는 점을 설명할 수 있다.
  • 노트북 파일(.ipynb)과 런타임(runtime)을 구분할 수 있다.
  • Colab에서 코드가 원격 가상 머신에서 실행될 수 있음을 설명할 수 있다.
  • 공유된 노트북이 런타임 파일과 설치 상태까지 공유하는 것은 아님을 설명할 수 있다.
  • 로컬 Jupyter와 로컬 스크립트의 장단점을 구분할 수 있다.
  • 파일 경로 문제가 실행 환경 문제일 수 있음을 설명할 수 있다.
  • 같은 .ipynb 파일이라도 실행 위치와 런타임에 따라 파일, 패키지, 공유 조건이 달라질 수 있음을 설명할 수 있다.

출처와 참고 자료

  • Google, Google Colab FAQ, Google Colab, 확인 날짜: 2026-07-20. Colab에서 공유되는 노트북 내용과 공유되지 않는 런타임·VM·파일·설치 상태를 구분하는 근거로 사용했다.
  • Project Jupyter, Architecture, Jupyter Documentation 4.1.1 alpha, 확인 날짜: 2026-07-20. Jupyter의 문서, 인터페이스, 커널 구성 요소를 실행 위치와 런타임 구분의 배경으로 사용했다.
  • Jupyter Notebook Team, The Jupyter Notebook, Jupyter Notebook documentation, 확인 날짜: 2026-07-20. 로컬 노트북 서버와 브라우저 기반 노트북 사용 흐름을 설명하는 근거로 사용했다.