Jupyter Notebook 참고 자료
필수 단축키 및 마법 명령어
Jupyter Notebook 생산성을 극대화하기 위해 필수적인 단축키, 마직기 명령어 및 워크플로우 팁을 활용해 보세요. 이는 데이터 과학 및 개발 경험을 획기적으로 개선할 것입니다.

Jupyter Notebook은 상호작용형 컴퓨팅, 데이터 분석 및 머신러닝 워크플로우에 대한 표준이 되었습니다. Python을 사용하여 데이터 과학을 수행하거나 AI 모델을 실험하거나 코드 프로토타입을 만들 때, Jupyter의 키보드 단축키와 마직기 명령어를 숙련하면 생산성이 크게 향상됩니다.
이 가이드는 Jupyter 사용자가 반드시 알아야 할 가장 필수적인 명령어와 단축키를 다룹니다. 기본 셀 네비게이션부터 워크플로우를 간소화하는 고급 마직기 명령어까지. Python 개발에 새로 시작하신 분이라면, Python 가이드도 함께 참조하시면 Jupyter 셀 내에서 원활하게 작동하는 Python 언어 구조를 이해하는 데 도움이 될 것입니다.
명령 모드와 편집 모드 이해
Jupyter Notebook은 키보드 단축키가 사용 가능한 두 가지 다른 모드에서 작동합니다:
- 명령 모드 (Esc를 눌러 활성화): 셀 생성, 삭제, 변환과 같은 셀 수준의 작업을 제어
- 편집 모드 (Enter를 눌러 활성화): 셀 내부의 콘텐츠를 편집
기억해야 할 가장 중요한 단축키는 명령 모드에서 H를 누르면 전체 키보드 단축키 도움말 대화상자가 표시됩니다. 특정 단축키를 잊었을 때의 빠른 참고 자료입니다.
필수 명령 모드 단축키
셀 이동 및 실행
Jupyter의 핵심 워크플로우는 셀을 효율적으로 실행하는 데 집중됩니다:
Shift + Enter: 현재 셀 실행 후 아래 셀 선택. 이는 코드를 순차적으로 실행하는 데 가장 자주 사용되는 단축키입니다.Ctrl + Enter: 현재 셀 실행 후 다음 셀로 이동하지 않음. 여러 번 다시 실행하려는 경우에 이상적입니다.Alt + Enter: 현재 셀 실행 후 아래에 새 셀 삽입. 자주 새 셀을 추가해야 하는 반복적인 개발에 이상적입니다.
셀 관리
노트북 구조를 효율적으로 관리하는 것은 깔끔하고 정리된 노트북을 유지하는 데 매우 중요합니다:
A: 현재 셀 위에 새 셀 삽입B: 현재 셀 아래에 새 셀 삽입D, D(D를 두 번 누름): 현재 셀 삭제. 주의가 필요합니다!Z: 마지막 셀 삭제 실행 취소. 중요한 셀을 실수로 삭제했을 때 구원이 됩니다.Shift + M: 선택된 셀 병합.Shift + J또는Shift + K를 사용하여 여러 셀을 선택한 후 병합합니다.
셀 유형 변환
문서화된 노트북을 만들기 위해 셀 유형을 빠르게 전환하는 것이 필수적입니다:
Y: 셀을 코드 유형으로 전환M: 셀을 마크다운 유형으로 전환R: 셀을 원시 유형으로 전환 (실행되지 않음, 메모에 유용)1부터6까지: 헤딩 레벨 1부터 6으로 전환하여 구조화된 문서화 가능
커널 운영
장시간 실행되는 계산이나 디버깅 시 커널 제어가 필수적입니다:
I, I(I를 두 번 누름): 커널 중단. 실행 중인 계산을 중단해야 할 때 매우 중요합니다.0, 0(0을 두 번 누름): 커널 재시작. 모든 변수를 지우고 새로 시작해야 할 때 사용합니다.
표시 및 이동
L: 현재 셀의 줄 번호 토글. 디버깅 및 특정 줄 참조에 유용합니다.O: 셀 출력 토글. 노트북을 제시할 때 깔끔하게 유지하기 위해 출력을 숨깁니다.H: 키보드 단축키 도움말 대화상자 표시
필수 편집 모드 단축키
셀 내부에서 코드를 편집할 때, 이 단축키는 일반 텍스트 편집기의 기능과 유사합니다:
텍스트 편집
Tab: 코드 자동 완성 또는 들여쓰기. Jupyter의 자동 완성 기능은 강력하고 맥락에 따라 작동합니다.Shift + Tab: 커서 아래의 객체에 대한 툴팁/문서 표시. 노트북을 떠나지 않고 API를 탐색하는 데 매우 유용합니다.Ctrl + ]: 선택된 줄 들여쓰기Ctrl + [: 선택된 줄 빼기Ctrl + /: 선택된 줄에 주석 토글. 디버깅 중 코드를 빠르게 주석 처리하는 데 필수적입니다.
이동
Ctrl + A: 셀 내부의 모든 텍스트 선택Ctrl + Z: 실행 취소Ctrl + Shift + Z또는Ctrl + Y: 다시 실행Ctrl + Home: 셀 시작으로 이동Ctrl + End: 셀 끝으로 이동Ctrl + Left: 커서 한 단어 왼쪽으로 이동Ctrl + Right: 커서 한 단어 오른쪽으로 이동
모드 전환
Esc: 명령 모드로 전환 (편집 모드에서)
마직기 명령어: 워크플로우 강화
마직기 명령어는 Jupyter의 기능을 확장하는 특별한 지시문입니다. 두 가지 유형으로 나뉩니다: 라인 마직기 (%로 시작)는 단일 줄에서 작동하고, 셀 마직기 (%%로 시작)는 전체 셀에서 작동합니다.
성능 프로파일링
코드 성능을 이해하는 것은 최적화에 매우 중요합니다. Jupyter은 내장된 타이밍 명령어를 제공합니다:
# 단일 실행 시간 측정
%time sum(range(1000000))
# 여러 실행 시간 측정 및 평균화 (더 정확함)
%timeit sum(range(1000000))
# 전체 셀 시간 측정
%%time
total = 0
for i in range(1000000):
total += i
%timeit 명령어는 특히 코드를 여러 번 실행하고 실행 시간에 대한 통계 정보를 제공하므로, 동일한 문제에 대한 다양한 접근 방식을 벤치마킹하는 데 이상적입니다.
외부 스크립트 실행
%run 마직기는 노트북 내에서 외부 Python 스크립트를 실행할 수 있게 해서, 코드를 모듈화하는 것이 매우 간단해집니다:
%run my_script.py
이것은 더 큰 프로젝트에서 재사용 가능한 함수를 별도의 파일에 보관할 때 특히 유용합니다. Python 환경을 관리하고 있다면, uv나 venv와 같은 도구를 사용하고 있을 수 있으며, %run은 이러한 설정과 원활하게 작동합니다.
패키지 관리
노트북에서 직접 Python 패키지를 설치 및 관리할 수 있습니다:
!pip install numpy pandas matplotlib
!conda install scipy
이렇게 하면 터미널과 노트북 사이로 전환할 필요가 없어져 개발 워크플로우가 간소화됩니다. ! 접두사는 셀 내에서 쉘 명령을 실행하게 하며, 이에 대해 아래에서 더 자세히 다룹니다.
시각화
matplotlib을 사용하여 데이터 시각화를 수행할 때는 다음과 같이 사용합니다:
%matplotlib inline
이 명령어는 플롯이 노트북 셀 내부에서 직접 렌더링되도록 하여 시각화 경험을 더욱 편리하게 만들어줍니다. 또한 JupyterLab에서 상호작용형 플롯을 사용하려면 %matplotlib widget을 사용할 수 있습니다.
파일 작업
%%writefile 셀 마직기는 셀 내용을 파일로 작성합니다:
%%writefile example.py
def hello_world():
print("Hello, World!")
return True
이것은 스크립트를 생성하거나 노트북에서 직접 코드 스니펫을 저장하는 데 매우 유용합니다. 반대로, 표준 Python 파일 작업이나 쉘 명령어를 사용하여 파일을 읽을 수 있습니다.
쉘 명령어
노트북 셀에서 직접 쉘 명령어를 실행할 수 있습니다:
# 단일 줄 쉘 명령어
!ls -l
!pwd
!git status
# 다중 줄 쉘 명령어
%%bash
echo "Hello from Bash"
ls -l
find . -name "*.py" | head -10
이 통합은 노트북 환경을 떠나지 않고 파일 관리, 버전 제어 작업, 시스템 관리 작업을 수행하는 데 매우 강력합니다.
사용 가능한 마직기 탐색
사용 가능한 모든 마직기 명령어를 탐색하려면 다음과 같이 사용합니다:
# 모든 마직기 명령어 목록
%lsmagic
# 특정 마직기에 대한 도움
%timeit?
%matplotlib?
어떤 마직기 명령어 뒤에 ? 연산자를 사용하면 해당 명령어의 문서, 매개변수, 사용 예시를 표시합니다. 이는 Jupyter의 기능을 상호작용적으로 탐색하는 데 매우 효과적입니다.
고급 팁 및 최선의 실천 방법
노트북 정리
-
마크다운 셀을 적극적으로 사용: 잘 문서화된 노트북은 이해하고 유지하기가 더 쉽습니다. 헤딩 레벨(1-6)을 사용하여 명확한 구조를 만드세요.
-
각 셀이 명확한 목적을 가진 상태 유지: 각 셀은 하나의 명확한 목적을 가져야 합니다. 이는 디버깅을 더 쉽게 만들고 가독성을 향상시킵니다.
-
셀 실행 번호 사용: 실행 번호(예: In [1], In [2] 등)는 실행 순서를 추적하는 데 도움이 되며, 셀이 순서대로 실행되지 않을 경우 특히 중요합니다.
대규모 노트북 작업
노트북이 커지면 다음 기술을 사용하여 조직을 유지하는 것이 도움이 됩니다:
- 사용 가능한 경우, 표지 목록 확장 기능을 사용하여 탐색
- 관련 섹션을 별도의 노트북으로 분리
%%writefile을 사용하여 재사용 가능한 코드를 Python 모듈로 추출- 정기적으로 커널을 재시작하고 모든 셀을 실행하여 재현 가능성을 보장
다른 도구와의 통합
Jupyter 노트북은 현대 Python 도구와 잘 작동합니다. LLM과 함께 구조화된 출력이 필요한 경우, 노트북을 Ollama를 사용한 구조화된 LLM 출력와 같은 도구와 통합할 수 있습니다. 웹 스크래핑 및 데이터 처리를 위해 HTML을 마크다운으로 변환하는 라이브러리를 사용하는 경우, HTML을 마크다운으로 변환하는 가이드를 참조할 수 있습니다.
디버깅 워크플로우
- 예외 발생 후
%debug마직기를 사용하여 디버거에 진입 %pdb on을 사용하여 예외 발생 시 자동으로 디버거에 진입- 출력 문과
%timeit은 성능 병목 현상을 식별하는 데 도움이 됨 - 변수가 예상치 못한 상태가 되었을 때 커널을 재시작 (
0, 0)
커스터마이징
Jupyter 노트북 메뉴에서 Help → Keyboard Shortcuts로 이동하여 키보드 단축키를 커스터마이징할 수 있습니다. 이는 특정 워크플로우 선호도에 맞게 환경을 맞춤화할 수 있게 해줍니다.
결론
Jupyter 노트북 단축키와 마직기 명령어를 숙련하면 단순한 코드 편집기에서 강력한 상호작용형 컴퓨팅 환경으로 변신시킬 수 있습니다. 가장 자주 사용되는 단축키(Shift+Enter, Esc, A, B, D+D, M, Y)부터 시작해 점차 마직기 명령어를 워크플로우에 통합해 보세요. 이러한 명령어를 배우는 데 투자한 시간은 생산성과 워크플로우 효율성에 큰 이점을 줍니다.
기억하세요: 명령 모드에서 H를 누르면 언제든지 전체 단축키 참고 자료를 볼 수 있고, %lsmagic을 사용하여 사용 가능한 모든 마직기 명령어를 탐색할 수 있습니다. 즐거운 코딩이 되세요!
유용한 링크
- Python 가이드
- uv - 새로운 Python 패키지, 프로젝트 및 환경 관리자
- venv 가이드
- 구조화된 LLM 출력: Ollama, Qwen3 및 Python 또는 Go
- Python에서 HTML을 마크다운으로 변환하는 방법: 포괄적인 가이드