네이버 ai 부스트캠프에선 뭘 공부할까?, 부스트 캠프 첫날 정리.(Day01)

이호용·2021년 1월 18일
0

이 페이지는 네이버커넥티드의 최성철 교수님의 교육자료를 참고했습니다.

코스 소개

진행될 강의는, 비전공자도 공부할 수 있게 기초적인 강의 위주로 진행할 계획이라고 설명해주셧고

파이썬(1주차) -> 수학(2주차) -> 딥러닝 입문(3주차) 순으로 진행되며,

강의는 필요한 것을 골라 듣길 권하셧다..

파이썬 강의소개

최성철 교수님의 강의는
1. 파이썬 기초 : 데이터 분석과 파이썬의 로우레벨 코드를 사용해서 데이터를 다루는 방법
2. 파이썬 데이터 분석 도구 : 선형대수와 통계를 풀기 위해서 사용하는 파이썬 데이터 도구 배움.
3. pytorch : 파이썬의 프레임 워크

딥러닝에서 사용하는 pytorch코드를 로우레벨 까지 이해를 한다.

Day 1 파이썬 / AI 개발환경 준비하기.

hidden class - basic computer class

  1. 컴퓨터 os란?
    • 운영체제라고 하며 내가 컴퓨터를 켰을떄 나타나는 로고
    • 하드웨어 (디램, 모니터 ,마우스) 자체만으로는 컴퓨터를 사용할수 없다. 소프트웨어가 하드웨어와 연결되어야 컴퓨터를 사용하는데 이를 연결하는것이 os이다.
    • 우리가 사용하는 인터프립트 언어 (파이썬) 같은 경우도 특정 os에서만 작동하므로, 운영체제에 맞추어 설치를 해주어야한다.
  2. 파일 시스템이란?
    • os에서 파일을 저장하는 트리구조 저장체계
    • 절대 경로 - 루트 디렉토리부터 파일위치까지의 경로
    • 상대 경로 - 현재 있는 디렉토리부터, 타겟 파일이 있는 경로.
  3. 터미널이란?
    • 마우스가 아닌 키보드로 명령을 입력하여 프로그램 실행
    • graphic user interface (GUI)와 달리 CLI라고불림.
    • 윈도우에선 cmder이라는 프로그램을 사용하면 리눅스 이쁘게 사용가능.
    • console = termianl = cmd창
    • 윈도우 + R 을 누르면 실행창이나오는데 거기서 cmd치면 빠르게 빠르게 나옴.
    • shell은 껍데기라는 뜻인데, shell이 있으면 거기에 cd나 mv같은 명령이 들어가고 그 명령이 쉘을 통해 core로 들어간다.
    • 오늘 배운것중 가장 충격적인건 윈도우 터미널과 맥 터미널에서 shell 명령어가 다르다는것. (cmder은 쉘 윈도우 터미널 명령어와 맥 터미널 명령어 둘다 사용가능)

파이썬의 개요.

파이썬의 역사를 알아보자 넘 재밌다.

  • 파이썬은 귀도 반 로섬이란 사람이 1991년 발표
  • 플랫폼 독립적
  • 인터프리터 언어
  • 객체 지향
  • 동적 타이핑 언어
  • 처음 c언어로 구현되었음. (오예 너무 신난다.)

귀도 반 로섬은 크리스마스에 할일이 없어 파있너 개발을 시작햇다고 한다. (이상한 사람이다.)

파이썬이란 이름은, monty python's flying circus 라는 우리나라로 치면 갈갈이 삼총사와 같은 개그맨이 있었는데, 귀도 반도가 좋아하는 프로그램이라 여기서 가져왓다고 한다.(재밌는 언어를 만들고 싶었나?)

그의 별명

  • 자비로운 종신 독재자 : 파이썬이 오픈 소스였는데, 개선사항에 대한 최종의사결정권을 가지고 있어서 별명이 생겼다.귀도반 로섬이 내려오면서 지금은 민주주의 형태로 투표해서 개선함.
  • 귀도 반 로섬은 MS가 오픈 정책을 동의하며 최근 MS로 이직함.
  • python은 그리스 신화속의 괴물뱀에서 유래되었다. (monty python 그룹이 이름을 지을떄의 유래)

