콘텐츠로 이동

P2-10.1 노트북(notebook)은 왜 학습에 유용한가

Section ID: P2-10.1 Version: v2026.07.20

Part 2 Chapter 7에서는 Python을 어디에서 실행하는지, 터미널(terminal), 셸(shell), 인터프리터(interpreter), 스크립트(script), 가상환경(virtual environment)을 나누어 봤습니다. Part 2 Chapter 8과 Chapter 9에서는 Python 문법과 자료구조를 작은 예제로 복구했습니다.

이제 Jupyter Notebook이나 Google Colab 같은 노트북(notebook) 환경을 따로 봅니다. 여기서 말하는 노트북은 종이 공책이 아니라, 코드(code), 실행 결과(output), 설명(markdown)을 한 문서 안에 함께 남기는 계산 문서(computational notebook)입니다.

노트북은 AI 학습에서 특히 자주 등장합니다. 수식을 코드로 바꾸어 확인하고, 데이터 표를 출력하고, 차트를 그려 보고, 그 옆에 해석을 적을 수 있기 때문입니다.

여기서는 노트북(notebook), 코드 셀(code cell), 마크다운 셀(markdown cell), 출력(output)의 기본 구분을 설명합니다. Chapter 7이 어디서 실행하는지를, Chapter 8~9가 무엇을 어떤 문장으로 적는지를 다뤘다면, 여기서는 그 실행과 계산을 어떻게 한 문서 안에 남기고 다시 읽을 것인가를 다룹니다. 노트북은 새 실행 환경 이름이라기보다, 이미 실행한 코드와 출력을 학습 기록으로 묶는 형식으로 읽는 편이 정확합니다. 뒤 절에서 이 개념들이 다시 나올 때는 개념사전도 함께 기준점으로 삼습니다.

Part 2 흐름에서 지금 장을 읽을 때는 다음 최소선을 먼저 잡습니다.

지금 여기서 먼저 잡을 최소선 바로 다음 장으로 넘겨도 되는 것
노트북은 코드, 출력, 설명을 한 문서 안에 남기는 기록 형식이라는 점 Colab과 Jupyter의 세부 차이
코드 셀, 마크다운 셀, 출력이 각각 다른 역할을 가진다는 점 런타임과 파일 접근의 자세한 구분
노트북은 학습과 탐색에 강하지만 스크립트를 완전히 대신하지는 않는다는 점 재실행 가능한 기록으로 정리하는 구체 습관
용어 이 절에서 먼저 잡을 뜻
노트북(notebook) 코드, 설명, 출력이 함께 들어 있는 계산 문서입니다.
코드 셀(code cell) 실제 Python 코드를 실행하는 블록입니다.
마크다운 셀(markdown cell) 질문, 설명, 해석을 글로 남기는 블록입니다.
출력(output) 코드 실행 결과로 보이는 값, 표, 차트, 오류 메시지입니다.
계산 문서(computational notebook) 계산과 설명을 한 문서 안에 함께 남기는 형식을 가리키는 말입니다.

노트북은 새 문법보다 계산과 해석을 함께 남기는 자리로 잡으면 됩니다. 실행 위치와 재현성은 P2-10.2와 P2-10.3에서 더 구체적으로 다룹니다.

핵심 기준: 노트북(notebook)은 왜 학습에 유용한가

  • 노트북(notebook)을 코드, 설명, 출력이 함께 있는 계산 문서로 설명할 수 있습니다.
  • 코드 셀(code cell)과 마크다운 셀(markdown cell)의 역할을 구분할 수 있습니다.
  • 노트북이 실험과 학습 기록에 유용한 이유를 설명할 수 있습니다.
  • 셀 실행 순서와 숨은 상태(hidden state)가 노트북의 주의점임을 설명할 수 있습니다.
  • 노트북을 학습 초안으로 쓰되, 반복 재사용할 코드는 스크립트나 모듈로 분리해야 할 수 있음을 설명할 수 있습니다.

세 가지 기준

기준 왜 중요한가 이 절에서 필요한 이해 수준
노트북이 무엇인가 노트북을 새 문법이 아니라 계산과 해석을 함께 남기는 문서로 읽게 해 줍니다. 코드, 설명, 실행 결과를 함께 남기는 문서형 실습 공간으로 이해합니다.
왜 학습에 유용한가 작은 단위 실습과 즉시 확인이라는 장점을 현재 질문과 연결하게 해 줍니다. 셀 단위로 실행하고 바로 결과를 확인할 수 있다는 점을 잡습니다.
가장 조심할 점은 무엇인가 편의성과 함께 재실행 위험을 함께 보게 해 줍니다. 셀 실행 순서가 뒤섞이면 결과 해석이 틀어질 수 있음을 이해합니다.

