코딩하는 해맑은 거북이
인공지능(AI) 기초 다지기 (1) 본문
본 게시물의 내용은 '인공지능(AI) 기초 다지기(부스트코스)' 강의를 듣고 작성하였다.
해당 글은 1-1. 파이썬/AI 개발환경 준비하기 4가지 파트를 다룬다.
1. Basic computer class for newbies
2. 파이썬 개요
3. 파이썬 코딩환경 (OS 및 코드편집기)
4. 파이썬 코딩환경 (Jupyter notebook)
1. Basic computer class for newbies
- 컴퓨터 OS
Operating System, 운영체제, 우리의 프로그램이 동작할 수 있는 구동 환경
Software가 Hardware와 연결되기 위한 기반이 되는 시스템
ex) Windows, MacOS, Chrome, Office 제품
cf) Hardware : CPU, Memory, DRAM, 레인보우, 키보드, 마우스
- 파일 시스템, File system
OS에서 파일을 저장하는 (root 디렉토리로 부터 시작하는) 트리구조 저장 체계
cf) File : 컴퓨터 등의 기기에서 의미 있는 정보를 담는 논리적인 단위. 모든 프로그램은 파일로 구성되어 있고, 파일을 사용한다. (wiki)
* 파일의 기본 체계 - 디렉토리 vs 파일
디렉토리 (Directory) | - 폴더 또는 디렉토리로 불림 - 파일과 다른 디렉토리를 포함할 수 있음 |
파일 (File) | - 컴퓨터에서 정보를 저장하는 논리적인 단위 (wikipedia) - 파일은 파일명과 확장자로 식별됨 (ex. hello.py) - 실행, 쓰기, 읽기 등을 할 수 있음 |
* 절대경로와 상대경로
경로 | 컴퓨터 파일의 고유한 위치, 트리구조상 노드의 연결 |
절대 경로 | 루트 디렉토리부터 파일위치까지의 경로 |
상대 경로 | 현재 있는 디렉토리부터 타깃 파일까지의 경로 |
- 터미널 (Console = Terminal = CMD창)
Mouse가 아닌 키보드로 명령을 입력해서 프로그램 실행 → Command Line Interface(CLI) 환경
* Command Line Interface
Graphic User Interface (GUI)와 달리 Text를 사용하여 컴퓨터에 명령을 입력하는 인터페이스 체계
* 기본 명령어 : 각 터미널에서는 프로그램을 작동하는 Shell이 존재, shell 마다 다른 명령어 존재
윈도우 CMD창 명령어 | shell 명령어 | 설명 |
CD | cd | 현재 디렉터리 이름을 보여주거나 바꿉니다. (chage directory) |
CLS | clear | CMD 화면에 표시된 것을 모두 지웁니다. (clear screen) |
COPY | cp | 하나 이상의 파일을 다른 위치로 복사합니다. |
DEL | rm | 하나 이상의 파일을 지웁니다. (delete) |
DIR | ls | 디렉터리에 있는 파일과 하위 디렉터리 목록을 보여줍니다. (directory) |
2. 파이썬 개요
- Python의 시작
- 1991년 귀도 반 로섬이 발표
- 플랫폼 독립적, 인터프리터 언어, 객체 지향, 동적 타이핑 언어 특징을 가짐
- 처음 C언어로 구현되었음
- 플랫폼에 독립적인 인터프리터 언어
: 운영체제에 상관없이 작동되는 언어
cf) 인터프리터 : 소스코드를 바로 실행할 수 있게 지원하는 프로그램 실행 방법
* 컴파일러 vs 인터프리터
컴파일러 | 인터프리터 | |
작동방식 | 소스코드를 기계어로 먼저 번역 해당 플랫폼에 최적화되어 프로그램을 실행 |
별도의 번역과정 없이 소스코드를 실행시점에 해석하여 컴퓨터가 처리할 수 있도록 함 |
장점 | 실행속도가 빠름 | 간단히 작성, 메모리가 적게 필요 |
단점 | 한번의 많은 기억장소 필요 | 실행속도가 느림 |
주요언어 | C, 자바, C++, C# | 파이썬, 스칼라 |
* 프로그램의 동작 과정
: 사람이 알 수 있는 고급언어를 기계만 알 수 있는 저급언어로 변환
- 객체 지향의 동적 타이핑 언어
* 객체 지향적 언어
- 실행 순서가 아닌 단위 모듈(객체, object) 중심으로 프로그램을 작성한다.
- 하나의 객체는 어떤 목적을 달성하기 위한 행동(method)와 속성(attribute)을 가지고 있는다.
* 동적 타이핑 언어
- 프로그램이 실행하는 시점에 프로그램이 사용해야 할 데이터에 대한 타입을 결정한다.
3. 파이썬 코딩환경 (OS 및 코드편집기)
- 개발환경 설정 3가지
- 운영체제 설정
- Python Interpreter
- 코드 편집기 (Editor)
- 운영체제 (Operation System)
Windows | Linux | Mac OS | |
장점 | 친숙함 초기엔 쉬움 |
모듈 설치 쉬움 공짜, 참고 문서 많음 |
모듈 설치 쉬움 참고 문서 많음 |
단점 | 모듈 설치 어려움 | OS 자체 사용이 어려움 | 비쌈 |
- 파이썬 인터프리터 (Python Interpreter)
2.7와 3.X 버전이 존재 : 현재는 3.X 기준으로 모든 시스템이 작동됨 (2020년부터 Tensorflow에서 2.X 지원 안함)
종류 | 설명 |
Python | 일반적인 파이썬, 기본적인 모듈을 포함 |
Anaconda | 다양한 과학 계산용 모듈들 묶어서 패키지 |
- 코드 편집기 (Editor)
파이썬 코드도 일종의 문서이므로 문서 편집기가 필요하다.
text 타입의 문서를 저장하는 모든 편집기 사용 가능하다.
종류 | 설명 |
메모장 | 윈도우의 기본 문서 편집 도구 |
VI editor (Vim) | 리눅스의 기본 문서 편집 도구 |
Sublime Text, Atom, VS Code | 프로그래밍에 특화된 문서 편집 도구 |
PyCharm | 다양한 기능을 갖춘 파이썬 전용 개발 도구 |
* 2가지 타입
- 설치된 어플리케이션
- 웹 기반 인터랙티브 편집기 (jupyter, colab)
4. 파이썬 코딩환경 (Jupyter notebook)
- Jupyter notebook
* 파이썬의 기본적인 실행환경
python shell + 코드 편집도구 ≫ 데이터 분석을 위한 IDE Jupyter
(shell은 한줄씩 써야하므로 길게 작업하는 게 불가능하기 때문에 이 둘을 합친 것인 Jupyter가 탄생함)
* Jupyter 개요
- Ipython 커널 기반 대화형 파이썬 셸
- 일반적인 터미널 셸 + 웹 기반 데이터분석 Notebook 제공
- 미디어, 텍스트, 코드, 수식 등을 하나의 문서로 표현 가능
- 사실상의 데이터 분석 Interactive shell의 표준
- Julia + Python + R
cf) anaconda 에서 실행방법 : jupyter notebook 입력
- Colab
- 구글이 개발 클라우드 기반의 jupyter notebook
- 구글 드라이브 + GCP + jupyter 등이 합쳐져서 사용자가 손쉽게 접근
- 초반 여러가지 모듈 설치의 장점을 가짐
- 구글 드라이브에 파일을 업로드하여 사용가능한 장점을 가짐
- VScode 등과 연결해서 사용가능
- V100이상의 GPU를 무료로 쓸 수 있다는 장점을 가짐
'AI' 카테고리의 다른 글
인공지능(AI) 기초 다지기 (3) (0) | 2022.12.13 |
---|---|
인공지능(AI) 기초 다지기 (2) (0) | 2022.12.12 |
[딥러닝] Normalization, Standardization (0) | 2022.08.03 |
[머신러닝] 선형회귀(Linear Regression), 로지스틱 회귀(Logistic Regression), 소프트맥스 회귀(Softmax Regression) (0) | 2022.07.27 |
[머신러닝] 엔트로피(Entropy)와 크로스 엔트로피(Cross-Entropy) (0) | 2022.07.22 |