파이썬의 특징

  • 플랫폼 독립적인 인터프리터 언어

  • 플랫폼 == os 인데 독립적이라는 말은 윈도우나 리눅스,안드로이드, 맥os 상관없이 실행되는 언어를 플랫폼 독립적인 언어라고 한다.

  • 인터프리터 == 통역기를 사용하는 언어

  • 컴파일러 vs 인터프리터

    컴파일러는 프로그램을 실행하기 전에 컴파일러가 운영체제에 맞게 번영을 시켜준다. 그 번역본은 같은 운영체제라면 어디서든 사용가능하다. 컴파일러 언어는 기계가 바로 읽을수 있는 상태로 번역 되어있기 떄문에, 한번 번역하면 빠르게 실행할 수 있다.

    인터프리터 언어는 번역작업이 없이 그냥 바로 시작되는걸 인터프리터언어라고 한다. 인터프리터 언어는 실행할떄마다 번역을 해야해서 느리지만, 지금은 컴퓨터가 빨라져서 인터프리터도 사용하는데 큰 불편함은 없다.

  • 객체 지향적 언어 : 실행 순서가 아닌 단위 모듈(객체) 중심으로 프로그램을 작성
  • 동적 타이핑 언어 : 프로그램이 실행하는 시점에 프로그램이 사용해야할 데이터에 대한 타입을 결정함.

파이썬은!

  • 이해하기 쉬운 문법 :
    사람의 시간이 기계의 시간보다 중요하다.
  • 다양한 라이브러리 : 통계, 데이터 분석쪽에서는 대부분 파이썬의 코드로 라이브러리가 구현되어있다.
  • ai 분야 뿐 아니라 많은 분야에서 파이썬을 많이 사용함.
  • 인스타그램 유투브도 파이썬으로 제작 되었고, 문명도 파이썬으로 제작되었단다.(오예.. 나도 만들날이 오겠지.)
Life is short. You need python.

개발 환경 설정

1. 개발 환경 개요

  • 프로그램을 작성하고, 실행 시키는 환경.
  • 개발환경을 결정
  • 운영체제, python ineterpreter, 코드 편집기를 무엇을 쓸지 정하면 된다.

2. 운영체제 특징

  • 윈도우 - 장점 : 친숙함, 단점 : 모듈 설치 어려움, 참고문헌 부적
  • 리눅스 - 장점 : 모듈 설치 쉬움, 공짜, 참고 문헌 많음, 단점 : os 자체 사용이 어려움
  • Mac OS!!! - 장점 : 모듈 설치 쉬움, 참고 문서도 많음, 단점 : 비쌈(맞아...ㅠ.ㅠ.)

윈도우 컴퓨터를 산다면 .. 64gb에 i7 2080정도의 cpu

파이썬 인터프리터

  • 최근 3.9버전 출시.(교수님은 3.8을 추천하심. 앗싸 컴퓨터에 설치된게 3.8이였는데 넘 좋다.)

  • python , anaconda 차이.

    일반적인 파이썬, 기본적인 모듈을 포함.

    다양한 과학 계산용 모듈들을 묶어서 패키지

코드 편집기.

  1. 메모장 : ???
  2. vi editor : vi 멋으로 씁니다..
  3. sublime text Atorm vs code : 자동완성이, 넘사.
  4. pycharm
    교수님은 비쥬얼 스튜디오 코드, anaconda, jupyter(웹 기반 인터랙티브 코드편집기의 표준), colab(구글에서 제공하는 클라우드 기반 인터랙티브 코드 편집기, gpu를 쉽게 사용할수 도록함) 을 사용할 계획

vs code 설치하면 좋은 패키지

  • linter
  • python

python, vs code, anaconda 설치.

. code
라고 입력을 하면 vs code가 현재 디렉터 폴

쥬피터 개요

  • python + shell 편집도구
  • 데이터 분석을 위한 파이썬 IDE
  • Ipython(쉘을 웹에서 쓰면서 더 편하게 쓰는 프로젝트) 커널을 기반으로 한 대화형 파이썬 쉘
  • 일반적인 터미널 쉘 + 웹기반의 데이터 분석으로 확장자는 Notebook 제공.
  • 클릭을 하면 바로 보여주는 인터랙티브 쉘.

최초에는 python만을 위한 쉘과 커널을 제공하기위해 ipython Notebook으로 진행이 되었으나, 다양한 언어들에 대한 지원을 위해 2014년 jupyter로 변경하엿다. 현재는 추가로 julia, R haskel, Ruby등의 언어가 추가로 지원되고 잇따.

