python 설치하지 않고 실행하는 방법 Google에서 만든 웹 서비스!

인문학적 개발자 늘한·2019년 12월 15일
2

python

목록 보기
1/1
post-thumbnail

안녕하세요 인문학적 개발자 늘한입니다. 오늘은 python 설치를 하지 않아도 사용할 수 있게 해주는 웹 서비스인 Google Colaboratory에 대해서 알아보겠습니다.

Google Colaboratory란?

간단하게는 클라우드 웹 에디터라고 생각해 볼 수 있는 서비스 입니다.

일반적으로 python을 이용해서 데이터 시각화, 머신러닝과 같은 프로젝트를 진행하는 사람들은 jupyter notebook 이라는 로컬 환경을 많이 사용하는데요,

이와 같은 notebook 형식의 python 코딩을 Google Colaboratory는 특별한 설치 없이 웹에서 바로 할 수 있게 해주는 것입니다.

다소 특이한 개발 환경으로, 스타일 있는 문서 양식에 코딩을 접목시킬 수 있다. 
블로그나 노트를 쓰듯이 단락을 만들고, 그 안에 Cell을 만들어서 코드를 적어놓고, 
실행시키면 Plot 같은 것을 보여줄 수 있다.

물론 이런 것이 무슨 프로그래밍인가 싶긴 하지만, 
데이터 사이언스나 데이터 분석과 같은 분야는 완성된 시스템을 만들기보다, 
파이썬 코드로 데이터를 어떻게 처리하면 되는지 프로토타입을 만들고 그것을 가지고 리포트를 쓰거나 
프리젠테이션을 하는 일이 많기 때문에 많이 사용한다. 

즉 이들에게는 하나의 완성된 프로그램을 만드는 것이 아니라 데이터를 이리저리 돌려보며 
코딩 -> 결과 확인 -> 코드 수정 -> 결과 확인 등의 반복적인 작업이 중요하기 때문이며, 
데이터 시각화와 같은 분야에서도 코드를 셀 단위로 나누어 반복 수정하는 작업을 하는 데에 있어서 
매우 유용하기 때문이다. 

SymPy, NumPy, SciPy, Matplotlib 같은 수학, 과학, 머신 러닝 라이브러리를 자주 이용하는 환경에서
개발할 때 유용한 편이며, pandas 등의 라이브러리를 사용하여 데이터 분석을 하는 데도 많이 사용한다.

사실상 데이터 분야에서 Notebook은 업계 표준과 같은 취급이며, 
이 때문에 Google의 Colaboratory나 MS의 Azure Notebook과 같은 
클라우드 기반의 데이터 분석 환경 역시 jupyter notebook을 모방하거나 탑재하고 있다. 

