포스트

빅데이터 / 파이썬이란? / 클라우드 환경 개발

빅데이터 수업의 파이썬 요약 / 클라우드 환경 개발

빅데이터 / 파이썬이란? / 클라우드 환경 개발

🔴 파이썬은 무엇인가? (파이썬에 대해)

만든이 : 귀도 반 로썸이 만든 인터프리터 언어 (한 줄씩 코드해석, 그떄그때 실행O)

강력한 객체지향프로그래밍 언어이다.

🟠 설치방법

파이썬 홈페이지에 접속하여, 다운로드

🟠 파이썬의 특징

🟡 다양한 산업에서 사용 (EX. 다양한 패키지를 제공한다)

아나콘다, PIP, 주피터 (생태계가 넓다)

🟡 직관적인 코드, 뛰어난 가독성

코드가 인간친화적이다 영어 문장을 읽는것과 같다 라고 표현한다.
아래는, java와 python의 a+b의 코드를 나타낸 것이다.

1
2
3
4
5
6
7
public class Main{
  public static void main(String[] args){
    int a = 10, b = 10;
    int result = a+b;
    System.out.print("The result:" + result);
  }
}
1
2
3
a = 10
b = 10
print("The result:", a+b)

이렇게, 파이썬은 코드의 가독성이 엄청난 언어이다.

🟡 indexing 과 slicing

집합 자료형들을 살펴보기전에 미리 알아두고 가보자

indexing

  • LIST, TUPLE 은 데이터에 접근하기 위해 전통적으로 배열에서 사용하는 인덱싱 방식을 사용할 수 있다.
1
2
3
test = ['P','Y','T','H','O','N']

index(test[2]) #몇번째 index인지 확인합니다.

Slicing

  • 무언가를 잘라내는, 연속적인 객체(집합 자료형)에 부여된 번호를 이용해 연속된 객체에서 일부 필요한 정보를 추출하는 것

  • 위에서 진행한 index함수로 일종의 슬라이싱을 했다 볼 수 있습니다.

🟡 데이터 묶음을 처리하기에 편리한 집합 자료형(LIST, TUPLE, DICT, SET)

SET

  • 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형

SET의 특징

  • 중복을 허용하지 않는다
  • 순서가 없다 (따라서 indexing으로 값을 얻을 수 없다)
  • 교집합, 합집합, 차집합을 구할 때 요긴하게 쓰인다.

TUPLE

  • 값을 저장하는 자료형 중 하나

TUPLE의 특징

  • 값을 넣으면 변경이 불가하다 (상수)
  • 순서가 있고(index), 수정과 삭제가 불가하다.

LIST

  • 값을 저장하는 자료형 중 하나

LIST의 특징

  • 순서가 있다(index), 수정과 삭제가 가능하다.
  • 다양한 자료형을 포함할 수 있다
  • 다만, 모든 요소를 포함하여 검색하기에 탐색 속도가 느리다

DICT

  • 각 키(key)에 대응하는 값(value)를 저장하는 자료형이다.

DICT의 특징

  • 키와 값은 쌍으로 구성되어야 한다.
  • 키를 사용하여 값에 접근할 수 있다.
  • 리스트와 달리, 순서가 없다.

🟡 메소드란?

클래스에 속한 객체들이 사용할 수 있는 함수 = 해당 클래스의 메소드라 부른다.

🟠 About OOP (객체지향프로그래밍)

Object(객체)를 추상화하여 상태와 행위를 가진 객체로 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방식이다.

왜 배워야하는가?

  • 깔끔한 코드(이해), 데이터의 캡슐화(데이터기반으로 동작하는 함수)
  • 우리가 필요한 구조와 정신적 규칙과 모델을 줘서 코드를 더욱 확장가능성 있도록 만드는 것
  • 서로 다른 종류의 데이터와 함수들을 모두 하나의 파일에 가지고 있는 것보다 데이터를 더 구체적으로 구성. (BOX, OBJECT, BUBBLE)
  • 코드를 보다 확장가능하게 만들며, 필요한 구조와 정신적인 규칙 및 모델을 제공
  • 어떻게 데이터를 구조화하는지 알려주며, 데이터를 수정하기 위한 함수를 어디에 넣어야하는지에 대한 안내 역할
  • 그렇게 되면 같은 수준에서 수많은 딕셔너리로 모두 다른 일을 하는 함수를 갖고 있을 필요가 없어진다.

객체가 없다면, 특히 협업으로 프로젝트가 커질 때 프로그램마다 서로 관련이 없는 로직이 하나의 프로그램 안에서 동작하고 결과적으로 서로에게 영향을 주게 된다.

🔴 PIP

PIP은 파이썬으로 작성된 라이브러리를 관리해주는 시스템이다.
CLI 방식으로 작동하며, 평소에는 필요한 패키지를 골라 다운받으면 됩니다.
하지만, 이번에는 아나콘다라는 파이썬 배포판을 통해 진행해볼 예정입니다.

