우분투라는 운영체제 안에서 파이썬이라는 프로그래밍 언어로, 텐서플로우라는 딥러닝 프레임워크를 쓸 예정
우분투 – 리눅스(Linux) 기반으로 만들어진 운영 체제
텐서플로우 – 머신러닝, 딥러닝을 위해 많이 쓰이는 함수와 클래스들을 한 곳에 모아 놓은 라이브러리
라이브러리 – 특정 기능을 위한 여러 함수 또는 클래스를 담고 있는 보따리
운영 체제 – 컴퓨터의 하드웨어를 관리하는 역할. 작업 관리, 프로그램 제어 등 컴퓨터가 수행하는 복잡하고 다양한 기능들을 모아 만든 소프트웨어. CPU, 메모리 등의 복잡한 하드웨어를 잘 모르더라도 편리하게 컴퓨터 자원을 사용하도록 도와주는 프로그램
커널 (Kernel)
LMS 브라우저 상에서 파이썬 코드를 수행할 수 있다. 하지만 코드가 실제로 브라우저 상에서 실행되는 것은 아니다. 코드가 실제로 수행되기 위한 프로세스가 별도로 필요한데, 이를 커널(Kernel)이라고 한다.
IDE (Integrated Development Environment)
: 통합 개발 환경
다양한 코드 편집 기능이 있어서 코드 작성을 편리하게 해주고, 완성된 코드들을 자동으로 빌드해주며, 문제가 있을 경우 디버깅 또한 편리하게 할 수 있도록 도와주는 프로그램
Ex) PyCharm, Spyder, PyDev, IDLE, Wing
터미널 상에서 파이썬을 사용하면 코드가 한 줄 단위로 실행되기에 복잡한 코드를 다루기엔 한계가 있기에 사용한다.
Home : 디렉토리, ~ 라고도 표시
pwd : Print Working Directory
ls : List, 현재 디렉토리 내의 모든 파일 또는 하위 디렉토리의 목록을 출력
cd : Change Directory. cd 명령어 뒤에 이동하기를 원하는 디렉토리 이름을 입력하면 그 디렉토리로 이동
cd ~ : ~ 위치로 이동, 현재 어떤 폴더 위치에 있었든지 항상 /aiffel 위치로 이동
cd 뒤에 원하는 디렉토리의 이름 대신, .. 을 입력하면 상위 폴더로 나간다.
$ mkdir new_folder
$ ls
aiffel data new_folder
mkdir : Make Directory
new_folder라는 이름의 폴더를 생성한 후 ls 명령어로 목록을 다시 출력하면 new_folder 라는 디렉토리가 새로 생긴 것을 확인할 수 있다
$ rm -r new_folder
$ ls
aiffel data
rm : Remove
rm -r 명령어 뒤에 삭제하길 원하는 디렉토리 명을 입력.
-r 옵션은 디렉토리를 삭제할 때 필요, 하위 디렉토리와 파일까지 모두 삭제하라는 것을 의미. 디렉토리가 아닌 일반 파일을 삭제할 때에는 rm 명령어만 입력하면 된다
참고로 -r 옵션은 Recursive라는 의미로, 디렉토리 내부의 모든 파일 및 폴더에 대해 재귀적(반복적)으로 명령을 수행하라는 의미. 그렇기 때문에 디렉토리에게는 -r 옵션이 필요하고, 개별 파일에게는 -r 옵션이 필요 없다.
$ cd ~
$ mkdir new_folder
$ mv new_folder aiffel
mv : Move
new_folder 디렉토리를 새로 만들어준 후, mv 명령어를 이용해서 new_folder 디렉토리를 aiffel 안으로 옮겼다.
파일이나 디렉토리를 옮기고 싶을 때에는 mv 명령어 뒤에 이동하고 싶은 파일, 이동할 목적지 디렉토리를 순서대로 입력
$ cp -r new_folder ..
$ cd ..
ls
aiffel data new_folder
cp : Copy
첫번째 명령어에서 new_folder 를 .. 의 위치, 즉 상위 폴더에 복사했다.
다만, 여기서 한 가지 주의할 점은 cp 명령어는 rm(삭제) 명령어와 같이 디렉토리를 복사할 때 -r 옵션을 추가해주어야 복사하려는 디렉토리의 하위디렉토리까지 함께 복사한다는 것.
개별 파일을 복사하고 싶을 때에는 -r 이 필요없다.
가상환경
가상환경은 프로젝트마다 특정 패키지의 서로 다른 버전이 필요하거나 패키지 간 충돌이 생길 위험이 있을 때, 각 프로젝트를 독립된 공간에서 사용할 수 있도록 하기 위한 기능.
충돌이 생기기 전에, 애초에 프로젝트 간 공간을 나누어 놓겠다는 의도를 담고 있다.
예를 들어 프로젝트 A에서는 어떤 패키지의 1.5 버전을 사용해야 하고, 프로젝트 B에서는 그 패키지의 2.0 버전을 사용해야 하는 경우... 이 때 1.5버전과 2.0버전이 호환 되지 않는다면 개발하기가 상당히 불편해진다. 이런 문제를 해결하기 위해 파이썬에서는 가상 환경을 사용한다.
파이썬 가상환경을 관리하는 툴은 pyenv, pip, anaconda 등 다양한데, 아나콘다 (Anaconda) 가상환경 관리자를 사용할 예정. 아나콘다는 데이터 사이언스와 관련된 여러 라이브러리를 포함하여 사용하기 편리하다.