본문 바로가기

Python 기초

코랩(Colab)

*이 글을 읽기전에 작성자 개인의견이 있으니, 다른 블로그와 교차로 읽는것을 권장합니다.*

프로그래밍, 개발에서 언어, 서버, 프레임 워크, DB, IDE, API 등 여러 단어를 사용합니다. 취업을 하거나 이직할 때, 개발자가 자신의 기술 스택에 대해서 얘기할 때 이러한 용어에 대해서 설명합니다. 이러한 용어는 어떤 것을 설명할까요?

  1. 언어 (Programming Language): 프로그래밍 언어는 컴퓨터와 소통하기 위해 사용되는 언어입니다. 예를 들어, Python, Java, JavaScript, C++, Ruby 등이 있습니다.
  2. 서버 (Server): 서버는 네트워크를 통해 클라이언트에게 서비스를 제공하는 컴퓨터 시스템입니다. 웹 서버, 데이터베이스 서버 등이 있으며, 서버는 클라이언트의 요청을 처리하고 결과를 반환합니다.
  3. 프레임워크 (Framework): 프레임워크는 개발자가 애플리케이션을 빠르게 개발할 수 있도록 필요한 기본 구조와 라이브러리를 제공하는 소프트웨어입니다. 예를 들어, 웹 애플리케이션을 개발할 때는 Django, Flask (Python 기반), Spring (Java 기반)과 같은 프레임워크를 사용할 수 있습니다.
  4. 데이터베이스 (Database, DB): 데이터베이스는 데이터를 저장, 관리, 조작할 수 있는 시스템입니다. 예를 들어, 관계형 데이터베이스로는 MySQL, PostgreSQL, Oracle 등이 있고, NoSQL 데이터베이스로는 MongoDB, Cassandra 등이 있습니다.
  5. 통합 개발 환경 (Integrated Development Environment, IDE): IDE는 개발자가 소프트웨어를 개발하는 데 필요한 도구를 통합하여 제공하는 소프트웨어입니다. 다른 말로 개발 도구(Development Tool)이라고도 하며, 코드 편집기, 컴파일러, 디버거 등의 도구를 포함합니다. 예를 들어, Visual Studio (Microsoft), IntelliJ IDEA (JetBrains), PyCharm (JetBrains) 등이 있습니다.
  6. API (Application Programming Interface): API는 소프트웨어 간에 서로 통신하기 위한 인터페이스입니다. API는 개발자가 소프트웨어의 기능을 활용하거나 다른 소프트웨어와 통합할 수 있도록 합니다. 예를 들어, Google Maps API는 지도 데이터를 가져와 웹 애플리케이션에 표시할 수 있도록 합니다.
  7. 런타임 환경 (Runtime Environment): 런타임 환경은 프로그램이 실행되는 환경을 제공하는 소프트웨어입니다. 프로그램의 실행을 위해 필요한 여러 가지 서비스를 제공하며, 프로그램의 실행 흐름을 제어합니다. 예를 들어, Java의 런타임 환경은 Java Virtual Machine (JVM)이며, JavaScript의 런타임 환경으로는 Node.js가 있습니다.

프로그래밍 언어는 개발자가 소프트웨어를 작성하는 데 사용하는 언어이고, 통합 개발 환경개발을 위한 도구를 통합하여 제공하는 소프트웨어이며, 런타임 환경은 프로그램이 실행되는 환경을 제공하는 소프트웨어입니다.

1. 구글 코랩(Google Colab)

프로그래밍 언어로써 파이썬을 실행하기 위해선 실행하기 위한 툴이 필요합니다. 대표적인 파이썬 툴은 파이참(Pycharm), 비쥬얼 스튜디오(Visual Studio), 주피터(Jupyter), 코랩(Colab)이 있습니다. 다른 툴이 다운로드가 필요한 외부 다운로드가 필요하다면, 코랩구글드라이브에서 자체적으로 실행가능한 클라우드 기반 jupyter notebook환경입니다. 여러 모듈이 설치가능하고 데이터 분석, ML, DL에 활용하고 있습니다.

2. 특징

2-1. GPU

데이터 연산, 처리를 할때에 있어서 화면을 제어, 연산, 처리하는 속도가 빠른것은 중요합니다. 컴퓨터의 부품은 간단히 설명하면 다음과 같이 설명할 수 있는데, Colab은 무료로 GPU를 제공하고 있습니다. 

