맨위로가기

IPython

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

IPython은 대화형 파이썬 셸, 병렬 컴퓨팅 지원, 풍부한 객체 표현 등 다양한 기능을 제공하는 파이썬 기반의 대화형 컴퓨팅 환경이다. 2014년에는 프로젝트 주피터로 분리되어 노트북 인터페이스를 포함한 언어 중립적인 부분이 이전되었다. IPython은 자유 소프트웨어 발전상과 Jolt 생산성상을 수상했으며, 과학 기술 계산 분야에서 Matplotlib과 함께 사용되는 등 미디어 및 학계에서 긍정적인 평가를 받았다.

더 읽어볼만한 페이지

  • 자유 수학 소프트웨어 - GNU 옥타브
    GNU 옥타브는 MATLAB과 높은 호환성을 가지며 수치 해석 계산을 위해 사용되는 자유-오픈 소스 소프트웨어이다.
  • 자유 수학 소프트웨어 - NumPy
    NumPy는 파이썬에서 다차원 배열을 효과적으로 다루기 위한 라이브러리로, C API를 제공하여 외부 라이브러리와 연동을 지원하며, 다양한 연산 기능과 멀티스레딩을 통한 성능 향상을 제공한다.
  • 셸 - 파워셸
    파워셸은 마이크로소프트에서 개발한 작업 자동화 솔루션으로, 명령줄 셸과 스크립트 언어의 기능을 결합하여 윈도우 시스템 관리를 위해 설계되었으며, .NET 프레임워크 기반의 객체 지향적 특징을 갖고 다양한 플랫폼에서 자동화 스크립트 작성 및 실행, 시스템 구성 관리 등에 활용된다.
  • 셸 - COMMAND.COM
    COMMAND.COM은 MS-DOS 운영체제에서 명령줄 인터페이스를 제공하는 명령어 해석기로, 파일 관리 및 프로그램 실행 등의 작업을 수행하며, 윈도우 9x에서 MS-DOS 호환성을 위해, FreeDOS에서는 핵심 구성 요소로 사용된다.
  • 파이썬으로 작성된 자유 소프트웨어 - 캘리버
    캘리버는 다양한 전자책 파일 형식과 단말기를 지원하는 오픈소스 소프트웨어로, 편집, 변환, 메타데이터 관리, 라이브러리 검색, 온라인 콘텐츠 수집, 원격 액세스, 전자책 제작 등의 기능을 제공하며, 플러그인을 통해 DRM 제거도 가능하다.
  • 파이썬으로 작성된 자유 소프트웨어 - 클램윈
    클램윈은 ClamAV 엔진 기반의 오픈 소스 백신 소프트웨어로, 트로이 목마, 바이러스, 멀웨어 등 다양한 악성 위협 분석 자료를 제공하며 예약 검사, 수동 검사, 컨텍스트 메뉴 통합 등의 기능을 지원하지만 실시간 감시 기능은 제공하지 않는다.
IPython - [IT 관련 정보]에 관한 문서
개요
IPython 로고
IPython 로고
종류
라이선스BSD
웹사이트ipython.org
개발
개발자브라이언 E. 그랜저, 민 레이건-켈리, 폴 이바노프, 토마스 클루이버, 마티아스 부소니에
저자페르난도 페레스
프로그래밍 언어파이썬, 자바스크립트, CSS, HTML
릴리스
최초 릴리스2001년
최신 릴리스 날짜}}
플랫폼
운영체제크로스 플랫폼

2. 역사

IPython은 2001년 페르난도 페레즈에 의해 처음 개발되었다.

2. 1. 개발 지원 및 수상 내역

Alfred P. Sloan 재단은 2013년 1월 1일부터 2년 동안 IPython 개발을 지원할 것이라고 발표했다.[17]

2013년 3월 23일, 페르난도 페레즈는 IPython으로 자유 소프트웨어 재단 자유 소프트웨어 발전상을 수상했다.

2013년 8월, 마이크로소프트는 IPython의 지속적인 개발을 후원하기 위해 100000USD를 기부했다.[18]

2014년 1월, Dr. Dobb's로부터 코딩 도구 부문에서 Jolt 생산성상을 수상했다.[19] 2015년 7월, 이 프로젝트는 Gordon and Betty Moore 재단, Alfred P. Sloan 재단 및 Leona M. and Harry B. Helmsley 자선 신탁으로부터 600만달러의 자금을 지원받았다.[20]

2018년 5월, 2017년 ACM 소프트웨어 시스템 상을 수상했다.[21] 이 상을 수상한 최대 규모의 팀이다.[22]

3. 주요 기능