노트북은 코드와 설명이 함께 있는 문서다

Project Jupyter 공식 문서는 노트북을 코드, 평문 설명, 데이터, 시각화, 상호작용 요소를 결합할 수 있는 공유 가능한 문서로 설명합니다. 또한 Jupyter 아키텍처 문서는 노트북이 코드와 출력, 마크다운 노트를 함께 저장하는 편집 가능한 문서라고 설명합니다.

여기서는 노트북을 코드를 실행하는 문서이면서 동시에 실행 결과와 설명을 함께 남기는 학습 기록으로 이해합니다.

일반적인 Python 스크립트 파일은 보통 코드 중심입니다.

문제 상황: 스크립트 파일에서는 계산 코드만 있을 때 무엇이 실행되는지 간단히 보고 싶습니다. 입력(input): 학생 점수 리스트와 평균 계산식입니다. 기대 출력(output): 평균 점수가 print로 출력됩니다. 확인할 개념: 스크립트는 설명보다 코드 실행 자체가 앞에 오는 경우가 많다는 점을 봅니다.

1
2
3
4
# 노트북 셀에서 점수 데이터와 계산 결과가 어떻게 누적되는지 확인하는 예제입니다.
scores = [82, 75, 45]
average = sum(scores) / len(scores)
print(average)

반면 노트북에서는 같은 계산 앞뒤에 설명과 결과를 함께 둘 수 있습니다. 예를 들어 마크다운 셀에 이번 셀에서는 세 학생의 평균 점수를 계산한다라고 적어 둘 수 있습니다.

문제 상황: 노트북에서는 계산 결과를 변수에 저장하지 않고 셀 출력으로 바로 확인할 수 있습니다. 입력(input): 학생 점수 리스트와 평균 계산식입니다. 기대 출력(output): 셀 마지막 줄의 average 값이 바로 출력됩니다. 확인할 개념: 노트북은 코드 앞뒤 설명과 출력이 한 문서 안에서 함께 읽힌다는 점을 확인합니다.

1
2
3
4
# 노트북 셀에서 점수 데이터와 계산 결과가 어떻게 누적되는지 확인하는 예제입니다.
scores = [82, 75, 45]
average = sum(scores) / len(scores)
average

출력 결과를 보면 평균이 약 67.3이라는 점을 바로 확인할 수 있습니다.

이 차이는 작아 보이지만, 학습에서는 중요합니다. “무엇을 계산했는가”, “왜 계산했는가”, “결과를 어떻게 해석했는가”가 한 문서 안에 남기 때문입니다.

셀(cell)은 노트북의 기본 단위다

노트북은 보통 셀(cell) 단위로 구성됩니다. 셀은 문서 안의 작은 블록입니다.

셀 종류 영어 역할
코드 셀 code cell Python 코드 등을 실행한다
마크다운 셀 markdown cell 설명, 제목, 목록, 수식, 링크를 적는다
출력 output 코드 실행 결과, 표, 차트, 오류 메시지를 보여 준다

흐름은 다음처럼 볼 수 있습니다.

flowchart TD
  A["마크다운 셀<br/>질문과 목표를 적기"]
  B["코드 셀<br/>작은 계산 실행"]
  C["출력<br/>결과 확인"]
  D["마크다운 셀<br/>해석과 다음 질문 적기"]

  A --> B --> C --> D

노트북 학습의 핵심은 질문을 적고, 코드를 실행하고, 결과를 보고, 해석을 남기는 네 단계를 짧게 반복하는 데 있습니다.

이 방식은 AI 수학과 Python을 다시 공부할 때 유용합니다. 예를 들어 시그마(sigma), 평균(mean), 분산(variance), 그래디언트(gradient)를 배울 때 수식만 읽으면 추상적으로 느껴질 수 있습니다. 노트북에서는 바로 아래 셀에서 숫자로 확인할 수 있습니다.

노트북은 학습 흔적을 남기기 좋다

노트북이 학습에 유용한 첫 번째 이유는 생각의 흔적을 남기기 쉽다는 점입니다.

예를 들어 평균을 배울 때 단순히 최종 코드만 남기면 나중에 왜 이 계산을 했는지 잊기 쉽습니다.