jupyter Project는 크게 jupyter notebook와 jupyterhub로 구성 되어있다. jupyter Notebook은 대화형 기술문서를 작성하기 위한 싱글유저를 위한 제품. jupyterhub는 notebook을 멀티유저가 사용할수 잇도록 한다.

쥬피터 장점

  • 코드와의 실시간 대화: 웹 브라우저를 통해 실행되므로 주피터 노트북 자체를 자신의 로컬 시스템이나 원격 서버에 호스팅할 수 있다.
  • 데이터 시각화 : 대부분 사람이 주피터 노트북을 처음 접하는 것은 데이터 시각화를 통해서다. 데이터 시각화란 일부 데이터 모음의 렌더링이 그래픽으로 포함된 공유 노트북을 말한다. 주피터 노트북을 통해 시각화를 작성하고 공유할 수 있으며 공유된 코드 및 데이터 모음에 대화형 수정도 가능하다.

주피터 사용법

conda env list
conda activate base
Jupyter Notebook

라고 하면 주피터가 실행이 되고 실행을 마쳤다면, 아래 코드를 쳐서 가상환경을 끝내주면 된다.

ctrl + c를 누르고
conda deactivate
  • 가사환경 생성
    conda create -n [ENV_NAME] python=3.8
  • 가사환경 제거
    conda remove --name [ENV_NAME] --all

사진 3

위와같은 크롬창이 뜨는데, 여기다가

a= 10
b = 5
a + b

이런식으로 실행이 가능하며, 알트 엔터를 누르면 새로운 실행창이 나온다.
주피터 단축키에는 여러 단축키가 있다. 배워두자.

colab

코랩 사이트
코랩 자동완성

  • 구글이 개발 클라우드 기반의 jupyter notebook
  • 구글 드라이브 + GCP + jupyter 등 손쉽게 접근 가능
  • 코랩도 단축키가 있다. 외워보자. (2주차 떄부터 사용하니까 나중에 보자.)

피어세션

[5조] 5늘은5조 / 최정우 조교

조 이름 : 5늘은5조
모더레이터 : 황정훈
팀원 :
김규진_T1011, 김연세_T1026, 박상기_T1068, 이상건_T1149, 이호용_T1173, 홍채원_T1228, 황정훈_T1232
피어규칙 :
항상 상호존중을 바탕으로 한다!!
2시 회의 꼬박꼬박 참여하기
8시30분 기상
피어세션 시간은 45분, 쉬는시간 5분으로 한다.
모더레이터는 그 날 가장 늦게 기상한 사람이 모더레이터 ☆당첨☆
본인의 스케줄로 인한 결석 시 당일 10시까지 slack으로 말하기
피어세션 플랜 :
매일 오전 6시 이후로 기상과 동시에 Slack에 기상을 알리고 가장 늦게 기상한 사람이 모더레이터 역할을 수행한다.
매일 leetcode를 통하여 1일 1알고리즘문제를 풀고 이에 대한 코드 및 풀이를 공유한다.
조원들끼리 여러가지 코드나 자료공유는 공용 구글드라이브를 이용하여 공유하도록 한다.
당일 강의에서 좋았던 점, 어려웠던 점을 나누고 시작한다
과제가 나왔다면 과제에 대해 논의하고 생각을 공유한다
과제를 제출한 다음 날에는 서로의 과제를 리뷰한다

여타 앞으로 진행하고자 하는 것

  • 관련 논문 한 두편이라도 함께 읽어보기
  • 케글에서 수업과 관련된 데이터를 찾아서 함께 만들어보기

학습후기.

오늘은 기본적인, 강의를 진행해서 다소 쉽게 강의를 받아들렸지만, 강의가 어려워지면, 보고서 정리, 및 학습 이해를 빨리 하려면, 어떻게 학습할건지 계획을 잘 세워야할거 같다.
부캠에 아쉬웠던건, 피어세션이였다. 첫날부터 피어세션을 진행했는데 서로 할말도 없고, 벙찐 상황이라 많이 어색했던거 같다. 같이 공부할 사람들이 생겨서 좋았다. 다만 체계가 없다보니, 서로 맞춰가기 까지 다소 시간이 필요할거 같다.

오늘 몰랐던거

  • 주피터, 코랩이 무엇인지.
  • 주피터 단축키 및 코랩 단축키.
  • vs code 로 넘어왔다. 단축키나 패키지에 익숙해 지자.
  • leetcode 하루 한문제 풀기.

0개의 댓글

관련 채용 정보