출처- 나무위키```

뭐 그렇다고 합니다. 아무튼 중요한 것은 귀찮은 과정 없이 저희는 바로 python 코드를 .ipynb 파일로(notebook 파일 확장자) 만들어 볼 수 있고 테스트 해볼 수 있다는 것입니다.


## Colaboratory 이용하기
일단 접근성이 아주 뛰어납니다. 

![image.png](https://velog.velcdn.com/post-images%2Fneulhan%2Fa19b8810-1f79-11ea-9949-b753e7d52c94%2Fimage.png)
구글에 colab이라고 검색하기만 해도 나옵니다.
![image.png](https://velog.velcdn.com/post-images%2Fneulhan%2F8ae07090-1f79-11ea-8ea7-f145881a059a%2Fimage.png)

해당 링크를 클릭하면 google 계정을 이용한 간단한 로그인 후에 서비스를 이용할 수 있습니다.

![image.png](https://velog.velcdn.com/post-images%2Fneulhan%2Fd75fdff0-1f79-11ea-9ec5-29188cda0ac8%2Fimage.png)

저희가 이용할 기능은 python3 노트입니다. 

한번 시작해보도록 하겠습니다.



![image.png](https://velog.velcdn.com/post-images%2Fneulhan%2F7ed1c7d0-1f7a-11ea-9949-b753e7d52c94%2Fimage.png)


python3 노트는 각각의 cell로 구성되어있습니다.
각각의 cell은 shift + Enter 단축키로 간단하게 실행할 수 있고, 
왼쪽 위에 위치한 '+코드' 버튼을 통해 코드를 입력할 수 있는 cell을 추가해 줄 수 있습니다.


## markdown 사용하기
```다소 특이한 개발 환경으로, 스타일 있는 문서 양식에 코딩을 접목시킬 수 있다.  ```

위에서 봤던 나무위키 글의 일부입니다. 

notebook 형식의 개발의 가장 큰 장점 중 하나가 무엇이냐고 물어본다면,

코드를 매우 읽기 쉽게 설명할 수 있다는 점을 꼽을 수 있습니다. 


![image.png](https://velog.velcdn.com/post-images%2Fneulhan%2F798c0780-1f7b-11ea-b89e-5310e129c50b%2Fimage.png)
왼쪽 상단에 있는 '+텍스트' 라고 써있는 버튼을 누르면

![image.png](https://velog.velcdn.com/post-images%2Fneulhan%2F9a6748c0-1f7b-11ea-9949-b753e7d52c94%2Fimage.png)

마크다운 형식으로 문서를 작성할 수 있는 텍스트 창이 나오게 됩니다.

![image.png](https://velog.velcdn.com/post-images%2Fneulhan%2Ff4925290-1f7b-11ea-8ea7-f145881a059a%2Fimage.png)
이렇게 다양한 마크다운 문법을 활용해서 이미지, 텍스트가 들어있는 간단한 문서를 만들 수 있습니다.
마크다운 문법에 대한 내용은 구글에 검색하면 많은 자료들이 있으니 시간날 때 간단히 읽어보시면 도움이 되실 겁니다.

이처럼 마크다운 문법을 활용해서 매우 직관적이고 읽기 쉬운 코드를 문서와 함께 구성할 수 있다는 점이 아주 매력적이지 않나요?
## 협업

![image.png](https://velog.velcdn.com/post-images%2Fneulhan%2Fb41c0db0-1f7a-11ea-9949-b753e7d52c94%2Fimage.png)

colab은 마치 google docs처럼 협업자와 노트를 공유해서 사용할 수 있습니다.
이는 협업자와 함께 간단한 작업을 할 때도 나쁘지 않은 기능이고,

프로그램의 간단한 실행결과를 누군가에게 보여줘야 할 때도 빛을 발하는 기능입니다.

저렇게 이메일을 보내서 협업자를 초대할 수 있고, 초대된 협업자와 colab에서 실시간으로 동시 작업이 가능합니다.


![image.png](https://velog.velcdn.com/post-images%2Fneulhan%2F7ec4bd90-1f7c-11ea-9ec5-29188cda0ac8%2Fimage.png)

초대할 때 해당 사용자에 대한 권한 설정도 해줄 수 있습니다!

코드리뷰, 수정, 프로토타입 시연 등 용도에 맞게 공유할 수 있을겁니다.

## 마치며 
colab은 매우 간단하게 python 프로그램을 짜볼 수 있는 웹 환경임과 동시에,

크롤링, 데이터 시각화, 머신러닝과 같은 프로젝트를 진행할 때 자주 쓰이는 notebook 형식을 클라우드로 사용할 수 있는 좋은 툴이기도 합니다. 

또한 로컬 환경에서는 pip install을 일일이 해줘야 하는 패키지들도 colab에는 대다수가 깔려있습니다. 수고를 줄일 수 있는 부분입니다.

이러한 특성을 활용하여 앞으로 다음 글인 'python 웹 크롤링 기초' 에서도 colab을 이용해서 진행할 예정입니다.

다음에 올라올 크롤링 기초 글도 많이 기대해주세요!

profile
영어영문학과 출신의 개발자 늘한입니다. Python 을 좋아합니다.

2개의 댓글

comment-user-thumbnail
2019년 12월 16일

앗! 이 글보고 갑자기 생각난건데, https://colab.research.google.com/github/nickwalton/AIDungeon/blob/master/AIDungeon_2.ipynb
라고 colab을 이용해서 만든 ai 텍스트게임이 생각나네요 ㅎㅎ

1개의 답글