본문 바로가기

Study/AI

[부스트코스 코칭스터디 AI Basic 1기] #1-1. 파이썬/AI 개발환경 준비하기

반응형

본 포스트는 '부스트코스 코칭스터디 AI Basic 1기'로 활동하고 '인공지능 기초 다지기' 강의를 들으며 공부한 것을 정리한 글입니다.

 

# 1-1-1. 기본적인 컴퓨터 시스템(파일 시스템&터미널 환경)

컴퓨터 OS

Operating System, 즉 운영체제를 말한다. 프로그램이 동작할 수 있는 구동 환경이다. 

application은 모두 OS에 의존적이기 때문에 프로그램을 설치할 때 사용하는 OS에 맞추어서 설치해야 한다. 그러나 Python은 운영체제에 독립적인 프로그래밍 언어이다.

 

파일 시스템(File system)

OS에서 파일을 저장하는 트리구조 저장 체계

파일의 기본 체계는 파일과 디렉토리로 나누어지며 디렉토리(Directory)는 폴더로, 파일과 다른 디렉토리를 포함할 수 있다. 윈도우를 기준으로, root 디렉토리는 C드라이브이다.

 

절대 경로는 루트 디렉토리(C:)부터 파일 위치까지의 경로이다. 상대경로는 현재 있는 디렉토리부터 타깃 파일까지의 경로이다. (.: 현재 위치, ..: 앞의 위치)

 

터미널(Terminal)

Console = Terminal = CMD창

마우스가 아닌 키보드로 text 명령을 입력하고 프로그램을 실행하는 인터페이스 체계이다. 마우스를 이용하는 환경을 GUI(Graphical User Interface)라고 하고, 명령어를 이용하는 환경을 CLI(Command Line Interface)라고 한다.

Windows는 CMD window, Windows Terminal을 통해, Mac과 Linux는 Terminal을 통해 이용할 수 있다.

윈도우의 경우,  cmder를 통해 Linux 명령어를 사용할 수 있어서 이 프로그램도 많이 사용한다.

 

각 터미널에서는 프로그램을 작동하는 shell이 존재하고 shell 마다 다른 명령어를 사용한다. shell은 core에 명령을 전달해주는 껍데기 역할이다. shell로 명령을 하면 core에서는 return을 해준다.

shell에 해당하는 것으로는 Powershell, CMD 창, bash, zsh 등이 있다. 

 

# 1-1-2. 파이썬 Overview

Overview

- 1991년 귀도 반 로섬이 발표

- 플랫폼 독립적

- 인터프리터 언어

- 객체 지향

- 동적 타이핑 언어

- 처음에는 C언어로 구현되었음

1. 플랫폼에 독립적인 인터프리터 언어

- 플랫폼 = OS

- 인터프리터

: 소스코드를 바로 실행할 수 있게 지원하는 프로그램 실행 방법. 저마다 다른 프로그램의 문법이 OS에서 돌아갈 수 있도록 번역해주는 역할이다.

 

한 번 프로그램을 작성하면 운영체제에 상관없이 사용할 수 있다. 인터프리터만 각 운영체제에 맞게 깔려있으면, 인터프리터가 알아서 번역해주기 때문이다.

 

컴파일러 VS. 인터프리터 

둘 다 사람만 알 수 있는 고급언어를 기계(CPU)만 알 수 있는 저급 언어로 변환시킨다는 점에서는 동일하다.

컴파일러 언어는 작성하는 데 시간이 오래걸리지만 실행에 걸리는 시간이 짧다.

반대로 인터프리터 언어는 작성하는 데 걸리는 시간이 짧지만 실행에 오랜 시간이 걸린다.

 

2. 객체 지향의 동적 타이핑 언어

객체 지향적 언어

- 실행 순서가 아닌 단위 모듈(객체, object) 중심으로 프로그램을 작성한다.

- 하나의 객체는 어떤 목적을 달성하기 위한 행동(method)와 속성(attribute)을 가지고 있는다.

 

동적 타이핑 언어

- 프로그램이 실행하는 시점에 프로그램이 사용해야할 데이터에 대한 타입을 결정한다.

 

# 1-1-3. 파이썬 코딩환경(OS 및 코드편집기)