🔴 아나콘다에서 주피터 노트북을 설치해보자

아나콘다는 수학과 과학 분야에서 사용되는 여러 패키지를 묶어 놓은 파이썬 배포판입니다

🟠 아나콘다 설치하기

아나콘다 설치 사이트에 접속하여 운영체제에 맞게 다운로드하자

🟠 주피터 노트북 둘러보기

주피터 노트북의 특징

  • PYTHON, R, Julia, Scala, Perl, PHP등 지원
  • 프로그램 코드를 WEB 환경에서 실행하고 결과를 보여주는 대화식 개발환경
  • WEB에 명령어를 입력하면, 명령어를 노트북 서버가 커널에 전달한다.

커널은 사용자가 파이썬 코드를 실행하는 영역이며, 커널에서 실행된 결과는 노트북 서버를 통해 WEB으로 출력됩니다.

주피터 노트북의 기능

이름기능
Interrupt중지 (무한루프)
Restart재시작
Restart & Clear Output커널 재기동, 기존 수행 결과물 모두소거
Restart & Run All모든 코드를 순서대로 실행하는 기능

🟠 마크다운 MARKDOWN

마크다운: 작성된 코드를 설명하는 읽기 쉬운 문서를 작성할 수 있습니다.
현재 이 블로그의 모든 포스팅도 마크다운 문법을 토대로 작성되었다.

🟠 명령모드 / 편집 모드

새로운 내용 입력 - 셀 선택 후 Code, Markdown

명령모드는 ESC로 전환할 수 있습니다 !

명령모드에서 사용가능한 단축키들

단축키명령어
a현재 셀 위에 새로운 셀 생성
b현재 셀 아래에 새로운 셀 생성
x현재 셀 삭제
z삭제 되돌리기
c, v각각 복사, 붙여넣기

이외에는 32페이지 참조

편집모드는 Enter로 전환할 수 있습니다 !

🔴 구글 - 코래버러토리(코랩)

클라우드 환경에서 파이썬 개발을 할 수 있는 좋은 환경 제공
주피터 노트북을 구글의 서버에서 구동시켜 사용자가 이 서버에 접속하는 방식으로 파이썬을 이용한다.

장점

  • 파이썬 설치 X / WEB에서 파이썬 개발을 할 수 있다
  • 다른 사용자들과 파일 공유 (협업개발이 손쉽다)
  • 넘파이, 판다스, 사이킷런, 텐서플로우 등의 패키지가 미리 설치되어 있다
  • 클라우드에서 제공하는 GPU와 TPU를 사용하여 고성능 계산을 할 수 있다.

파일은 구글 드라이브에 디폴트 네임으로 저장된다.

🟠 코랩 개발 환경 구축

코랩 사이트

  • 구글 계정 로그인 필요

🟠 코랩에서 디스크 마운트를 통해 로컬 파일을 옮겨서 작업을 진행해보자

마운트는 어떤 장치를 컴퓨터 시스템에서 접근할 수 있도록 등록하는 행위를 말합니다. 이번의 경우, 구글 드라이브의 파일을 마운트하여 코랩에서 사용할 수 있게 할 예정입니다.

  • !pwd: 현재 작업중인 디렉토리를 확인합니다
  • !ls -l /content: /content 디렉토리의 파일들을 확인합니다.

ValueError: Mountpoint must be in a directory that exists 가 뜬다면 다음 코드를 실행해보자

1
2
3
4
5
6
7
8
9
from google.colab import drive

# Create the directory if it doesn't exist
import os
if not os.path.exists('content/drive'):
    os.makedirs('content/drive')

# Now mount Google Drive
drive.mount('content/drive')

성공적으로 마운트를 하면 Mounted at content/drive가 뜨며, /content/drive/mydrive 라는 디렉토리가 생성됩니다. image

🟠 마운트한 mydrive 폴더에 업로드하고 사용해보자

실제 데이터를 저장하여 코랩에서 사용해보자.
프라임 로봇에서 받을 수 있다
mydrive 디렉토리에 업로드 후, 파일을 우클릭하여 경로복사를 통해 붙여넣고 실행한다.
image

🔴 마무리, 생각적기

이렇게 인기있는 언어 파이썬에 대해 살펴보고, 클라우드 기반 개발 환경을 셋팅해보고 간략하게 실습해보며 간단한 기능들을 살펴볼 수 있었습니다.

개인적으로는 당장 파이썬을 설치하기 어려운 상황에서는 주피터 노트북이나 코랩 같은 클라우드 기반의 개발환경이 더 매력적으로 다가올 수 있지 않나 싶습니다. UI 면에서는 개인적으로 주피터 노트북이 더 눈에 익습니다. ^^;

결과적으로 파이썬의 개념과 다양한 개발환경들을 확인해보고 정리해보는 좋은 시간이었습니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.