콘텐츠로 이동

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

Section ID: P2-10.2 Version: v2026.09.15

도구와 실행 위치

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

Jupyter는 도구와 생태계, Colab은 서비스, 로컬 실행은 실행 위치를 나타냅니다. 아래 Colab 설명은 Google이 관리하는 원격 런타임을 사용하는 경우를 기준으로 합니다. Colab 화면에 로컬 런타임을 연결하는 방식도 있습니다.

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

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

문서·런타임·파일

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

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

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

구분 무엇인가 예
노트북 파일 코드, 설명, 일부 출력이 저장된 문서 practice.ipynb
커널(kernel) 코드를 실행하고 변수를 유지하는 프로세스 노트북에 연결된 Python 커널
실행 환경(runtime) 커널이 사용하는 Python·패키지·컴퓨팅 자원 Colab VM 안의 환경, 로컬 가상환경
파일 시스템 코드가 읽고 쓰는 파일 위치 내 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과 커널을 실행하는 방식입니다. 서버에서 실행하는 Jupyter에 접속했다면 파일 접근도 그 서버를 기준으로 합니다.

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

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

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

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

브라우저로 노트북을 보고 있어도 실제 Python이 로컬 PC에서 실행되는지 서버에서 실행되는지에 따라 사용할 파일과 패키지가 달라집니다.

설치한 패키지를 못 찾을 때

터미널에서 NumPy 설치가 성공했어도 노트북의 import numpy는 실패할 수 있습니다. 터미널의 Python과 노트북 커널의 Python이 다른 환경이면 설치된 패키지도 다르기 때문입니다. 다음 셀은 현재 커널이 사용하는 실행 파일과 Python 버전을 보여 줍니다.

1
2
3
4
import sys

print("Python executable:", sys.executable)
print("Python version:", sys.version.split()[0])

실행 파일의 경로는 컴퓨터마다 다릅니다. 로컬에서 예상한 프로젝트 가상환경과 다르면 노트북의 커널 선택을 확인합니다. 현재 커널에 NumPy를 설치하려면 노트북 코드 셀에서 다음 명령을 실행합니다.

IPython · 노트북 코드 셀
%pip install numpy

설치가 끝나도 import numpy as np는 별도로 실행해야 합니다. 이미 불러온 패키지를 업그레이드했다면 커널을 재시작하고 준비 셀부터 다시 실행해야 할 수 있습니다. 설치 문제는 실행 환경으로, 파일을 찾지 못하는 문제는 작업 폴더와 경로로 나누어 확인합니다.

함수를 모듈로 분리하기

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

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

빈 목록이 아닌 점수 목록의 평균을 반환하는 함수를 stats_utils.py에 저장합니다. 파일을 저장하는 것만으로 함수가 실행되지는 않습니다.

def mean(values):
    return sum(values) / len(values)

이 파일이 Python이 찾을 수 있는 현재 작업 폴더에 있다면 노트북이나 다른 스크립트에서 가져와 사용할 수 있습니다. 아래 출력은 67.33333333333333입니다.

1
2
3
from stats_utils import mean

print(mean([82, 75, 45]))

노트북은 입력과 해석을 남기고, 모듈은 여러 문서에서 같은 계산을 재사용하게 합니다. 한 번 가져온 모듈은 메모리에 남으므로 .py 파일만 수정하고 같은 import를 반복해도 변경이 바로 반영되지 않을 수 있습니다. 이 예제에서는 커널을 재시작하고 import 셀부터 다시 실행해 수정된 함수를 확인합니다.

공유되는 문서와 준비할 환경

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

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

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

앞에서 설명한 설치 셀 다음에는 패키지를 불러오고 버전을 기록하는 셀을 둡니다.

다음 셀은 NumPy 버전과 평균 67.33333333333333을 출력합니다. 버전은 실행 환경에 따라 달라집니다.

1
2
3
4
import numpy as np

print(np.__version__)
print(np.mean([82, 75, 45]))

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

작업별 환경 선택

파일의 위치, 결과 기록 방식, 반복 실행 필요에 따라 환경을 고를 수 있습니다.

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

같은 오류라도 패키지가 없는 경우와 파일 경로가 틀린 경우는 해결 방법이 다릅니다. 실행 환경의 준비 상태를 함께 확인해야 합니다.

사례: 로컬에만 있는 CSV

내 PC의 project/data/scores.csv를 project 폴더에서 읽던 노트북을 Colab의 새 원격 런타임에서 열었다고 하겠습니다. 문서의 data/scores.csv라는 문자열은 옮겨졌지만, PC의 파일이 함께 전송된 것은 아닙니다.

다음 코드는 현재 작업 폴더와 파일을 찾을 전체 경로, 파일 존재 여부를 출력합니다. Path.cwd()는 코드가 실행되는 환경의 작업 폴더입니다.

1
2
3
4
5
6
from pathlib import Path

path = Path("data/scores.csv")
print("working directory:", Path.cwd())
print("resolved path:", path.resolve())
print("file exists:", path.is_file())

로컬 작업 폴더에 파일이 있으면 마지막 출력은 True입니다. 같은 상대 경로에 파일이 없는 새 환경에서는 False입니다. 그 상태에서 파일을 열면 FileNotFoundError가 발생합니다.

파일을 새 환경에 준비한 후에는 저장 위치와 코드의 경로를 맞춰야 합니다. 예를 들어 현재 작업 폴더 바로 아래에 scores.csv로 올렸다면 Path("scores.csv")로 조회해야 합니다. data/scores.csv를 유지하려면 data 폴더 안에 파일을 두어야 합니다.

다른 사람에게 노트북을 전달할 때도 입력 파일의 위치와 접근 권한, 필요한 패키지 설치 방법을 함께 남겨야 같은 계산을 다시 실행할 수 있습니다.

체크리스트

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

출처와 참고 자료

  • Google, Google Colab FAQ, Google Colab, 확인 날짜: 2026-09-15. Colab에서 공유되는 노트북 내용과 공유되지 않는 런타임·VM·파일·설치 상태를 구분하는 근거로 사용했다.
  • Project Jupyter, Architecture, Jupyter Documentation, 확인 날짜: 2026-09-15. Jupyter의 문서, 인터페이스, 커널 구성 요소를 실행 위치와 런타임 구분의 배경으로 사용했다.
  • Jupyter Notebook Team, The Jupyter Notebook, Jupyter Notebook documentation, 확인 날짜: 2026-07-20. 로컬 노트북 서버와 브라우저 기반 노트북 사용 흐름을 설명하는 근거로 사용했다.
  • Python Software Foundation, sys.executable, 확인 날짜: 2026-09-15. 현재 커널의 Python 실행 파일 확인 근거.
  • Python Software Foundation, Modules, 확인 날짜: 2026-09-15. 모듈 import와 한 세션 안의 재사용·캐시 동작 근거.
  • IPython, %pip, 확인 날짜: 2026-09-15. 현재 커널 환경에 패키지를 설치하는 명령의 근거.