본문 바로가기
목차
Python

Jupyter NoteBook-vscode 확장 중심

by ds31x 2025. 7. 21.
728x90
반응형

https://youtu.be/suAkMeWJ1yE?si=YR3b_4aLnYiWCHGd


0. Jupyter NoteBook이란?

Jupyter Notebook은 "코드, 문서, 시각화"를 하나의 문서에 통합하여 대화형으로 작업할 수 있는 웹 기반 개발 환경으로, REPL Shell을 개선한 IPython의 웹 버전임.

2024.09.04 - [개발환경] - [Py] IPython, Jupyter Notebook, and Colab

 

[Py] IPython, Jupyter Notebook, and Colab

IPython: IPython은 파이썬의 대화형 인터프리터로, 파이썬 표준 인터프리터보다 향상된 기능을 제공함. 다음과 같은 기능을 제공:Code auto-completionAccess to shell commands: 시스템의 명령어를 보다 편하게

ds31x.tistory.com


0-1. vscode extension 으로 지원

웹브라우저를 통한 사용 방식이 jupyter notebook의 원래 지원방식이나, vscode에서도 Jupyter NoteBook의 파일 포맷인 .ipynb를 extension을 통해 직접 편집 및 실행할 수 있음.

이 경우 디버깅 등에서 유용하며, vscode 내에서 다른 작업을 같이 할 수 있는 등의 장점을 가짐.

단, 웹브라우저를 통한 사용에서 가능한 단축키들 중 일부를 사용할 수 없음.

https://meerkatio.com/blog/jupyter-vs-code-extension-api-how-to

2025.02.21 - [개발환경] - [vscode] jupyter extension 설치하기.

 

[vscode] jupyter extension 설치하기.

