코랩
,노트북
,구글 드라이브
,깃허브
,마크다운
이 책의 모든 코드는 웹 브라우저에서 파이썬 코드를 실행할 수 있는 구글 코랩을 사용하여 작성되었습니다. 본격적으로 데이터 분석을 배우기 전에 구글 코랩을 소개하고 간단한 사용법을 익혀 보겠습니다.
코랩(Colab)은 구글이 대화식 프로그래밍 환경인 주피터 노트북(Jupyter Notebook)을 커스터마이징한 것으로 웹 브라우저에서 파이썬 코드를 작성하고 실행할 수 있다. 구글 코랩과 주피터 노트북을 간략하게 비교하면 다음 표와 같다.
특징 | 구글 코랩 | 주피터 노트북 |
---|---|---|
설치 | 클라우드 기반이므로 설치 불필요 | 내 컴퓨터에 설치 |
실행 환경 | 인터넷이 연결된 웹 브라우저 | 오프라인 상태의 웹 브라우저 |
파일 저장 | 구글 드라이브에 자동 저장 | 내 컴퓨터 하드 디스크에 저장 |
패키지 | 사전 설치되어 제공 | 패키지 관리자로 직접 설치 |
작성한 코랩 파일은 노트북(Notebook) 혹은 코랩 메모장이라고도 부른다. 본 학습 과정에서는 노트북이라는 용어로 통일하여 사용한다. 노트북을 사용하면 코드를 설명하는 문서를 따로 만들지 않고 코드와 텍스트, 심지어 코드 실행 결과까지 함꼐 담을 수 있다. 따라서 다른 사람에게서 노트북을 받으면 코드를 실행할 필요 없이 코드 설명과 실행 결과를 바로 확인할 수 있다.
사용을 위해서는 구글 계정이 반드시 필요하다. 계정이 있다면 구글 코랩 웹 페이지에 접속해보자. 다음, 구글 코랩 웹 페이지의 오른쪽 상단에서 [로그인] 버튼을 클릭하여 구글 계정에 로그인한다. 기본 시작 페이지는 다음과 같다.
코랩에서 제공하는 텍스트 셀 툴바를 사용하면 다양한 형태로 글을 꾸밀 수 있다. 맨 왼쪽부터 순서대로 제목 전환, 굵게, 기울임꼴, 코드로 형식 지정, 링크 삽입, 이미지 삽입, 들여쓰기, 번호 매기기 목록 추가, 글머리기호 목록 추가, 가로줄 추가, LaTeX, 이모티콘 삽입, 마크다운 미리보기 위치 변경이다.
현재 선택한 셀의 오른쪽 위에는 현재 셀에 적용할 수 있는 기능이 아이콘으로 표시된다. 맨 왼쪽부터 순서대로 위로 셀 이동, 아래로 셀 이동, 셀에 연결, 편집기 설정 열기, 수정, 탭에서 셀 미러링, 셀 삭제, 셀 작업 더 보기이다.
코랩 노트북은 구글 클라우드 가상 서비를 사용한다. 아래 사진과 같이 노트북 메뉴바의 오른쪽에 있는 RAM, 디스크 아이콘에 마우스 커서를 올리면 연결된 런타임에 대한 정보를 얻을 수 있다. 만약 이 부분이 [연결]로 되어있다면 클릭해서 런타임을 연결하면 된다.
아래와 같이 커서를 올리면 현재 노트북이 구글 클라우드의 Compute Engine에 연결되어 있다는 것, RAM과 디스트 사용율도 추가적으로 알 수 있다.
구글 계정만 있으면 코랩 노트북을 사용해 무료로 가성 서버를 활용할 수 있다. 단, 동시에 사용할 수 있는 구글 클라우드의 가성 서버는 최대 다섯 개로 제한된다. 다섯 개 이상의 노트북을 열어야 한다면 실행 중인 노트북을 저장하고 런타임과 연결을 끊어야 한다. 또한 한 개의 노트북을 12시간 이상 실행할 수 없다.
새로운 노트북을 만들고 저장하는 방법을 알아보자.
저장된 노트북을 코랩으로 불러올 수도 있다. 구글 드라이브에서 노트북을 더블 클릭합니다. 또는 노트북을 선택한 후 마우스 오른쪽 버튼을 클릭하여 [연결 앱] - [Google Colaboratory]를 선택하면 노트북을 구글 코랩에서 열 수 있다.
깃허브(GitHub)에 있는 주피터 노트북을 다운로드하거나 깃허브 저장소를 클론(Clone)하여 사용할 수 있지만 간단하게 코랩에서 바로 실행하는 방법도 있다.
텍스트 셀의 텍스는 툴바로 편집할 수 있지만, 마크다운을 활용하여 편집할 수도 있다. 코랩에서 사용할 수 있는 마크다운 서식은 다음과 같다.
마크다운 서식 | 설명 | 예시 |
---|---|---|
# 제목1 | <h1> 태그와 동일 | |
## 제목1 | <h2> 태그와 동일 | |
### 제목1 | <h3> 태그와 동일 | |
#### 제목1 | <h4> 태그와 동일 | |
##### 제목1 | <h5> 태그와 동일 | |
**혼공분석** | 글씨 굵게 | 혼공분석 |
*혼공분석* 또는 _혼공분석_ | 글씨 기울임꼴 | 혼공분석 |
~~혼공분석~~ | 취소선 추가 | |
`print("Hello World!")` | 코드 서체 | |
> 혼공분석 | 들여쓰기 | |
* 혼공분석 또는 - 혼공분석 | 글머리기호 목록 | |
[한빛미디어](http://www.hanbit.co.kr/) | 링크 생성 | 한빛미디어 |
![한빛미디어](http://www.hanbit.co.kr/images/common/logo_hanbit.png) | 이미지 추가 | |
$y = x \times z$ | 레이텍 추가 |