문제 상황: 평균 계산 코드만 남기면 질문과 해석이 빠진 상태가 어떤 모습인지 보고 싶습니다. 입력(input): 학생 점수 리스트와 평균 계산식 한 줄입니다. 기대 출력(output): 평균값이 계산되지만, 왜 계산했는지 설명은 코드에 남지 않습니다. 확인할 개념: 결과만 있는 코드와 질문·해석이 함께 있는 노트북 기록은 학습 효과가 다르다는 점을 봅니다.

1
2
3
# 노트북 셀에서 점수 데이터와 계산 결과가 어떻게 누적되는지 확인하는 예제입니다.
scores = [82, 75, 45]
sum(scores) / len(scores)

노트북에서는 계산 앞에 세 학생의 점수를 하나의 대표값으로 요약하면 무엇을 볼 수 있을까? 같은 질문을 남길 수 있습니다.

그리고 계산 뒤에는 평균은 전체 점수의 중심을 보는 데 유용하지만, 45처럼 낮은 값이 섞여 있다는 사실은 평균만으로 충분히 드러나지 않는다 같은 해석을 붙일 수 있습니다.

이런 기록은 Part 3의 P3-5 일반화(generalization), P3-6 평가 지표(metric), P3-10.2 잔차(residual)와 오차(error)를 다시 볼 때 도움이 됩니다.

노트북은 실험을 작게 쪼개기 좋다

두 번째 이유는 코드를 셀 단위로 나누어 실행할 수 있다는 점입니다.

예를 들어 다음 흐름을 생각해 볼 수 있습니다.

flowchart TB
  A["1. 데이터 준비"]
  B["2. 요약값 계산"]
  C["3. 차트 그리기"]
  D["4. 해석 적기"]

  A --> B --> C --> D

스크립트에서도 같은 일을 할 수 있지만, 한 번에 전체 파일을 실행하는 것보다 한 셀씩 확인하는 방식이 부담이 덜할 수 있습니다.

작은 실습은 다음처럼 나눌 수 있습니다.

첫 번째 셀은 데이터를 준비합니다.

문제 상황: 노트북 실습을 작은 단계로 나눌 때 먼저 데이터 준비 셀을 두고 싶습니다. 입력(input): 다섯 개 점수를 담은 리스트입니다. 기대 출력(output): 출력은 없지만 이후 셀에서 사용할 데이터가 준비됩니다. 확인할 개념: 노트북에서는 데이터 준비를 별도 셀로 분리하면 뒤 단계 의존성이 더 잘 보입니다.

# 노트북 셀에서 점수 데이터와 계산 결과가 어떻게 누적되는지 확인하는 예제입니다.
scores = [82, 75, 45, 90, 61]

두 번째 셀은 요약값을 계산합니다.

문제 상황: 준비한 데이터에서 평균만 따로 계산해 중간 결과를 확인하고 싶습니다. 입력(input): 앞 셀에서 만든 scores 리스트입니다. 기대 출력(output): 평균 점수 mean_score가 셀 출력으로 표시됩니다. 확인할 개념: 한 셀에서 한 계산만 수행하면 어느 단계에서 값이 바뀌는지 읽기 쉬워집니다.

1
2
3
# 노트북 셀에서 점수 데이터와 계산 결과가 어떻게 누적되는지 확인하는 예제입니다.
mean_score = sum(scores) / len(scores)
mean_score

세 번째 셀은 조건을 바꾸어 봅니다.

문제 상황: 같은 데이터에서 조건을 바꾸면 어떤 값들이 남는지 바로 비교하고 싶습니다. 입력(input): scores 리스트와 60점 이상 조건입니다. 기대 출력(output): 통과 점수만 모인 리스트가 출력됩니다. 확인할 개념: 노트북은 조건을 하나씩 바꾸며 결과 차이를 빠르게 확인하기 좋다는 점을 봅니다.

1
2
3
# 노트북 셀에서 점수 데이터와 계산 결과가 어떻게 누적되는지 확인하는 예제입니다.
passed = [score for score in scores if score >= 60]
passed

이렇게 나누면 “어느 단계에서 무엇이 바뀌었는가”를 보기 쉽습니다.

결과(output)를 바로 볼 수 있다는 점이 강점이다

노트북은 출력(output)을 코드 바로 아래에 보여 줍니다. 숫자, 표, 차트, 오류 메시지가 코드와 가까운 곳에 남습니다.

이 점은 AI 학습에서 중요합니다.

학습 장면 노트북에서 확인하기 좋은 것
수식 복구 작은 숫자 계산 결과
통계 복구 평균, 분산, 표본 계산 결과
데이터 확인 표, 행 개수, 결측값
시각화 선 그래프, 산점도, 히스토그램
모델 실험 손실 값, 평가 지표, 예측 결과