IPython notebook file (확장자 ipynb) 파일을 만들고 나서 이를 vscode에서 열면, editor의 오른쪽 상단에 jupyter note의 kernel을 지정할 수 있음더보기2025.07.17 - [Python] - ipynb 파일 (IPython NoteBook) ipynb 파일 (IPytho

ds31x.tistory.com


1. Jupyter Notebook 만들기

  • Command Palette (⇧⌘P)에서 Create: New Jupyter Notebook 입력.
  • Explorer의 Sidebar에서 새 .ipynb 파일을 생성.

Select Kernel (=Kernel Picker)의 부분(아래 이미지의 우측 상단의 붉은색 박스)을 클릭.

클릭 시 보여지는 Command Palette의 드롭다운 중에서 Jupyter Notebook이 설치된 conda 환경을 선택하면 됨.


2. cell 모드 (Mode or State)

Cell은 Jupyter Notebook의 기본 구성 요소로,

코드마크다운 텍스트를 입력하고 개별적으로 실행할 수 있는 독립적인 블록임.

 

cell이 가질 수 있는 상태(states)는 다음의 3가지임:

2-1. 편집 모드 (Edit Mode)

  • Cell 내부의 내용을 편집 중인 상태.
  • Cell 좌측에 세로 막대(버티컬 바) + 셀 편집기 주변에 테두리 표시 (테마에 따라 잘 안보이기도 함)
  • Cursor가 Cell 내부에 깜빡임 ***


2-2. 명령어 모드 (Command Mode)

  • Cell 자체를 조작하거나 노트북 전체를 제어하는 모드
  • Cell 좌측에 세로 막대(버티컬 바)만 표시
  • Cell이 선택되었지만 편집 중은 아닌 상태.

위에서 2번째 code cell이 바로 command mode임.


2-3. 선택 해제 (Unselected)

  • Cell이 선택되지 않은 상태
  • 노트북의 빈 공간을 클릭했을 때 나타남
  • 아무것도 표시되지 않음

3. Cell 모드 전환 방법

3-1. 편집모드 → 명령어모드

  • Esc 키 사용
  • Jupyter Note에선 CTRL+M을 지원하나 vscode에선 ESC를 이용 할 것.

3-2. 명령어모드 → 편집모드

  • Enter 키 사용하거나
  • Cell을 클릭

3-3. 선택 해제 모드로 전환

  • Cell 외부의 빈 공간 클릭

4. Cell 간 이동 하기.

기본으로 마우스 클릭으로도 가능하지만 단축키를 추천.

4-1. 기본 이동 (명령어 모드)

  • ↑/↓ 방향키: 이전/다음 셀로 이동
  • J: 다음 셀로 이동 (down)
  • K: 이전 셀로 이동 (up)

j,k 키는 vim 등에서도 자주 사용되는 단축키로 익숙해지면 편함.


4-2. 편집기 간 이동

  • Ctrl+Alt+PageUp: 이전 셀 편집기로 포커스 이동
  • Ctrl+Alt+PageDown: 다음 셀 편집기로 포커스 이동

사실, 기본 이동을 하고 나서 Enter를 누르는 것과 같은 동작임.

macOS에선 안된다. ==;;;


4-3. 다중 Cell 선택

  • Shift + ↑/↓: 현재 선택에서 위/아래로 셀 추가 선택
  • Ctrl(or Cmd) + 클릭: 개별 셀을 선택에 추가/제거 (macOS에선 안되는 경우가 많음)

vscode에선, 여러 Cell을 동시에 수행하는 경우 이용됨.
(원래는 여러 셀을 선택하여 한번에 이동시키는 경우 더 많이 애용되나, vscode에선 여러 Cell의 동시 이동이 안되는터라.)

아래 9-3에서 보다 자세히 다룸.

 

참고로, 불연속으로 여러 셀을 선택하는 기능과 관련된 notebook.cell.toggleCellSelection 명령 자체가 최신 vscode에선 지원을 안함. 


4-4. 셀 위치 변경

  • Alt + ↑/↓: 선택된 셀을 위/아래로 이동시킴
  • 드래그 앤 드롭: 셀 좌측 영역을 드래그하여 이동 (권장)

주의

2025.8 현재, vscode extension으로 동작할 때, 다중 셀을 선택하여 동시에 위치 변경은 지원되지 않음.

 


5. 셀 타입 (Cell Type)

앞서 살펴본 것처럼 Cell은 3가지 상태 중 하나이지만, 종류도 다음 3가지를 지원함.

5-1. Code 셀

좌측의 vertical bar와 boundary에 윤곽선이 보임 (edit mode임)

  • Python 코드를 입력하고 실행하는 Cell
  • 좌측에 실행 번호 [번호] 표시 (높을수록 최근 실행): 위 그림에서는 [6] 이 실행번호(6번째 실행됨)!
  • 우하단에 “Python” 언어 표시됨 (R 또는 Julia 도 지원한다고 하는데 vscode로는 사용해본적 없음)
  • 우상단에는 Code Cell의 메뉴가 존재.
    • 첫 번째는 Run by Line으로 한 줄씩 실행하는 디버깅이 진행됨.
    • 두번째는 상단의 셀들을 실행하는 것
    • 세번째는 현재의 셀과 하단의 셀들을 실행하는 것
    • 네번째는 Split Cell 로 현재 커서 위치를 기준으로 Cell을 나눔.
      • Cursor가 있는 위치부터 새로운 셀로 분리되어 아래에 추가됨.
    • 다섯번째는 ... 표시로 추가옵션메뉴 (More options)임:  Cell 의 type 또는 위치를 변경하는 기능 등이 있음
    • 여섯번째는 현재 Cell삭제를 의미함.

5-2. Markdown 셀

  • 마크다운 문법으로 문서, 설명, 수학식(LaTex문법이용) 등을 작성
  • 실행 시 렌더링되어 서식이 적용된 텍스트로 표시
  • 우하단에 “markdown” 표시

https://dsaint31.tistory.com/205

 

MARKDOWN 문법

https://dsaint31.me/mkdocs_site/CE/markdown_latex/markdown/ BMEMarkdown Markdown은 Styling(스타일링)이 가능한 구조화된 문서 (주로 웹 콘텐츠)를 기존의 Mark-Up Language인 HTML 보다 (여러 기능이 추가되면서 복잡해짐)

dsaint31.tistory.com


5-3.  Raw NBConvert 셀 (vscode 지원 제한적)

  • 노트북 변환 시 그대로 출력되는 raw(원시) 텍스트
    • 노트북을 다른 형식(HTML, LaTeX, PDF 등)으로 변환할 때 원시 텍스트 그대로 포함됨
    • nbconvert 도구에서 특별한 처리 없이 직접 출력하고 싶은 내용 작성
    • 변환 과정에서 포맷팅이나 해석 없이 그대로 전달되어야 하는 텍스트 기재.
  • VS Code에서의 제약사항으로 인해 vscode의 extension유저는 사용하지 않기 권함.:
    • 기본 R 키 단축키 없음
    • Raw 셀임을 나타내는 시각적 표시 부족
    • vscode 에서 raw NBConvet 셀의 실제 사용은 권장하지 않음

cell의 우측 하단의 language pickup 부분을 클릭하면 command Palette부분에서 다음 중에서 선택가능함:
raw 선택 (6-1 참고).


6. VS Code에서 Cell 타입 변경 방법

6-1. UI 방식 (가장 안정적)

Cell의 우측하단의 Python 이라고 기재된 곳을 클릭.

  • "Cell 우하단의 언어 표시"를 클릭 (예: “Python”)

Command Palette 부분에 드롭다운이 표시됨.

다음 중 Cell에서 사용할 언어를 선택: raw가 바로 raw NBConvert Cell임.

  • 드롭다운에서 원하는 타입 선택

6-2. 명령 팔레트 방식

  • Ctrl+Shift+P → “Notebook: Change Cell Language” 실행

6-3. 키보드 단축키 (기본 제공, 추천)

  • M: Markdown으로 변경
  • Y: Code로 변경
  • R: Raw로 변경 (vscode에선 기본 제공 안 됨, 브라우저로 실행시에는 기본 지원)

shortcut 목록에는 대문자로 표시되나 소문자로 입력해도 됨 (관례상 대문자로 표기가 많이 이루어짐). 

즉, 키보드 단축키는 대소문자 구분없음


7. 단축키 확인

  • VS Code 메뉴 → Code → Preferences → Keyboard Shortcuts (Cmd+K Cmd+S)
    1. 우측 상단 검색창에
      • notebook 입력 → VS Code Notebook 관련 단축키 전체 확인
      • jupyter 입력 → Jupyter 확장 전용 단축키만 필터링
    2. 여기서 단축키 변경도 가능

 


8. VS Code Jupyter 편집 모드 단축키 (Edit Mode Hot Keys)

주의할 점이 하나 있는데,

Windows의 Alt가 macOS에선 Option으로 대체되나...

Option 키 이용하는 경우는 macOS에서 동작이 안 되는 경우가 매우 많음.


8-1. 코드 작성 및 편집

  • Tab: 코드 자동완성 또는 들여쓰기
  • Shift+Tab: 도움말, 툴팁 표시 (macOS에선 동작 안함. 마우스 hover를 추천)
  • Ctrl+] (Windows/Linux) / Cmd+] (macOS): 들여쓰기 (indent) ***
  • Ctrl+[ (Windows/Linux) / Cmd+[ (macOS): 내어쓰기 (dedent) ***

8-2. 텍스트 선택 및 편집 ***

  • Ctrl+A (Windows/Linux) / Cmd+A (macOS): 전체 선택
  • Ctrl+Z (Windows/Linux) / Cmd+Z (macOS): 실행 취소 (undo)
  • Ctrl+Y (Windows/Linux) / Cmd+Shift+Z (macOS): 다시 실행 (redo)

8-3. 커서 이동

  • Ctrl+Home (Windows/Linux) / Cmd+↑ (macOS): 셀 처음으로 이동
  • Ctrl+End (Windows/Linux) / Cmd+↓ (macOS): 셀 끝으로 이동
  • Ctrl+Left (Windows/Linux) / Option+Left (macOS): 한 단어씩 좌측 이동 
  • Ctrl+Right (Windows/Linux) / Option+Right (macOS): 한 단어씩 우측 이동

8-4. 텍스트 삭제

  • Ctrl+Backspace (Windows/Linux) / Option+Backspace (macOS): 이전 단어 삭제
  • Ctrl+Delete (Windows/Linux) / Option+Delete (macOS): 이후 단어 삭제

8-5. 셀 실행 및 제어 ***

  • Shift+Enter: 현재 셀 실행하고 다음 셀로 이동 ***
  • Ctrl+Enter: 현재 셀 실행 (포커스 유지) (Windows/Linux/macOS 동일) ***
  • Alt+Enter (Windows/Linux) / Option+Enter (macOS): 현재 셀 실행하고 아래에 새 셀 삽입

macOS 이슈: Option 키가 특수문자를 생성에 사용되기 때문에 안되는 경우도 많음.

그냥 SHIFT+ENTER 와 CTRL+ENTER 만 사용해도 충분함.


8-6. 셀 조작

  • Ctrl+Shift+- (Windows/Linux) / Ctrl+Shift+- (macOS): 커서 위치에서 Cell 분할(Split)
  • Esc: 명령어 모드로 전환
참고로,
macOS에서 CMD+SHIFT+-는 축소보기가 이루어짐. +면 확대보기

8-7. 파일 관리

  • Ctrl+S (Windows/Linux) / Cmd+S (macOS): 노트북 파일 저장

9. VS Code Jupyter 명령어 모드 단축키 (Command Mode Hot Keys)

9-1. 모드 전환 **

  • Enter: 편집 모드로 변경
  • Esc: 명령어 모드 유지 (이미 명령어 모드인 경우)

9-2. Cell 추가 **

  • A: 현재 셀 위에 새 Cell 추가
  • B: 현재 셀 아래에 새 Cell 추가

vscode에서 Jupyter Note 의 main toolbar의 왼쪽의 icon들(아래 그림의 상단의 빨간박스)을 이용하여 추가할 수 있음.

또는, Cell 사이에 마우스 커서를 올리면(hover) "Cell's add cell toolbar (아래 그림의 하단의 빨간박스)"가 보이며 이를 이용할 수도 있음.

마우스 커서를 아래에 가져다대면(hovering), 위 그림의 아래쪽 붉은색 박스로 표시된 메뉴가 보임.


9-3. 셀 이동 및 selection(선택)

  • ↑/↓ 또는 K/J: 이전/다음 Cell로 이동
  • Shift + ↑/↓: 다중 Cell 선택

Shift 키를 누른 상태에서는 연속된 셀을 선택할 수 있음 (화살표 이용) 
(시작 셀을 선택(click)하고 Shift키를 누르고 마지막 셀을 클릭해도 동작.)

Ctrl (or Cmd)키를 누른 상태에서는 개별 셀을 클릭하여 불연속인 여러  셀들을 선택 가능함.

(macOS에서 불연속 셀 다중 선택이 안되는 경우도 잦음)


9-4. Cell 조작

  • Alt + ↑ (Windows/Linux) / Option + ↑ (macOS): 셀을 위로 이동
  • Alt + ↓ (Windows/Linux) / Option + ↓ (macOS): 셀을 아래로 이동
  • DD (D를 두 번): 선택된 셀 삭제
  • Z: 마지막 변경 실행 취소 (셀 삭제 복구 등)
  • Shift + M: 선택된 셀들 병합 - context menu에서 Join ~~ 를 이용하는 것을 추천 (macOS에선 단축키 안됨).
vscode에서는 개별 셀의 이동은 가능하나, 
여러 셀을 선택하여 동시에 이동시키는 것은 지원하지 않음

Cell 삭제는 다음과 같이 Cell의 오른쪽 상단의 휴지통 icon을 클릭해서도 가능함.


9-5. 셀 타입 변경

  • M: 셀 타입을 Markdown으로 변경 **
  • Y: 셀 타입을 Code로 변경 **

9-6. Line number 표시 옵션 **

  • L: 현재 셀의 라인 번호 토글
  • Shift + L: 전체 노트북의 라인 번호 토글

9-7. 셀 실행

Edit Mode와 동일.


9-8. 기타 유용한 단축키

  • Ctrl+Shift+P (Windows/Linux) / Cmd+Shift+P (macOS): 명령 팔레트 열기
  • Ctrl+K Ctrl+S (Windows/Linux) / Cmd+K Cmd+S (macOS): 키보드 단축키 설정 열기
  • Ctrl+F (Windows/Linux) / Cmd+F (macOS): 노트북 내 검색

10. Main Notebook Editor Toolbar ***

Jupyter Notebook의 에디터 셀들의 상단에 위치함.

  • + Code : 현재 위치에 code 셀 추가.
  • + Markdown : 현재 위치에 markdown 셀 추가.  
  • Interrupt : User Interrupt를 발생시키는 icon (무한 루프 또는 cell의 실행이 끝나지 않을 경우 강제 종료).
    • 사실상 Keyboard Interrupt (Ctrl+C)를 발생시킴.
    • try-except로 Keyboard Interrupt를 처리하도록 하면 보다 안정적으로 동작함.
  • Restart : Jupter Kernel을 재시작 (메모리 초기화).
  • Clear All Outputs : 모든 셀들에서 실행결과부분 삭제
  • Go To : 특정 Cell 로 빠르게 이동하는 기능
  • Variables : Variables Panel 의 Toggle 버튼.
  • Outline : 노트북의 구조를 보여줌
    • Markdown cell을 통한 section으로 구분도 가능: section 별 실행도 가능함.
    • Explorer 의 primary sidebar에서 section별로 접는 기능도 있음.
  • ... : 추가 메뉴 옵션 (Export, 설정 등등)
  • 현재 선택된 커널 : Python 3.11.9 임.

Outline 의 경우 다음과 같이 Primary Sidebar에서 outline이 보임 (아래그림의 좌측하단)

outline 옆의 깔대기 모양의 icon을 통해, Markdown의 헤더 뿐 아니라 Code Cell도 볼 수 있게 설정 가능함. 헤더를 통한 section셜 수행도 가능.

export의 경우 다음과 같이 드롭다운이 보임

HTML로 export하고 웹브라우저로 열고 PDF로 저장하는 것을 추천함(가장 간단)

 

단, PDF로 export하려면 TeX 패키지를 설치해야 한다.

2025.07.20 - [utils] - MacTex-jupyter notebook을 pdf로 export

 

MacTex-jupyter notebook을 pdf로 export

macOS에선, MacTex(pdflatex는 MacTex의 명령어) 가 설치 되어 있어야만 pdf로 export가 가능.(쉬운 방법은 html로 만들고, 이를 web browser로 열고 pdf로 인쇄하면 됨) https://www.tug.org/mactex/ MacTeX - TeX Users Group www.

ds31x.tistory.com


11. Debugging for ipynb ***

Code Cell의 우상단의 맨 첫번째 icon인 Run by Line으로 한 줄 씩 수행가능

아래에 variables를 확인할 수 있음

 

Code Cell의 왼쪽 상단에 플레이 버튼 옆의 아래 화살표를 클릭하면 vscode의 디버깅 기능을 사용할 수 있음.

다음 그림은 브레이크 포인트 를 이용한 디버깅을 하는 장면임

Activity Bar에서 디버그가 선택되었고, Variables, Watch, Callstack등이 확인 가능

 

2024.10.09 - [utils] - [vscode] Debug 사용법 요약: Python + launch.json

 

[vscode] Debug 사용법 요약: Python + launch.json

0. Debug 수행 중인 VSCode 화면 (Debug view)VS code 에서 debug를 시작 하려면activity bar에서 “벌레와 플레이 모양의 icon” 를 클릭하고나오는 패널의 상단에 위치한 Run and Debug 버튼을 누르면,Debug Sidebar (=

ds31x.tistory.com


참고: macOS 사용자를 위한 문제점 

1. 주요 문제점: Option 키 특수문자 생성

macOS에서 Option 키와 다른 키를 조합하면 기본적으로 특수문자가 입력됨(예: Option+a = å).

이로 인해 Option 키를 이용하는 VS Code의 키보드 단축키(Windows에서 Alt키를 이용하는 것들)가 작동하지 않는 경우가 많음. 

 

이때문에 iterm2등의 터미널에서는 left option키를 ESC+ 로 설정하는 "Option as Meta key" 기능이 있음.
하지만 vscode에선 해당 기능이 없음.
https://ds31x.tistory.com/502#keys-%ED%83%AD%EC%9C%BC%EB%A1%9C-%EC%9D%B4%EB%8F%99
 

iterm2 설치 및 설정

installbrew install --cask iterm2Configuration 1Settings > Appearance 에서 Theme를 Dark 또는 Dark (High Contrast)를 선택.Settings > Profiles > Default 으로 이동General 탭에서Initial directory를 Home이 기본으로 선택됨.새 터미널

ds31x.tistory.com


2. 단축키 충돌

macOS에선 생각보다 안되는 단축키가 정말 많음.

충돌이 꽤나 많이 되는터라...


3. 권장사항

macOS 사용자는 다음 순서로 문제 해결을 시도해 볼 수 있음:

  1. 키보드 레이아웃을 ABC (확장 아님)로 변경
  2. 작동하지 않는 단축키는 사용자 정의로 재설정 (비추천)
  3. 여전히 문제가 있으면 명령 팔레트 사용​​​​​​​​​​​​​​​​ (사실 해법이 아님. 단축키의 빠른 속도와는 매우 거리가 먼 방안이라)

같이 보면 좋은 자료들

https://code.visualstudio.com/docs/datascience/jupyter-notebooks#_setting-up-your-environment

 

Jupyter Notebooks in VS Code

Working with Jupyter Notebooks in Visual Studio Code.

code.visualstudio.com

 

2025.02.21 - [개발환경] - [vscode] jupyter extension 사용하기.

 

[vscode] jupyter extension 사용하기.

IPython notebook file (확장자 ipynb) 파일을 만들고 나서 이를 vscode에서 열면, editor의 오른쪽 상단에 jupyter note의 kernel을 지정할 수 있음더보기2025.07.17 - [Python] - ipynb 파일 (IPython NoteBook) ipynb 파일 (IPytho

ds31x.tistory.com

2023.09.19 - [Python] - [Python] IPython shell 에서 shell cmds 사용하기.

 

[Python] IPython shell 에서 shell cmds 사용하기.

IPython 에서 지원하는 shell commandsPython interactive shell에서 OS등이 지원하는 shell commands를 사용하지 못하는 것과 달리, IPython shell에서는 많이 사용되는 shell commands는 다음과 같이 지원함.In [17]: pwdOut[1

ds31x.tistory.com

2024.03.11 - [개발환경] - [vscode] 기초 사용법과 단축키

 

[vscode] 기초 사용법과 단축키

보통 macOS과 windows 에서 차이점은 cmd와 ctrl임. 단축키에서 macOS인 경우 cmd로 처리하면되고,windows의 경우는 ctrl로 하며 거의 문제 없음.multi-cursor나 블럭 복사 등의 기능을 vscode도 지원하지만, vim ext

ds31x.tistory.com

 

 

 

728x90