2018-01-02 TIL(WPS pre-school Day1)

이산수학(sec 2.2 수의 연산)

  • 합 연산(sum)
  • 곱 연산(product)
  • 나누기 연산(/)과 나머지 연산(mod)

Pre-school Day 1

1. 커맨드라인이란 무엇일까?

CLI 환경은 필수

  • 효율적인 메모리 관리
  • GUI는 사용자용, CLI는 개발자용

UNIX/LINUX는 개발친화적 OS

  • 다양한 오픈소스 프로그램들이 개발되고 있음
  • Shell은 Kernel과 대화하는 통로

Package manager

  • Package : 완성된 소프트웨어나 다른 소프트웨어를 완성하기 위해서 필요한 부품이 되는 소프트웨어를 의미
  • Package manager : 업그레이드, 의존성 관리 등 복잡한 상황의 발생을 낮추고 쉽게 패키지를 이용할 수 있는 소프트웨어
  • HomeBrew(macOS), apt(Ubuntu)

Zsh

  • 기본적으로 bash가 설치되어있으나 Zsh이 제일 편리함
    $ brew install zsh zsh-completions
    $ curl -L http://install.ohmyz.sh | sh
    $ chsh -s `which zsh`
    //chsh : /usr/local/bin/zsh : non-standard shell 오류 발생시
    //$ sudo vim /etc/shells 아래 쪽에 /usr/local/bin/zsh 추가하고 :wq 저장
    

VI 편집기

  • `VIsual display editor’
  • 시스템 소프트웨어를 수정하기 위해(?)
  • 서버에 접근할 때 쓸 일이 있음

vim 실행

$ vim

간단한 html 만들기(i를 눌러 insert모드로 전환후 입력)

<!DOCTYPE html>
<html>
    <head>
        <title>hello world</title>
    </head>
    <body>
        <p>hello</p>
    </body>
</html>

esc로 빠져나온 후 :wp test.html을 입력하여 저장

2. Python과 django

Python

  • 쉽고 간결하고 명확함을 지향하는 실용적인 언어
  • 동적 형 변환을 지원(변수에 다양한 객체를 자유롭게 할당)
  • 객체 지향 인터프리터 언어(모든 데이터는 객체)
  • 범용 프로그래밍 언어

정적언어

  • 구문이 많음
  • 저수준의 세부사항이 어느정도 정해져있어 정적언어라고 부름
  • 컴파일 필수
  • C, C++, C#, Java

동적언어(스크립트 언어)

  • 변수 타입을 선언할 필요 없음
  • 컴파일러 대신 인터프리터라는 프로그램으로 해석
  • 정적 언어보다 느리지만 컴퓨터 성능이 좋아져 큰 차이 없음
  • Python, JavaScript

pyenve

  • Python 버전 관리
  • 버전이 달라지면 라이브러리간 충돌이 일어날 수 있음

virtualenv

  • Python 개발환경을 프로젝트 별로 분리해서 관리
  • 각각의 프로젝트에는 모든 모듈이 필요한것이 아니므로 따리 관리가 필요

pyenv-virtualenv

  • pyenv를 사용할 경우 virtualenv를 쉽게 사용할 수 있도록 만든 라이브러리
  • pyenv 설치
    $brew install pyenv  
    $brew install pyenv-virtualenv
    
  • pyenv 설정
    vim ~/.zshrc #입력 후 vim에 다음 입력
    export PYENV_ROOT=/usr/local/var/pyenv
    if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
    if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi
    # esc + :wq 저장
    
  • pyenv 사용
    $ pyenv install --list #설치 가능 리스트
    $ pyenv install 3.6.3
    
  • 가상환경 생성
    $ pyenv virtualenv <version> <env_name>
    
  • local에 가상환경 지정
    $ pyenv local <env_name>
    
  • 가상환경 지우기
    $ pyenv uninstall <env_name>
    
  • 현재 설치된 pyenv 환경보기
    $ pyenv versions
    

pip

  • pip란 파이썬으로 작성된 패키지, 라이브러리를 설치해주는 파이썬 패키지 매니저
  • 패키지 검색
    $ pip search 패키지
    
  • 패키지 설치
    $ pip install 패키지
    
  • 패키지 삭제
    $ pip uninstall 패키지
    
  • 패키지 업그레이드
    $ pip upgrade 패키지
    
  • 설치된 패키지 확인
    $ pip list
    

jupyter notbook

  • 라이브코드, 방정식, 시각화 및 설명 텍스트가 포함된 문서를 작성하고 공유할 수 있게 해주는 웹 응용 프로그램
  • Interactive한 웹 기반 IDE
  • Python 코드와 Markdown문서로 이루어진 자료를 공유할 수 있게 되었음
  • jupyter 설치
    $ pip install jupyter
    

iPython

  • 기본 파이썬 셸보다 다양한 기능을 사용할 수 있도록 해주는 셸을 제공
  • iPython 설치
    $ pip install ipython
    

실습해보기

  • 홈 디렉토리(~)에서 projects 폴더로 이동

  • prac1이라는 폴더를 생성

  • python 3.4.3 버전으로 practice라는 가상환경을 생성

  • prac1이라는 폴더로 이동 후에 해당 폴더에 practice 가상환경을 적용

  • pip로 ipython을 설치

  • 커맨드라인에서 ipython을 실행

다른 local 폴더에 같은 가상환경 적용

  • 다시 projects폴더로 돌아가서 prac2 폴더를 생성

  • prac2 폴더로 이동 후에 커맨드라인에 ipython을 실행

  • 해당 폴더에 prac2를 practice 가상환경을 설정

  • 다시 ipython을 실행

Comments