NEW 기획 디자인 개발 프로덕트 아웃소싱 프리랜싱

개발

데이터 사이언티스트에게 아나콘다가 있기 있는 이유 (上)

아나콘다란 무엇인가?

빅데이터나 인공지능 관련 업종에 있는 사람들은 어떤 프로그래밍과 툴, 프레임워크 등을 사용하냐에 대해 많은 이야기를 나눕니다. 그 대표적인 예로 ‘파이썬 vs R’이라는 주제는 데이터 사이언티스트들에게 늘 뜨거운 이야깃거리였습니다. 하지만 최근 들어서 적어도 어떤 툴을 가지고 데이터 분석 작업을 진행하느냐에 대해서는 이 논란이 많이 줄어들었습니다. 바로 아나콘다(Anaconda)라는 툴킷(Toolkit)이 어느새 대세로 자리 잡았기 때문입니다. 이번 시간에는 아나콘다란 무엇인지, 그리고 이 아나콘다가 어떤 장점이 있길래 많은 데이터 사이언티스들이 선택하고 있는지 알아보도록 하겠습니다.

 

Your data science toolkit

‘Your data science toolkit’이라는 말은 아나콘다 홈페이지에 접속해 제품 설명란에 들어가면 바로 볼 수 있는 문구입니다(https://www.anaconda.com/products/individual). 짧지만 인상 깊은 이 한마디를 통해서 아나콘다가 무엇인지, 그리고 무엇을 목적으로 하고 있는지 알 수 있습니다. 먼저 아나콘다는 하나의 툴킷입니다. 툴킷이란 어렵게 생각할 것이 없습니다. 영어단어 그대로 툴(tool)과 킷(kit)의 합성어로 우리말로 번역하면 도구 모음쯤으로 말할 수 있습니다.

아나콘다 제품 설명 페이지 (출처: www.anaconda.com/products/individual)

 

그리고 툴킷이라는 단어 앞에는 데이터 사이언스가 붙어 있습니다. 이 단어만 조합하더라도 아나콘다의 취지와 정의를 알 수 있습니다. 아나콘다는 데이터 사이언스를 위해 다양한 기능을 제공해주는 도구 모음일 것입니다. 그리고 데이터 사이언스를 위한 기능들을 제공해주고 있는 만큼 데이터 사이언티스들의 편리한 데이터 처리, 나아가서는 데이터 사이언스의 발전을 그 목표로 하고 있습니다. 이렇게 아나콘다의 대략적인 정체를 파악해 보았으니 지금부터는 구체적으로 아나콘다가 데이터 사이언티스트들을 위해서 어떤 기능을 제공하고 있는지 한 번 알아보도록 하겠습니다.

 

 

아나콘다의 가장 주된 기능은 프로그래밍 작업 공간을 제공해준다는 것입니다.

아나콘다가 데이터 사이언티스트들에게 제공하는 가장 주된 기능은 바로 프로그래밍 작업 공간의 제공입니다. 파이썬, R 등 어떤 프로그래밍 언어를 사용하던 코딩의 가장 원시적인 형태는 파이썬/R의 원본 프로그램을 사용하는 것입니다. 여기서 말하는 원본 프로그램이란 파이썬과 R을 설치하면 프로그래밍 구현을 위해 자동적으로 함께 설치가 되는 프로그램을 의미합니다. 하지만 아쉽게도 이 원본 프로그램들은 요즘 시기에 활용을 하기엔 너무 불편한 점도 많고 UX 측면에서도 아쉬운 점이 많습니다. 최근 데이터 사이언스 분야에서는 R보다는 파이썬 프로그램이 훨씬 많이 이용되며 아나콘다를 사용하는 대다수의 유저 역시 파이썬 유저이므로 이번 시간에는 쭉 파이썬의 예시를 들어보도록 하겠습니다.

 

파이썬 기본 IDLE 화면

 

위 화면은 파이썬을 설치하면 기본적으로 깔리는 IDLE 프로그램을 작동시킨 화면입니다. 조금은 오래된 프로그램의 화면임을 직감적으로 알 수 있습니다. 단순히 코드를 타이핑할 수 있는 화면만 제공될 뿐 그 외에 어떤 부가적인 기능도 존재하지 않습니다. 심지어 타이핑을 함에 있어서도 편의 요소가 부족합니다. 예를 들어, 다른 프로그램을 이용해 파이썬 기능을 이용한다면 들여 쓰기에 필요한 공백 4칸이 tab키 한 번으로 작성되지만 이 화면에서는 tab 기능이 정확히 공백 4칸이 아닙니다. 결국 디자인적으로나 기능적인 측면에서나 기본 IDLE 화면을 이용할 이유가 없습니다. 그리고 이 지점에서 많은 인기를 끌고 있는 게 아나콘다의 주피터 노트북(Jupyter Notebook) 기능입니다.

Jupyter Notebook 실행 화면

 

위 화면은 아나콘다에서 제공하고 있는 기능 중 하나인 주피터 노트북의 실행 화면입니다. 주피터 노트북은 위의 예에서 보았던 IDLE을 대신할 수 있는 프로그램으로, 사용자 입장에서 더 좋은 코딩 환경 안에서 프로그래밍 작업을 진행할 수 있도록 합니다. 일반적으로 코딩을 할 때 나오는 복잡한 화면을 모두 제외하고 각 코드마다 칸을 구분하여 더 직관적으로 코드의 내용 및 순서를 이해할 수 있게 합니다. 또한 File, Edit, View 등 다양한 탭을 볼 수 있듯이 주피터 노트북 환경 자체에서만 파일 작업에 많은 기능을 제공해주기도 합니다. 또한 가장 중요한 포인트로 구글 크롬이나 인터넷 익스플로러 등 우리가 익숙한 작업 웹 화면 위에서 코딩을 진행할 수 있도록 서비스를 제공하고 있습니다.

 

 

그렇다면 아나콘다만이 가지고 있는 장점은 무엇이 있을까요?

1. 라이브러리 설치에 소요되는 시간을 줄여줍니다.

아나콘다를 이용한다면 필수 라이브러리 설치에 소요되는 시간을 단축할 수 있습니다. 코딩 작업을 진행할 때, 자주 반복해야 하는 작업이 있다면 이를 하나의 함수로 만들어 이용하는 것이 훨씬 효율적입니다. 똑같은 긴 코드를 계속 반복해서 작성해야 할 필요가 없기 때문입니다. 여기서 생각해보면 코딩 작업을 할 때 어떤 사람이든 진행해야 하는 공통의 작업이 있을 것입니다. 그래서 많은 개발자들이 사람들이 공통적으로 자주 이용하는 기능을 하나의 틀로 묶어 제공해 유저 입장에서 쉽게 코딩을 진행할 수 있도록 해줍니다. 이를 라이브러리(Library)라고 합니다. 그리고 아나콘다에는 데이터 사이언스에 필요한 라이브러리들이 자동적으로 설치가 되어있습니다. 복잡한 코드를 작성할 필요 없이 단어 하나면 데이터 사이언스에 필요한 기능을 이용할 수 있습니다. 만약 아나콘다를 이용하지 않는다면 해당 라이브러리들을 모두 일일이 설치해야 하는 불편함이 있습니다.

 

2. R과 파이썬 프로그래밍 모두 아나콘다 환경에서 실행 가능합니다.

많은 유저들은 아나콘다 환경에서 파이썬 코딩을 진행합니다. 하지만 아나콘다는 파이썬 프로그래밍만 지원하지 않습니다. 파이썬과 함께 많은 사람들이 데이터 사이언스를 위해 이용하는 프로그래밍인 R 코드 역시 지원합니다. 즉, 아나콘다에서는 파이썬 코드도 작업할 수 있고 R 코드도 작업할 수 있습니다. 어떤 프로그래밍 언어를 사용하던 사람이던 아나콘다를 이용할 수 있게 만든 것은 굉장히 큰 장점입니다. 위에서 설명했던 아나콘다의 가장 대표적인 기능인 주피터 노트북의 Jupyter라는 단어는 Julia, Python, R이라는 지원 언어 3가지의 앞글자를 따서 만들어졌습니다. 그만큼 아나콘다가 다양한 언어를 지원한다는데 장점이 있다는 것을 알 수 있습니다.

 

3. 깔끔하고 직관적인 UX/UI

아나콘다가 가지고 있는 또 하나의 장점으로 깔끔하고 직관적인 UX/UI를 말할 수 있습니다. 일반적으로 코딩을 진행한다고 생각하면 검은색 화면에 글씨들이 나열되어 있는 장면을 많이 생각합니다. 이런 화면이 겉보기에 멋있어 보일 수는 있지만 사실 작업을 하는 입장에서 편리함을 가져다주지는 않습니다. 그렇기에 어떤 프로그래밍 언어든 코딩을 하는 사람이 더 편리한 환경에서 작업을 할 수 있도록 노력하는 일환으로 다양한 프로그램을 제공하고 있습니다. 하지만 그 노력이 지나쳐 너무 많은 기능을 한 화면에 보여주려 하는 프로그램들이 많습니다. 

 

아나콘다는 이 점에서 차별성을 지닙니다. 아래는 아나콘다에서 제공하는 주피터 노트북을 통해 간단한 코드를 실행시킨 화면입니다. 기본적으로 이 화면에서는 코드와 코드 결과만을 보여주고 있습니다. 메모리, 변수 사용 현황 등 복잡한 내용들을 보여주지 않습니다. 정말 사용자들이 많이 이용하는 부분만을 더 크고 정확하게 보여주는 것입니다. 여기에 코드를 박스로 분산해 실행하여 각 박스별로 실행 화면을 보여주고 있음은 물론 해당 박스 옆에 In [5]와 같은 설명을 간단히 덧붙여 해당 코드가 몇 번째로 실행된 코드인지 알려줍니다. 작업 복잡성이 높은 코딩을 진행할수록 해당 부분은 정말 많은 편리성을 제공합니다. 또한 아래 화면에서 ‘사칙연산’ 부분과 같이 Markdown 기능을 쉽고 직관적으로 제공하여 코드 자체에 대한 설명을 하고 다른 사람이 이를 쉽게 이해할 수 있도록 환경이 구성되어 있습니다.

 

아나콘다 내 Jupyter Notebook에서의 코드 실행 화면

 

 

물론 데이터 사이언스 툴킷에 아나콘다만 존재하는 것은 아닙니다.

이러한 장점들을 기반으로 데이터 사이언스의 중요성이 점차 강조됨에 아나콘다의 인기도 함께 상승하고 있습니다. 하지만 생각해보면 데이터 사이언스의 중요성이 점차 강조되고 있기 때문에 데이터 사이언스 툴킷/분석 환경 측면에서 아나콘다를 제외하고도 많은 선택지가 있음 역시 분명합니다. 그럼에도 아나콘다는 여전히 많은 인기를 누리고 있고 동시에 그 인기를 위협하는 많은 경쟁자 역시 생겨나고 있습니다. 다음 2편에서는 이에 대한 내용을 알아보도록 하겠습니다.

댓글 0

삼더하기일

빅데이터와 인공지능을 연구하고 적용하는 현직 데이터 사이언티스트입니다. 드넓은 데이터 생태계에서 올바른, 목적있는, 논리적인 데이터 활용을 위해 노력하고 있습니다.

같은 분야를 다룬 글들을 권해드려요.

요즘 인기있는 이야기들을 권해드려요.

일주일에 한 번!
전문가들의 IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.

일주일에 한 번! 전문가들의 요즘IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.