python study 1강 (오픈소스컨설팅 내부 강의)
DESCRIPTION
Python StudyTRANSCRIPT
Why Python
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
4
괄호 (brace, curly brace, bracket) 대신 들여쓰기 (indent) 를 사용/etc/password 파일을 읽어 JSON 형식으로 반환하는 프로그램Flask(Micro Web Framework) 이용하면 웹 (REST) 으로도 쉽게 확장
쉬운 ( 짧은 ) 코딩 , 가독성의 예
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
6
Python vs Java 코딩 편의성 비교
7
언어를 처음 배우기 시작해서 3 시간 만에 작성 http://blog.naver.com/javalove93/130165636491
쉽게 배움 – Oracle Log 발생량 그래프 그리기 프로그램
8
주어진 모듈에 대한 사용 가능한 메소드나 속성들의 list 를 반환
dir(x) 함수
9
대상에 대한 도움말을 보여줌 . 모듈 , 함수의 사용 방법 ( 매뉴얼 ) 을 알고자 할 때 편리
help(x) 함수
10
https://docs.python.org/2/library/functions.html
built-in 함수
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 설치
12
여러 패키지 설치 설치할 패키지 명과 Version 을 Text 파일에 기술 pip install <text file 명 >
현재 시스템에 설치된 패키지 목록 pip freeze 위 내용을 text file 로 만들어 다른 시스템에 그대로 설치 가능
pip 를 이용하여 여러 패키지를 한꺼번에 설치
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
14
Linux 가상 머신 생성 및 IP 연결PuTTY 터미널 (http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe)
Linux 가상 머신 및 터미널
15
https://pypi.python.org/pypi/virtualenvPython 프로그램들의 라이브러리 version 충돌 문제를 방지하기 위해 별도의 라이브러리 공간을 가질 수 있게 해주는 프로그램
virtualenv
16
# 이 기본 comment여러 라인일 경우 ''' ~ ''' 또는 """ ~ """ 안에 넣을 수 있음 원래는 문자열 할당에 사용되는 기능
Python 의 Comment
17
실행 방법
JSON 포맷에 활용
패키지가 포함된 모듈 Command line 에서 실행
18
실행 결과를 받아와 분석하는 경우
간단하게 명령만 실행
외부 프로그램 실행
19
4 가지 명령의 실행 결과를 Text 파일로 저장 ifconfig –a uname –a df –k mount
숙제