IPython IPython은 파이썬(Python) 프로그래밍 언어를 위한 대화형 쉘(Interactive Shell) 및 커맨드 라인 인터페이스이다. 표준 파이썬 인터프리터보다 향상된 대화형 기능, 구문 강조, 탭 완성(Tab completion), 객체 탐색, 매직 명령어(Magic commands), 시스템 셸 명령어 실행 기능 등을 제공한다.
주요 특징은 다음과 같다.
- 대화형 실행 환경: 코드 입력 즉시 결과를 확인하고 상태를 유지하며 개발할 수 있는 REPL(Read-Eval-Print Loop) 환경을 제공한다.
- 매직 명령어:
%run,%timeit,%load_ext등 줄 마법(Line magic,%접두사)과 셀 마법(Cell magic,%%접두사)을 통해 일반 파이썬 문법으로는 어렵거나 번거로운 작업(타이밍 측정, 파일 실행, 확장 로드 등)을 간편하게 수행한다. - 탭 완성 및 객체 탐색: 변수명, 함수명, 모듈 속성 등의 자동 완성 기능을 지원하며,
?또는??를 통해 독스트링(Docstring)이나 소스 코드를 즉시 조회할 수 있다. - 히스토리 관리: 입력 및 출력 히스토리를 세션 간에도 유지하며 검색하고 재사용할 수 있다.
- 병렬 및 분산 컴퓨팅 지원: IPython.parallel(현재는 ipyparallel로 분리)을 통해 병렬 연산 환경을 구성할 수 있는 아키텍처를 제공했다.
IPython 커널(Kernel)은 웹 기반의 대화형 노트북 환경인 주피터 노트북(Jupyter Notebook), 주피터랩(JupyterLab), 구글 코랩(Google Colab) 등 다양한 프론트엔드에서 파이썬 실행 백엔드로 널리 사용된다. 2001년 페르난도 페레스(Fernando Pérez)가 시작했으며, 2014년경 프로젝트 주피터(Project Jupyter)로 분화되면서 언어에 구애받지 않는 노트북 인터페이스와 커널 프로토콜 표준을 정의하는 기반이 되었다.