결과를 바로 볼 수 있다는 말은 “항상 올바른 결과가 나온다”는 뜻이 아닙니다. 오히려 결과를 바로 보고 값이 예상보다 큰가, 표의 행 개수가 맞는가, 차트가 내가 생각한 모양인가, 오류 메시지가 어느 셀에서 생겼는가 같은 질문을 즉시 던질 수 있다는 점이 중요합니다.

노트북은 이 질문을 반복하기 좋은 환경입니다.

노트북의 주의점: 셀 실행 순서

노트북은 편하지만, 주의할 점도 있습니다. 가장 중요한 것은 셀 실행 순서(execution order)입니다.

다음 예를 봅니다.

문제 상황: 뒤 셀에서 쓸 변수를 앞 셀에서 먼저 만든다고 가정합니다. 입력(input): 변수 x10을 저장하는 코드입니다. 기대 출력(output): 출력은 없지만 다음 셀이 의존할 상태가 런타임에 생깁니다. 확인할 개념: 노트북 셀은 문서에 보이는 코드 이상으로 런타임 상태를 만든다는 점을 봅니다.

# 노트북 셀에서 점수 데이터와 계산 결과가 어떻게 누적되는지 확인하는 예제입니다.
x = 10

다른 셀에서 다음 코드를 실행합니다.

문제 상황: 앞 셀에서 만든 변수를 뒤 셀에서 바로 사용해 계산합니다. 입력(input): 이미 정의되었다고 가정한 변수 x입니다. 기대 출력(output): 15가 계산됩니다. 확인할 개념: 앞 셀이 실행되지 않았거나 순서가 꼬이면 뒤 셀 결과도 달라질 수 있다는 점을 확인합니다.

# 노트북 셀에서 점수 데이터와 계산 결과가 어떻게 누적되는지 확인하는 예제입니다.
x + 5

이 코드는 앞에서 x가 만들어져 있어야 실행됩니다. 그런데 중간 셀을 건너뛰거나, 예전에 실행한 셀의 값이 남아 있으면 현재 문서에 보이는 순서와 실제 실행 상태가 달라질 수 있습니다.

여기서는 다음 습관이 중요합니다.

확인할 것 이유
위에서 아래로 다시 실행해 보기 숨은 상태를 줄인다
필요한 import를 앞쪽에 모으기 어떤 패키지가 필요한지 보인다
데이터 준비 셀을 분명히 두기 뒤 셀이 무엇에 의존하는지 보인다
결과 해석을 코드 바로 아래에 적기 나중에 읽을 때 맥락이 남는다

노트북은 자유롭게 실행할 수 있다는 장점 때문에, 오히려 실행 순서가 흐트러질 수 있습니다. 이 점은 스크립트보다 조심해야 합니다.

사례 및 예시

사례 1. 평균과 분산을 다시 확인하는 학습 노트

통계 개념을 다시 익히는 사람이 평균(mean)분산(variance)을 한 번에 이해하려 한다고 해 보겠습니다. 스크립트 파일 하나에 코드를 길게 적으면 계산은 되지만, 왜 그 계산을 했는지와 결과를 어떻게 읽어야 하는지가 금방 흐려질 수 있습니다.

노트북에서는 먼저 점수 다섯 개를 대표값 하나로 요약하면 무엇이 보이는가 같은 질문을 적고, 다음 셀에서 평균을 계산하고, 바로 아래에서 평균만으로는 낮은 점수 하나가 섞인 상황이 충분히 드러나지 않는다는 해석을 붙일 수 있습니다. 이어서 분산 계산 셀을 두면 같은 데이터에서 퍼짐까지 비교할 수 있습니다.

이 흐름은 노트북이 단순 실행기가 아니라는 점을 보여 줍니다. 사람은 질문, 계산, 출력, 해석을 한 문서에 묶어 두고, 나중에 다시 열었을 때 무엇을 확인했는지 바로 복구할 수 있습니다.

동시에 이 사례는 노트북의 주의점도 드러냅니다. 평균을 바꾸는 셀만 다시 실행하고 해석 셀을 고치지 않으면 문서에 보이는 설명과 실제 계산 결과가 어긋날 수 있습니다. 그래서 노트북은 실행 결과를 곁들인 문서이면서도 다시 실행해 검증해야 하는 기록으로 다뤄야 합니다.

노트북은 스크립트를 대체하지 않는다

노트북은 학습과 탐색에 좋지만 모든 상황에 적합한 것은 아닙니다.

