Python study 1강 (오픈소스컨설팅 내부 강의)

19
Python Study 1 강 강강강 ([email protected] )

description

Python Study

Transcript of Python study 1강 (오픈소스컨설팅 내부 강의)

Page 1: Python study 1강 (오픈소스컨설팅 내부 강의)

Python Study 1 강

정명훈 ([email protected])

Page 2: Python study 1강 (오픈소스컨설팅 내부 강의)

Why Python

Page 3: Python study 1강 (오픈소스컨설팅 내부 강의)

3

다음과 같은 특징을 가진 고급 프로그래밍 언어인터프리터 소스코드를 바로 실행 ( 실제로는 중간 코드로 변환 후 실행 )

소스를 Parsing 하는 시간을 줄이기 위해 )

객체지향 클래스 , 객체 , 메소드 , 속성으로 구성 추상화 , 캡슐화 , 상속 , 다형성 , 동적바인딩 등의 특징 제공

동적타이핑 개발시간 (design-time) 이 아닌 실행시간 (runtime) 에 자료 ( 변수 ) 의 형 (type) 을 결정

Python 언어의 특징

C 의 printf 스타일의 포맷 Print. 활용하면 도움 많이 됨Print 기능 : http://www.python-course.eu/python3_formatted_output.php

Pretty Print: https://docs.python.org/2/library/pprint.html

Page 4: Python study 1강 (오픈소스컨설팅 내부 강의)

4

괄호 (brace, curly brace, bracket) 대신 들여쓰기 (indent) 를 사용/etc/password 파일을 읽어 JSON 형식으로 반환하는 프로그램Flask(Micro Web Framework) 이용하면 웹 (REST) 으로도 쉽게 확장

쉬운 ( 짧은 ) 코딩 , 가독성의 예

Page 5: Python study 1강 (오픈소스컨설팅 내부 강의)

5

생산성 코드가 깔끔하고 양이 적음 (C, Java 에 비해 )

성능 대부분의 분야에서 Java, C 와 크게 차이 없음

다양한 기능 그래픽 , 수치 연산 , 시스템 제어 등이 라이브러리로 쉽게 가능 예 : 문명 4 게임의 대부분이 Python 으로 작성

보안 단일 언어의 보안 위험성

Polyglot 업무 특성에 맞게 필요한 언어를 골라 작성하는 프로그래밍 방법 예 : C, Java 로는 시스템 Shell 확장용 프로그램 작성하기는 부적합

C 는 너무 어렵거나 , Java 는 Unix fork 등의 문제 반면 Python 은 Shell 과 유사한 프로그래밍 스타일 ( 동적인 typing, 인터프리트 ,

대화형 등 )

JavaScript 와 비교 Python 과 유사성이 많은 스크립트 언어이지만 너무 유연한 문법과 느슨한 형 체크로

트러블슈팅이 어려운 단점 거의 모든 문제점을 직접 실행해 봐야 알 수 있음 Python 은 Java 와 JavaScript 의 중간 정도의 엄격함

Why Python

Page 6: Python study 1강 (오픈소스컨설팅 내부 강의)

6

Python vs Java 코딩 편의성 비교

Page 7: Python study 1강 (오픈소스컨설팅 내부 강의)

7

언어를 처음 배우기 시작해서 3 시간 만에 작성 http://blog.naver.com/javalove93/130165636491

쉽게 배움 – Oracle Log 발생량 그래프 그리기 프로그램

Page 8: Python study 1강 (오픈소스컨설팅 내부 강의)

8

주어진 모듈에 대한 사용 가능한 메소드나 속성들의 list 를 반환

dir(x) 함수

Page 9: Python study 1강 (오픈소스컨설팅 내부 강의)

9

대상에 대한 도움말을 보여줌 . 모듈 , 함수의 사용 방법 ( 매뉴얼 ) 을 알고자 할 때 편리

help(x) 함수

Page 10: Python study 1강 (오픈소스컨설팅 내부 강의)

10

https://docs.python.org/2/library/functions.html

built-in 함수

Page 11: Python study 1강 (오픈소스컨설팅 내부 강의)

11

Python 의 yum 또는 apt-get 설치 방법

- easy_install 설치 : sudo yum install python-setuptools- pip 설치 : sudo easy_install pip- Window 에서도 유사한 방법으로 사용 가능

사용 방법- Flask(Micro Web Framework) 설치 : sudo pip install flask- virtualenv 설치 : sudo pip install virtualenv- 패키지 저장소 : https://pypi.python.org/pypi ( 인터넷 반드시 연결 . 없으면 다운 받아서 set-

up.py 실행 )- 다음 위치에 패키지 다운로드 및 위치

pip 및 easy_install

Window 용 pip 설치

Page 12: Python study 1강 (오픈소스컨설팅 내부 강의)

12

여러 패키지 설치 설치할 패키지 명과 Version 을 Text 파일에 기술 pip install <text file 명 >

현재 시스템에 설치된 패키지 목록 pip freeze 위 내용을 text file 로 만들어 다른 시스템에 그대로 설치 가능

pip 를 이용하여 여러 패키지를 한꺼번에 설치

Page 13: Python study 1강 (오픈소스컨설팅 내부 강의)

13

Eclipse 설치 (Window 용 Python 도 설치 필요 ) 최신 버전 ( 또는 현재 사용 중인 버전 그대로 사용 가능 ) 다운로드

- https://www.eclipse.org/downloads/ - 현재 최신 : 4.4(Luna) 참고로 제가 사용하는 버전은 4.2(Android 개발플랫폼 버전 )

Eclipse Market Place 에서 쉽게 설치 가능- Help Eclipse Marketplace...

PyDev Perspective 지정- Python 에 맞는 인터페이스 제공

개발 환경 : eclipse + PyDev

Page 14: Python study 1강 (오픈소스컨설팅 내부 강의)

14

Linux 가상 머신 생성 및 IP 연결PuTTY 터미널 (http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe)

Linux 가상 머신 및 터미널

Page 15: Python study 1강 (오픈소스컨설팅 내부 강의)

15

https://pypi.python.org/pypi/virtualenvPython 프로그램들의 라이브러리 version 충돌 문제를 방지하기 위해 별도의 라이브러리 공간을 가질 수 있게 해주는 프로그램

virtualenv

Page 16: Python study 1강 (오픈소스컨설팅 내부 강의)

16

# 이 기본 comment여러 라인일 경우 ''' ~ ''' 또는 """ ~ """ 안에 넣을 수 있음 원래는 문자열 할당에 사용되는 기능

Python 의 Comment

Page 17: Python study 1강 (오픈소스컨설팅 내부 강의)

17

실행 방법

JSON 포맷에 활용

패키지가 포함된 모듈 Command line 에서 실행

Page 18: Python study 1강 (오픈소스컨설팅 내부 강의)

18

실행 결과를 받아와 분석하는 경우

간단하게 명령만 실행

외부 프로그램 실행

Page 19: Python study 1강 (오픈소스컨설팅 내부 강의)

19

4 가지 명령의 실행 결과를 Text 파일로 저장 ifconfig –a uname –a df –k mount

숙제