IPython은 대화형 셸, 병렬 컴퓨팅 지원, 그리고 다양한 GUI 툴킷과의 연동 등 여러 주요 기능을 제공한다.

IPython은 Tkinter뿐만 아니라 GTK (툴킷), Qt, WX를 이용한 대화형 실행 환경을 제공하며, MPI 등을 사용한 컴퓨터 클러스터 환경에서 병렬 컴퓨팅을 지원한다.[1] OS 표준 명령 줄 셸(예: bash, csh)로도 사용 가능하며, 특히 Windows에서 명령 줄 셸로 이용 가능하다는 장점이 있다.[1] IPython 셸은 Unix 셸과 유사하게 동작하지만, 실행 중인 Python 환경을 활용하여 사용자 정의 및 실행 유연성을 높일 수 있다.[1]

IPython은 병렬 및 분산 컴퓨팅을 지원하는 아키텍처를 기반으로 하며, 병렬 애플리케이션을 대화식으로 개발, 실행, 디버깅 및 모니터링할 수 있게 해준다.[3]

IPython은 Tkinter, PyGTK, PyQt/PySide 및 wxPython과의 비차단 상호 작용을 허용한다.[7] 또한, 시스템 셸 대체로 사용할 수 있으며, 기본 동작은 유닉스 셸과 매우 유사하지만 사용자 정의 및 라이브 Python 환경에서 코드를 실행하는 유연성을 가진다.[7]

3. 1. 대화형 셸

IPython은 Tkinter뿐만 아니라 GTK (툴킷), Qt, WX를 이용한 대화형 실행 환경을 제공한다.[1] 또한, MPI 등을 사용한 컴퓨터 클러스터 환경에서 병렬 컴퓨팅을 지원한다.[1] IPython은 OS 표준 명령 줄 셸(예: bash, csh)로도 사용할 수 있는데, 특히 Windows에서 명령 줄 셸로 이용 가능하다는 장점이 있다.[1] IPython 셸은 기본적인 동작이 Unix 셸과 유사하지만, 실행 중인 Python 환경을 활용하여 사용자 정의 및 실행 유연성을 높일 수 있다.[1]

3. 2. 병렬 컴퓨팅

IPython은 병렬 및 분산 컴퓨팅을 지원하는 아키텍처를 기반으로 한다. IPython은 병렬 애플리케이션을 대화식으로 개발, 실행, 디버깅 및 모니터링할 수 있게 해주며, 이 때문에 IPython의 "I" (Interactive)가 붙었다.[3] 이 아키텍처는 병렬 처리를 추상화하여 IPython이 다음과 같은 다양한 병렬 처리 방식을 지원한다.[4]

  • 단일 프로그램, 다중 데이터 (SPMD) 병렬 처리
  • 다중 프로그램, 다중 데이터 (MPMD) 병렬 처리
  • MPI를 사용한 메시지 전달
  • 작업 병렬 처리
  • 데이터 병렬 처리
  • 이러한 접근 방식의 조합
  • 사용자 정의 접근 방식


IPython 병렬 처리 아키텍처