CPU: 어떤 os관계없이, 컴퓨터 제어,연산,계산하는데 사용(이진계산 처리), 캐시(임시저장)=>성능이 좋으면
속도 상승
RAM: 프로그램에서 많이 사용, 메모리, 연산할때 연산하고자 하는 데이터 임시저장
GPU: 화면에 제어,연산하는 장치, CPU에 비해 병렬처리->처리속도가 더 빠름, 코인채굴(문제풀기)->GPU가
더 유리하기에 사용, 코랩은 GPU사용
TPU는 ML,DL에 더 특화, 특정시간만 사용가능

2-2.클라우드 기반

로컬 환경과 상관없이, 구글 브라우저만 사용가능하다면 코랩을 사용할 수 있습니다.

2-3. Jupyter notebook 호환성

코랩은 주피터 노트북 형식을 사용하기에 호환, 공유됩니다.

2-4. 구글 드라이브 

머신러닝이나 딥러닝을 다루다 보면 데이터 용량이 거대해지는데, 컴퓨터 내부저장이 아닌, 외부장치에 저장하는 것에 큰 이점이 있습니다.

3. Colab 사용하기

3.1 구글 홈페이지에 로그인 합니다

3.2 구글 드라이브에 접속합니다.

오른쪽 신규에서 코랩을 클릭하고, 새로 만듭니다.

4. 마크 다운(Mark down)

코랩 사용과 더불어서 텍스트와 코드 셀, 마크다운에 대해 설명합니다. 마크업 언어는 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어입니다. 태그(/)는 주석표현에 사용되었으나, 용도가 확장되어 문서구조를 표현하는 역할을 하는데, 이러한 태그 방법의 체계마크업 언어라고 합니다. 마크다운은 일반 텍스트 기반의 경량 마크업 언어로써, 마크업 언어가 태그(/)를 사용하여 표기했다면, 마크다운은 #,*,_,[],()를 사용하여 더 간단하게 표현한 언어입니다.

마크업 언어: 태그(/)를 사용한 표현

마크다운 언어를 쓸 때, ``` 표현을 쓰는데 키보드 ~에 있는 `와 작은 따옴표 '는 다르다는 것을 구분하시면 좋습니다.

4-1. 제목 표현

#횟수에 따라 글씨 크기가 달라짐

4-2. 강조 표현

볼드체는 *를 앞뒤로 2번사용, 이탤릭체는 *를 앞뒤로 1번 사용

4-3. 목록

4-4. 링크, 이미지, 수평선

저작권 문제로 사진 안나오네요

5. 셀

코랩의 셀은 코드를 입력하는 코드(Code) 셀과 텍스트(Text) 셀 2가지로 나뉘어 있습니다. 텍스트에서 T B는 마크다운언어(html) 역할을 합니다. B는 볼드체 마크다운(글씨 진하게), T는 제목표현 마크다운

T라고 표현되었지만, 문장전체에 #를 넣음으로써 글씨 크기차이를 마크다운으로 표현하는 기능
글씨를 진한 볼드체로 마크다운 표현기능
제목표현 마크다운을 이용하면 옆의 목차에 인덱스 표현을 할 수 있다

 

리눅스 명령어
ubuntu 사용,
파이썬 3.10.12, 코랩은 현재 가장 범용적인 버전 사용

 

파이썬은 호환성때문에 구버전 프로그램 지원, 한개의 윈도우에 여러버전의 인터프리터 사용가능함

5-1. 셀 삽입 (단축키)

* 상단의 "+코드", "+텍스트" 버튼을 눌러 삽입
* 코드셀을 위에 삽입: ctrl + M A
* 코드셀을 아래에 삽입: ctrl + M B
* 텍스트창은 단축키로 생성 불가능-> 따라서 셀을 변경하는 방식으로 만듬

5-2. 셀 변경 

* 코드셀을 텍스트셀로 변경: ctrl + M M
* 텍스트셀을 코드셀로 변경: ctrl + M Y

5-3. 셀 삭제

* 우측의 휴지통 아이콘을 클릭하여 삭제
* ctrl + M D (D는 Delete생각)

5-4. 셀 실행

* ctrl + enter : 해당 셀을 실행하고 커서는 해당 셀에 남음
* shift + enter : 해당 셀을 실행하고 다음셀로 넘어감(없을 땐 만들지만, 있을땐 만들지 않음)
* Alt + enter : 해당 셀을 실행하고 커서는 다음 셀로 삽입 후 넘어감

5-5. 실행 취소(작업 되돌리기)

* ctrl + M Z : 실행한 내용을 취소(실수로 삭제했을 때 작업 되돌리기)