반복해서 실행해야 하는 코드, 다른 프로젝트에서 재사용할 코드, 자동화해야 하는 코드는 .py 스크립트나 모듈(module)로 분리하는 편이 좋을 수 있습니다.

상황 노트북이 좋은가 스크립트가 좋은가
처음 개념을 실험한다 좋다 가능하지만 설명을 따로 남겨야 한다
데이터와 차트를 보며 해석한다 좋다 가능하지만 중간 결과 확인이 불편할 수 있다
같은 작업을 매일 자동 실행한다 불리할 수 있다 좋다
함수를 여러 프로젝트에서 재사용한다 불리할 수 있다 좋다
문서와 실험 기록을 함께 공유한다 좋다 별도 문서가 필요하다

따라서 여기서는 노트북을 학습 기록과 작은 실험의 도구로 봅니다. 나중에 코드가 길어지고 반복 실행이 필요해지면 스크립트와 패키지 구조로 옮기는 판단이 필요합니다.

AI 재학습에서 노트북을 쓰는 방법

이 문서의 독자에게 노트북은 “정답을 제출하는 파일”보다 “이해를 복구하는 작업장”에 가깝습니다.

다음 순서로 사용하면 좋습니다.

  1. 먼저 질문을 마크다운 셀에 적습니다.
  2. 작은 데이터나 숫자 예제를 코드 셀에 적습니다.
  3. 결과를 출력합니다.
  4. 결과가 예상과 맞는지 짧게 해석합니다.
  5. 셀을 위에서 아래로 다시 실행해 봅니다.

예를 들어 확률과 통계를 공부할 때는 표본 평균은 데이터가 바뀌면 얼마나 달라질까? 같은 질문으로 시작할 수 있습니다.

문제 상황: 서로 다른 두 표본의 평균을 한 노트북 셀에서 비교하고 싶습니다. 입력(input): 값 구성이 다른 두 표본 리스트 sample_a, sample_b입니다. 기대 출력(output): 두 표본 평균이 함께 출력됩니다. 확인할 개념: 노트북은 질문, 계산, 해석을 붙여 표본 비교 실험을 작게 남기기 좋다는 점을 봅니다.

1
2
3
4
5
6
7
8
# 노트북 셀에서 점수 데이터와 계산 결과가 어떻게 누적되는지 확인하는 예제입니다.
sample_a = [10, 12, 13, 11, 14]
sample_b = [8, 16, 9, 15, 12]

mean_a = sum(sample_a) / len(sample_a)
mean_b = sum(sample_b) / len(sample_b)

mean_a, mean_b

이어서 두 표본은 값의 구성이 다르지만 평균은 비슷할 수 있다. 평균만으로 분포의 차이를 모두 알 수는 없다는 해석을 붙이면 계산 결과가 기록으로 남습니다.

이런 방식은 이후 머신러닝 실습에서도 계속 쓰입니다. 데이터 준비, 모델 학습, 평가, 해석을 한 번에 완성하려고 하지 말고, 셀 단위로 작은 질문을 확인합니다.

체크리스트

  • 노트북(notebook)을 코드, 설명, 출력이 함께 있는 계산 문서로 설명할 수 있다.
  • 코드 셀(code cell)과 마크다운 셀(markdown cell)을 구분할 수 있다.
  • 노트북이 AI 수학과 Python 실습 기록에 유용한 이유를 설명할 수 있다.
  • 셀 실행 순서가 결과에 영향을 줄 수 있음을 설명할 수 있다.
  • 노트북이 스크립트를 완전히 대체하지 않는다는 점을 설명할 수 있다.
  • 학습 노트북에서 질문, 코드, 출력, 해석을 함께 남길 수 있다.
  • 노트북을 실행 도구이면서 학습 기록 문서로 설명할 수 있다.

출처와 참고 자료

  • Project Jupyter, Project Jupyter Documentation, Jupyter Documentation 4.1.1 alpha, 확인 날짜: 2026-07-20. 노트북이 코드, 설명, 데이터, 시각화, 상호작용을 함께 담는 문서라는 설명 확인에 사용했다.
  • Project Jupyter, Architecture, Jupyter Documentation 4.1.1 alpha, 확인 날짜: 2026-07-20. 노트북 문서, 사용자 인터페이스, 커널 등 구성 요소를 구분하는 배경 근거로 사용했다.
  • Google, Welcome to Colab, Google Colab, 확인 날짜: 2026-07-20. 브라우저 기반 노트북 환경에서 코드와 설명을 함께 실행·기록하는 예시 확인에 사용했다.