티스토리 뷰
[Day 01] 파이썬/AI 개발환경 준비하기
1. 강의 복습 내용
1) Basic computer class for newbies
1) OS(Operating System, 운영체제)
: 소프트웨어가 하드웨어와 연결이 되기 위한 기반이 되는 시스템
우리가 사용하는 프로그램은 OS에 의존적이다. 따라서 내가 사용할 OS에 맞춰서 프로그램을 설치해야한다.
2) 파일 시스템
: Root 디렉토리로 부터 시작되는 Tree구조로 되어있다.
- 디렉토리(Directory)
- 파일(File)
- 절대 경로와 상대 경로
경로 : 컴퓨터 파일의 고유한 위치, 트리 구조상 노드의 연결
절대 경로 : Root 디렉토리로 부터 파일위치까지의 경로
ex) C:\user\download\somefile.txt
상대 경로 : 현재 있는 디렉토리부터 타깃 파일까지의 경로
. : 현재 내가 있는 폴더
.. : 현재 내가 있는 폴더에서 한칸 앞에 있는 폴더
ex) ../../somefile.txt
3) 터미널
Mouse가 아닌 Keyboard로 명령을 입력 프로그램 실행
- GUI(Graphical User Interface) : 사용자가 편히 사용하도록 입출력 등의 기능을 그래픽으로 나타낸 인터페이스 체계
- CLI(Command Line Interface) : Text만을 사용하여 컴퓨터에 명령을 입력하는 인터페이스 체계
2) Python Overview
1) Python
- 1991년, 귀도 반 로섬이 발표
- 플랫폼 독립적 : OS에 상관없이 한번 프로그램을 작성하면 사용 가능
- 인터프리터 언어
- 객체 지향 : 실행 순서가 아닌 단위 모듈(객체) 중심으로 프로그램 작성
- 동적 타이핑 언어
* 컴파일러와 인터프리터
컴파일러와 인터프리터는 고급언어로 작성된 원시 프로그램을 목적 프로그램으로 번역하는 번역 프로그램
컴파일러 : 고급언어로 작성된 프로그램 전체를 목적 프로그램으로 번역한 후, 링킹 작업을 통해 실행가능한 실행 프로그램을 생성, 따라서 번역 작업을 거쳐야 하므로 번역 시간이 오래 걸리지만 한번 번역한 후에는 다시 번역하지 않으므로 실행속도가 빠르다.
인터프리터 : 고급언어로 작성된 프로그램을 한 줄 단위로 받아들여 번역하고, 번역과 동시에 프로그램을 한 줄 단위로 즉시 실행시킨다. 따라서 번역 속도는 빠르지만 프로그램 실행 시 매번 번역해야 하므로 실행속도는 느리다.
구분 |
컴파일러 |
인터프리터 |
작동 방식 |
소스코드를 기계어로 먼저 번역 |
소스코드를 실행 시점에 해석 |
번역 단위 |
전체 |
줄(행) 단위 |
목적 프로그램 |
생성함 |
생성하지 않음 |
실행 속도 |
빠름 |
느림 |
번역 속도 |
느림 |
빠름 |
메모리 |
한번에 많은 기억 장소 필요 |
메모리가 적게 필요 |
관련 언어 |
C, C++, C#, JAVA |
Python, 스칼라 |
* 동적 타이핑 언어
동적 타이핑 언어의 자료형은 컴파일 시 자료형을 정하는 것이 아니고 실행 시에 결정한다.
따라서 타입 없이 변수만 선언하여 값을 지정할 수 있다.
장점 : Run Time 까지 타입에 대한 결정을 끌고 갈 수 있으므로 많은 선택의 여지가 있다.
단점 : 변수에 예상치 못한 타입이 들어와 Type Error를 야기할 수 있다.
2) 우리는 왜 파이썬을 배워야 할까? (Why Python)
- 쉽고 간단하며 다양하다.
이해 하기 쉬운 문법
실행하는데 오래걸리지만, 작성하는데 시간이 적게 든다. (컴퓨터의 비약적인 발전으로 전자의 단점이 상쇄되고 있다.)
- 다양한 라이브러리
무엇을 생각하든 그것을 구현할 수 있다.
- 이미 널리 쓰이는 언어(= 어디에든 쓰일 수 있는 언어)
이미 다양한 분야에서 유용하게 사용되고 있다. (Ex: 알파고, 과학분야, 웹, 게임)
3) Python 코딩 환경 구축
1) 개발 환경 설정
- 운영체제(OS) : Windows, Linux, Mac OS
- Python Interpreter
- 코드 편집기(Editor)
개발 환경 설정 전에 위의 3가지를 먼저 결정해야한다.
* ANACONDA에서 Python 실행 화면