IPython 4.0 릴리스와 함께 병렬 컴퓨팅 기능은 선택 사항이 되었고 [https://pypi.org/project/ipyparallel/ ipyparallel] 파이썬 패키지로 출시되었다. 그리고 ipyparallel의 대부분의 기능은 현재 Dask와 같은 더 성숙한 라이브러리에서 다루고 있다.

IPython에서는 MPI 등을 사용한 컴퓨터 클러스터 환경에서의 병렬 컴퓨팅이 가능하다.

3. 3. 기타 기능

IPython은 Tkinter, PyGTK, PyQt/PySide 및 wxPython과의 비차단 상호 작용을 허용한다(표준 Python 셸은 Tkinter와의 상호 작용만 허용한다).[7] IPython은 비동기 상태 콜백 및/또는 MPI를 사용하여 병렬 컴퓨팅 클러스터를 대화식으로 관리할 수 있다.[7] 또한 IPython은 시스템 셸 대체로 사용할 수 있으며, 기본 동작은 유닉스 셸과 매우 유사하지만 사용자 정의 및 라이브 Python 환경에서 코드를 실행하는 유연성을 가진다.[7]

4. 프로젝트 주피터 (Project Jupyter)

2014년, IPython의 개발자인 페르난도 페레즈는 IPython에서 분리된 프로젝트 주피터를 발표했다.[9] IPython은 주피터를 위한 파이썬 셸과 커널로 계속 존재했지만, 노트북 인터페이스 및 IPython의 다른 언어 중립적인 부분은 주피터라는 이름으로 이전되었다.[10][11] 주피터는 언어에 구애받지 않으며, 이름은 주피터가 지원하는 핵심 프로그래밍 언어인 줄리아, 파이썬, R을 참고하여 지어졌다.[12]

주피터 노트북 (구 IPython 노트북)은 주피터 노트북을 생성, 실행 및 시각화하기 위한 웹 기반의 대화형 컴퓨팅 환경이다. 이는 1980년대 Mathematica에서 시작된 컴퓨팅 인터페이스 스타일인 메이플, Mathematica, SageMath와 같은 다른 프로그램의 노트북 인터페이스와 유사하다.[13] 수십 개의 언어에서 실행 환경(일명 커널)을 지원한다. 기본적으로 주피터 노트북은 IPython 커널과 함께 제공되지만, 2018년 5월 기준으로 100개 이상의 주피터 커널이 있다.

5. 미디어 및 학계에서의 평가

IPython은 대중적인 컴퓨팅 언론 및 기타 대중 매체에서 언급되었으며,[14][13] 과학 학회에서도 소개되었다.[15] 과학 및 공학 작업에서 matplotlib의 동반 도구로 자주 제시된다.[16] 미국 내에서 널리 읽히는 IT 관련 보도 매체에서 소개되고 있으며,[25] 자연 과학 학술 회의에서도 의제로 다루어지고 있다.[26] 과학 기술 계산 분야에서는 Matplotlib과 함께 사용하는 사례가 많이 보인다.[27]

6. 관련 서적

시릴 로상, 키쿠치 아키라(번역): "IPython 데이터 과학 쿡북 제2판", 오라일리 재팬, ISBN978-4-87311-854-3 (2019년 5월).[1] 원서는 시릴 로상: "IPython 대화형 컴퓨팅 및 시각화 쿡북, 제2판", Packt Publishing, ISBN978-1785888632 (2018년 1월).[1]

참조

[1] 웹사이트 The IPython notebook: a historical retrospective http://blog.fperez.o[...] Fernando Perez Blog 2012-01-08
[2] 웹사이트 NumFOCUS Sponsored Projects https://numfocus.org[...] NumFOCUS 2021-10-25
[3] 간행물 Interactive notebooks: Sharing the code 2014
[4] 웹사이트 Using IPython for Parallel computing - IPython docs https://ipython.org/[...]
[5] 웹사이트 SciPy Stack http://www.scipy.org[...]
[6] 웹사이트 Printing — SymPy 1.1 documentation http://docs.sympy.or[...] 2018-04-11
[7] 서적 Python for Data Analysis
[8] 뉴스 Release of IPython 5.0 – Jupyter Blog https://blog.jupyter[...] 2018-04-11
[9] 웹사이트 Project Jupyter // Speaker Deck https://speakerdeck.[...]
[10] 웹사이트 The Notebook, Qt console and a number of other pieces are now parts of Jupyter https://github.com/i[...] 2021-10-17
[11] 웹사이트 The Big Split™ https://blog.jupyter[...] 2017-08-28
[12] 웹사이트 Jupyter Logo · jupyter/Design Wiki https://github.com/j[...]
[13] 뉴스 The Scientific Paper Is Obsolete https://www.theatlan[...] 2018-04-10
[14] 웹사이트 Introducing IPython http://archive09.lin[...] NewsForge 2012-06-14
[15] 웹사이트 IPython Presentations https://ipython.org/[...]
[16] 간행물 IPython: A System for Interactive Scientific Computing http://fperez.org/pa[...] 2015-07-30
[17] 웹사이트 Announcement in scipy mailing list http://mail.scipy.or[...] 2012-12-12
[18] 웹사이트 IPython Announcement https://ipython.org/[...]
[19] 웹사이트 Jolt Productivity Award write-up in Dr. Dobb's http://www.drdobbs.c[...]
[20] 뉴스 $6M for UC Berkeley and Cal Poly to expand and enhance open-source software for scientific computing and data science https://www.moore.or[...] 2015-08-13
[21] 웹사이트 Recent Software System Award News https://awards.acm.o[...]
[22] 뉴스 Jupyter receives the ACM Software System Award https://blog.jupyter[...]
[23] 웹사이트 History http://ipython.org/i[...] The IPython Development Team 2014-01-22
[24] 웹사이트 Introduction http://ipython.org/i[...] The IPython Development Team 2014-01-22
[25] 간행물 Introducing IPython 2005-09-12
[26] 문서 About/Presentations - IPython http://ipython.scipy[...]
[27] 문서 IPython: A System for Interactive Scientific Computing http://csdl2.compute[...]
[28] 문서 ihaskell https://github.com/g[...]
[29] 웹인용 The IPython notebook: a historical retrospective http://blog.fperez.o[...] Fernando Perez Blog 2012-01-08



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com