개발 환경 설정은 아래 세 가지의 개발환경을 결정하는 것이다.

- OS 설정

- python Interpreter

- 코드 편집기(editor)

 

OS

OS Windows Linux Mac OS
장점 친숙, 초기엔 쉬움 모듈 설치 쉬움, 공짜, 참고 문서 많음, AI로 먹고 살겠다면 배워야 함 모듈 설치 쉬움, 참고 문서 많음
단점 모듈 설치 어려움 OS 자체 사용이 어려움 비쌈

 

파이썬 인터프리터

2.7와 3.X 버전이 존재하고 현재는 3.X 기준으로 모든 시스템이 작동된다. (2020년 부터 Tensorflow에서 2.X 지원 안 함)

종류 설명
Python 일반적인 파이썬, 기본적인 모듈을 포함
Anaconda 다양한 과학 계산용 모듈들 묶어서 패키지

 

코드 편집기(editor)

파이썬 코드도 일종의 문서이므로, 문서 편집기가 필요하다. text 타입의 문서를 저장하는 모든 편집기를 사용할 ㅅ ㅜ있다.

종류 설명
메모장 윈도우의 기본 문서 편집 도구
VI editor(Vim) 리눅스의 기본 문서 편집 도구
Sublime Text, Atom, VS Code 프로그래밍에 특화된 문서 편집도구
PyCharm 다양한 기능을 갖춘 파이썬 전용 개발 도구

 

코드 편집기에는 두 가지 타입이 있다.

1. 설치된 어플리케이션

2. 웹 기반 인터랙티브 편집기(jupyter, colab)

 

- Type 1: Python

Anaconda(인터프리터) + VS Code(코드 편집기)

Anaconda VS Code
- 간편한 파이썬 패키지 관리 도구
- ML의 사실상 표준
- MS에서 제공하는 코드 편집 도구
- 최근 가장 빨리 발전 중

 

- Type 2: Data analysis + Deep learning

jupyter or colab(with GPU)

jupyter colab
웹 기반 인터랙티브 코드 편집기의 표준 구글에서 제공하는 클라우드 기반 인터랙티브 코드 편집기

 

# 1-1-4. 파이썬 코딩환경(Jupyter notebook)

1. Jupyter notebook

파이썬의 기본적인 실행환경: python shell(cmd에 python 치면 나오는 환경) + 코드 편집도구

shell은 한 줄 씩 써야하므로 길게 작업하는 게 불가능하다. 때문에 이 둘을 합친 것인 Jupyter가 탄생했다.

Jupyter는 데이터 분석을 위한 파이썬 IDE이다.

- IPython 커널을 기반으로 하는 대화형 파이썬 셸

- 일반적인 터미널 셸(py 확장자) + 웹 기반 데이터 분석 Notebook 제공 -> ipynb 확장자

- 미디어, 텍스트, 코드, 수식 등을 하나의 문서로 표현 가능

-  사실상의 데이터 분석 Interactive Shell의 표준

- Julia + Python + R 의 세 언어에서 나옴 -> Jupyter

 

* interactive: 엔터를 누르면 바로 결과를 보여주는 형식

 

miniconda의 prompt 환경에서 원하는 폴더로 이동하고 jupyter notebook을 실행시키면, 해당 폴더를 root directory로 사용할 수 있다.

 

cell 단위로 실행되며 실행 시점에 해당 코드가 memory에 올라간다.

실행 명령어는 ctrl+enter, shift+enter, alt+enter이다.

 

2. Colab

- 구글이 개발한 클라우드 기반의 jupyter notebook

- 구글 드라이브 + GCP(Google Cloud Platform) + jupyter 등이 합쳐져서 사용자가 손쉽게 접근

- 초반 여러가지 모듈 설치의 장점을 가짐

- 구글 드라이브의 파일을 업로드(마운트)하여 사용가능한 장점 가짐

- VSCode 등과 연결해서 사용 가능

- V100 이상의 GPU 무료로 쓸 수 있다는 장점 가짐 

파일은 구글 드라이브에 저장된다.

 

* 단축키가 안 먹힐 때가 많아서 주피터 노트북이 더 편할 수 있다.

반응형