* Cmder에서 Python 실행 화면
(conda activate base) 를 입력 후 (base) 환경에서 실행시켜야한다.

* Jupyter
- IPython 커널을 기반으로 한 대화형 파이썬 셸
- 일반적인 터미널 셸 + 웹 기반 데이터 분석 Notebook 제공
- 미디어, 텍스트, 코드, 수식 등을 하나의 문서로 표현 가능
- 사실 상의 데이터 분석 Interactive Shell의 표준


* Google Colab

2. 피어 세션
피어 세션
오늘은 부스트캠프 AI Tech 첫 날이였기 때문에 마찬가지로 피어 세션으로 조원들을 처음 만날 수 있었다.
피어 세션의 시작이였기 때문에, 간단히 자기소개들을 하며 서로를 알아가는 시간을 가졌고
다음으로 앞으로 8주 동안 같이 할 조원들과 함께 피어 세션 내에서 지켜야할 간단한 규칙들을 정했다.
그리고 앞으로 피어 세션 시간에 우리가 서로 시너지를 내며 학습할 수 있는 방법에 대해 다같이 토의를 했고
각 주차 별 커리큘럼에 맞추어 우리도 역시 주차별 플랜을 세워 집단 학습을 하기로 계획했다.
1주차의 경우, AI를 위한 파이썬 기초를 배우는 과정이기 때문에 우리들 모두 빨리 파이썬 문법이나 개발 환경에 익숙해질 필요를 느꼈고 그 결과 1주차 동안 그동안 자기가 주로 사용하던 언어가 아닌 오직 파이썬으로 BOJ 알고리즘 문제를 풀면서 빠르게 파이썬에 익숙해지기로 하였다.
매일 문제는 1주차 모더레이터가 픽업을 해서 다같이 풀고 다음날 코드리뷰와 자유로운 피드백을 하기로 정했다.
정리하자면,
1. 첫만남-> 조원들끼리 알아가기
2. 피어 세션 조별 그라운드 룰(규칙) 정하기
3. 향후 피어 세션 학습 플랜 계획 설정
3. Conclusion
Conclustion
오늘은 앞으로 긴 부스트캠프 AI Tech의 커리큘럼을 소화하기 위한 첫 걸음이였다.
OS 그리고 파일시스템에 대해 다시 정리할 수 있는 기회였고
본격적으로 파이썬을 다루기 위해 파이썬 개발 환경을 셋팅하며 AI에 있어서 왜 파이썬을 선택하고 배워야 하는 가? 에 대해 깊게 생각해볼 수 있었던 하루였다.
그리고 그동안 Windows의 GUI 환경에 익숙해진 나를 앞으로는 CLI 환경에 더더욱 익숙해져야 겠다는 생각이 들었고 다양한 OS도 접해봐야할 필요성도 느낄 수 있었다.
당장 내일부터, 파이썬 기초 문법부터 강의가 시작된다. 기초인 만큼 방심하지 않고 이 기회에 더욱 더 기초를 단단히 하여 모든 커리큘럼을 성실히 이수하고 싶은 욕심이 든다.
또, 오늘 첫 강의 그리고 첫 피어세션 시간을 가지며 조원들과도 처음 만날 수 있었는데 모두 각기 다른 경험을 해왔고 각기 다른 강점을 가진 만큼 서로 부족한 부분을 서로 잘 채워주며 다같이 성장했으면 하는 바램이다.
PS) 생각보다 티스토리 에디터 기능이 버그로 말썽이다.. 다른 방법을 통해 학습정리를 하는 것을 고려해봐야 할 것 같다..
'부스트캠프 AI Tech > 학습정리' 카테고리의 다른 글
[Day 06] Numpy / 벡터 / 행렬 (0) | 2021.01.25 |
---|---|
[Day 05] 파이썬으로 데이터 다루기 (0) | 2021.01.22 |
[Day 04] 파이썬 기초 문법 3 (0) | 2021.01.21 |
[Day 03] 파이썬 기초 문법 2 (0) | 2021.01.20 |
[Day 02] 파이썬 기초문법 (0) | 2021.01.19 |
- Total
- Today
- Yesterday
- cnn
- pandas
- dfs
- Unet 구현
- 브루트포스
- 공공데이터
- Data Handling
- 네트워킹데이
- ResNet
- Unet
- DACON
- P-Stage
- python
- 다이나믹프로그래밍
- 백준
- DeepLearning
- 코딩테스트
- 부스트캠프 AI Tech
- 알고리즘
- 프로그래머스
- 그리디
- 동적계획법
- 데이터연습
- 이분탐색
- 백트래킹
- C++
- 데이터핸들링
- Vision AI 경진대회
- NLP 구현
- AI 프로젝트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |