코딩하는 해맑은 거북이

인공지능(AI) 기초 다지기 (1) 본문

AI

인공지능(AI) 기초 다지기 (1)

#CJE 2022. 12. 12.
본 게시물의 내용은 '인공지능(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를 무료로 쓸 수 있다는 장점을 가짐

Comments