SlideShare a Scribd company logo
1 of 19
Python Study 1강 
정명훈 (jerry@osci.kr)
Why Python
Python 언어의 특징 
다음과 같은 특징을 가진 고급 프로그래밍 언어 
인터프리터 
 소스코드를 바로 실행(실제로는 중간 코드로 변환 후 실행) 
3 
 소스를 Parsing 하는 시간을 줄이기 위해) 
객체지향 
 클래스, 객체, 메소드, 속성으로 구성 
 추상화, 캡슐화, 상속, 다형성, 동적바인딩 등의 특징 제공 
동적타이핑 
 개발시간(design-time)이 아닌 실행시간(runtime)에 자료(변수)의 형(type)을 결정 
C의 printf 스타일의 포맷 Print. 활용하면 도움 많이 됨 
Print 기능: http://www.python-course.eu/python3_formatted_output.php 
Pretty Print: https://docs.python.org/2/library/pprint.html
괄호(brace, curly brace, bracket) 대신 들여쓰기(indent)를 사용 
/etc/password 파일을 읽어 JSON 형식으로 반환하는 프로그램 
Flask(Micro Web Framework) 이용하면 웹(REST)으로도 쉽게 확장 
4 
쉬운(짧은) 코딩, 가독성의 예
생산성 
 코드가 깔끔하고 양이 적음 (C, Java에 비해) 
성능 
 대부분의 분야에서 Java, C와 크게 차이 없음 
다양한 기능 
 그래픽, 수치 연산, 시스템 제어 등이 라이브러리로 쉽게 가능 
 예: 문명4 게임의 대부분이 Python으로 작성 
보안 
 단일 언어의 보안 위험성 
Polyglot 
 업무 특성에 맞게 필요한 언어를 골라 작성하는 프로그래밍 방법 
 예: C, Java로는 시스템 Shell 확장용 프로그램 작성하기는 부적합 
 C는 너무 어렵거나, Java는 Unix fork 등의 문제 
 반면 Python은 Shell과 유사한 프로그래밍 스타일(동적인 typing, 인터프리트, 대화형 등) 
JavaScript와 비교 
 Python과 유사성이 많은 스크립트 언어이지만 너무 유연한 문법과 느슨한 형 체크로 트러블슈팅 
이 어려운 단점  거의 모든 문제점을 직접 실행해 봐야 알 수 있음 
 Python은 Java와 JavaScript의 중간 정도의 엄격함 
5 
Why Python
6 
Python vs Java 코딩 편의성 비교
쉽게 배움 – Oracle Log 발생량 그래프 그리기 프로그램 
언어를 처음 배우기 시작해서 3시간 만에 작성 
 http://blog.naver.com/javalove93/130165636491 
7
주어진 모듈에 대한 사용 가능한 메소드나 속성들의 list를 반환 
8 
dir(x) 함수
대상에 대한 도움말을 보여줌. 모듈, 함수의 사용 방법(매뉴얼)을 알고자 할 때 편리 
9 
help(x) 함수
https://docs.python.org/2/library/functions.html 
10 
built-in 함수
11 
pip 및 easy_install 
Python의 yum 또는 apt-get 
 설치 방법 
- easy_install 설치: sudo yum install python-setuptools 
- pip 설치: sudo easy_install pip 
- Window에서도 유사한 방법으로 사용 가능 
 사용 방법 
Window용 pip 설치 
- Flask(Micro Web Framework) 설치: sudo pip install flask 
- virtualenv 설치: sudo pip install virtualenv 
- 패키지 저장소: https://pypi.python.org/pypi (인터넷 반드시 연결. 없으면 다운 받아서 setup.py 실행) 
- 다음 위치에 패키지 다운로드 및 위치
pip를 이용하여 여러 패키지를 한꺼번에 설치 
여러 패키지 설치 
 설치할 패키지 명과 Version을 Text 파일에 기술 
 pip install <text file 명> 
현재 시스템에 설치된 패키지 목록 
 pip freeze 
 위 내용을 text file로 만들어 다른 시스템에 그대로 설치 가능 
12
개발 환경: eclipse + PyDev 
Eclipse 설치 (Window용 Python도 설치 필요) 
 최신 버전(또는 현재 사용 중인 버전 그대로 사용 가능) 다운로드 
- https://www.eclipse.org/downloads/ 
- 현재 최신: 4.4(Luna)  참고로 제가 사용하는 버전은 4.2(Android 개발플랫폼 버전) 
 Eclipse Market Place에서 쉽게 설치 가능 
13 
- Help  Eclipse Marketplace... 
 PyDev Perspective 지정 
- Python에 맞는 인터페이스 제공
Linux 가상 머신 생성 및 IP 연결 
PuTTY 터미널 (http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe) 
14 
Linux 가상 머신 및 터미널
https://pypi.python.org/pypi/virtualenv 
Python 프로그램들의 라이브러리 version 충돌 문제를 방지하기 위해 별도의 라이브러 
리 공간을 가질 수 있게 해주는 프로그램 
15 
virtualenv
#이 기본 comment 
여러 라인일 경우 ''' ~ ''' 또는 """ ~ """ 안에 넣을 수 있음 
 원래는 문자열 할당에 사용되는 기능 
16 
Python의 Comment
패키지가 포함된 모듈 Command line 에서 실행 
17 
실행 방법 
JSON 포맷에 활용
18 
외부 프로그램 실행 
실행 결과를 받아와 분석하는 경우 
간단하게 명령만 실행
4가지 명령의 실행 결과를 Text 파일로 저장 
 ifconfig –a 
 uname –a 
 df –k 
 mount 
19 
숙제

More Related Content

What's hot

파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)성일 한
 
Ubuntu에서 Flask개발 맛보기 - 1
Ubuntu에서  Flask개발 맛보기 - 1Ubuntu에서  Flask개발 맛보기 - 1
Ubuntu에서 Flask개발 맛보기 - 1Booseol Shin
 
Git는 머꼬? GitHub는 또 머지?
Git는 머꼬? GitHub는 또 머지?Git는 머꼬? GitHub는 또 머지?
Git는 머꼬? GitHub는 또 머지?Ian Choi
 
Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Juwon Kim
 
[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)Ildoo Kim
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)Ildoo Kim
 
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기흥배 최
 
[오픈소스컨설팅]Spring 3.1 Core
[오픈소스컨설팅]Spring 3.1 Core [오픈소스컨설팅]Spring 3.1 Core
[오픈소스컨설팅]Spring 3.1 Core Ji-Woong Choi
 
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback흥배 최
 
[NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기 [NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기 YoungSu Son
 
Spring batch와 함께 하는 TDD
Spring batch와 함께 하는 TDDSpring batch와 함께 하는 TDD
Spring batch와 함께 하는 TDDSanghyuk Jung
 
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라NAVER D2
 
[122]네이버의모던웹라이브러리 박재성
[122]네이버의모던웹라이브러리 박재성[122]네이버의모던웹라이브러리 박재성
[122]네이버의모던웹라이브러리 박재성NAVER D2
 
Git 기본개념과 사용법 그리고 어플리케이션
Git 기본개념과 사용법 그리고 어플리케이션Git 기본개념과 사용법 그리고 어플리케이션
Git 기본개념과 사용법 그리고 어플리케이션Dabi Ahn
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨KwangSeob Jeong
 
141118 최창원 웹크롤러제작
141118 최창원 웹크롤러제작141118 최창원 웹크롤러제작
141118 최창원 웹크롤러제작Changwon Choe
 
ITs 2주차_기본명령어(발표)
ITs 2주차_기본명령어(발표)ITs 2주차_기본명령어(발표)
ITs 2주차_기본명령어(발표)Chulgyu Shin
 
이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱Jong Wook Kim
 

What's hot (20)

NLog 소개
NLog 소개NLog 소개
NLog 소개
 
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
 
Ubuntu에서 Flask개발 맛보기 - 1
Ubuntu에서  Flask개발 맛보기 - 1Ubuntu에서  Flask개발 맛보기 - 1
Ubuntu에서 Flask개발 맛보기 - 1
 
Git는 머꼬? GitHub는 또 머지?
Git는 머꼬? GitHub는 또 머지?Git는 머꼬? GitHub는 또 머지?
Git는 머꼬? GitHub는 또 머지?
 
Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화
 
[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)
 
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
 
[오픈소스컨설팅]Spring 3.1 Core
[오픈소스컨설팅]Spring 3.1 Core [오픈소스컨설팅]Spring 3.1 Core
[오픈소스컨설팅]Spring 3.1 Core
 
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
 
[NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기 [NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기
 
Composer
ComposerComposer
Composer
 
Spring batch와 함께 하는 TDD
Spring batch와 함께 하는 TDDSpring batch와 함께 하는 TDD
Spring batch와 함께 하는 TDD
 
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
 
[122]네이버의모던웹라이브러리 박재성
[122]네이버의모던웹라이브러리 박재성[122]네이버의모던웹라이브러리 박재성
[122]네이버의모던웹라이브러리 박재성
 
Git 기본개념과 사용법 그리고 어플리케이션
Git 기본개념과 사용법 그리고 어플리케이션Git 기본개념과 사용법 그리고 어플리케이션
Git 기본개념과 사용법 그리고 어플리케이션
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨
 
141118 최창원 웹크롤러제작
141118 최창원 웹크롤러제작141118 최창원 웹크롤러제작
141118 최창원 웹크롤러제작
 
ITs 2주차_기본명령어(발표)
ITs 2주차_기본명령어(발표)ITs 2주차_기본명령어(발표)
ITs 2주차_기본명령어(발표)
 
이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱
 

Viewers also liked

인공지능시대의 한국어 정보처리
인공지능시대의 한국어 정보처리인공지능시대의 한국어 정보처리
인공지능시대의 한국어 정보처리휘웅 정
 
Getting started with Cloudant DBaaS(Korean)
Getting started with Cloudant DBaaS(Korean)Getting started with Cloudant DBaaS(Korean)
Getting started with Cloudant DBaaS(Korean)정명훈 Jerry Jeong
 
공개Sw의 이해와 활용 2016-11-23
공개Sw의 이해와 활용 2016-11-23공개Sw의 이해와 활용 2016-11-23
공개Sw의 이해와 활용 2016-11-23휘웅 정
 
EPG 정보 검색을 위한 예제 기반 자연어 대화 시스템
EPG 정보 검색을 위한 예제 기반 자연어 대화 시스템EPG 정보 검색을 위한 예제 기반 자연어 대화 시스템
EPG 정보 검색을 위한 예제 기반 자연어 대화 시스템Seokhwan Kim
 
Neural Machine Translation 기반의 영어-일본어 자동번역
Neural Machine Translation 기반의 영어-일본어 자동번역Neural Machine Translation 기반의 영어-일본어 자동번역
Neural Machine Translation 기반의 영어-일본어 자동번역NAVER LABS
 
B6 문맥인식기술활용
B6 문맥인식기술활용B6 문맥인식기술활용
B6 문맥인식기술활용NAVER D2
 
On Semi-Supervised Learning and Beyond
On Semi-Supervised Learning and BeyondOn Semi-Supervised Learning and Beyond
On Semi-Supervised Learning and BeyondEunjeong (Lucy) Park
 
Language support and linguistics in lucene solr & its eco system
Language support and linguistics in lucene solr & its eco systemLanguage support and linguistics in lucene solr & its eco system
Language support and linguistics in lucene solr & its eco systemlucenerevolution
 
도도와 파이썬: 좋은 선택과 나쁜 선택
도도와 파이썬: 좋은 선택과 나쁜 선택도도와 파이썬: 좋은 선택과 나쁜 선택
도도와 파이썬: 좋은 선택과 나쁜 선택Jc Kim
 
Writing multi-language documentation using Sphinx
Writing multi-language documentation using SphinxWriting multi-language documentation using Sphinx
Writing multi-language documentation using SphinxMarkus Zapke-Gründemann
 
Introduction to Data Mining for Newbies
Introduction to Data Mining for NewbiesIntroduction to Data Mining for Newbies
Introduction to Data Mining for NewbiesEunjeong (Lucy) Park
 
형태소분석과 HMM 알고리즘
형태소분석과 HMM 알고리즘형태소분석과 HMM 알고리즘
형태소분석과 HMM 알고리즘Dosang Yoon
 
6장 지능형 웹 크롤링
6장 지능형 웹 크롤링6장 지능형 웹 크롤링
6장 지능형 웹 크롤링Chanil Kim
 
문자 단위의 Neural Machine Translation
문자 단위의 Neural Machine Translation문자 단위의 Neural Machine Translation
문자 단위의 Neural Machine TranslationNAVER LABS
 
GNMT로 알아보는 신경망 기반 기계번역
GNMT로 알아보는 신경망 기반 기계번역GNMT로 알아보는 신경망 기반 기계번역
GNMT로 알아보는 신경망 기반 기계번역Byeong il Ko
 
[134]papago 김준석
[134]papago 김준석[134]papago 김준석
[134]papago 김준석NAVER D2
 
[Week2] 데이터 스크래핑
[Week2] 데이터 스크래핑[Week2] 데이터 스크래핑
[Week2] 데이터 스크래핑neuroassociates
 
Normalization 방법
Normalization 방법 Normalization 방법
Normalization 방법 홍배 김
 

Viewers also liked (20)

인공지능시대의 한국어 정보처리
인공지능시대의 한국어 정보처리인공지능시대의 한국어 정보처리
인공지능시대의 한국어 정보처리
 
Getting started with Cloudant DBaaS(Korean)
Getting started with Cloudant DBaaS(Korean)Getting started with Cloudant DBaaS(Korean)
Getting started with Cloudant DBaaS(Korean)
 
공개Sw의 이해와 활용 2016-11-23
공개Sw의 이해와 활용 2016-11-23공개Sw의 이해와 활용 2016-11-23
공개Sw의 이해와 활용 2016-11-23
 
업무가 빨라지는 그룹웨어, '다우오피스'
업무가 빨라지는 그룹웨어, '다우오피스'업무가 빨라지는 그룹웨어, '다우오피스'
업무가 빨라지는 그룹웨어, '다우오피스'
 
NoSQL @ Qbranch -2010-04-15
NoSQL @ Qbranch -2010-04-15NoSQL @ Qbranch -2010-04-15
NoSQL @ Qbranch -2010-04-15
 
EPG 정보 검색을 위한 예제 기반 자연어 대화 시스템
EPG 정보 검색을 위한 예제 기반 자연어 대화 시스템EPG 정보 검색을 위한 예제 기반 자연어 대화 시스템
EPG 정보 검색을 위한 예제 기반 자연어 대화 시스템
 
Neural Machine Translation 기반의 영어-일본어 자동번역
Neural Machine Translation 기반의 영어-일본어 자동번역Neural Machine Translation 기반의 영어-일본어 자동번역
Neural Machine Translation 기반의 영어-일본어 자동번역
 
B6 문맥인식기술활용
B6 문맥인식기술활용B6 문맥인식기술활용
B6 문맥인식기술활용
 
On Semi-Supervised Learning and Beyond
On Semi-Supervised Learning and BeyondOn Semi-Supervised Learning and Beyond
On Semi-Supervised Learning and Beyond
 
Language support and linguistics in lucene solr & its eco system
Language support and linguistics in lucene solr & its eco systemLanguage support and linguistics in lucene solr & its eco system
Language support and linguistics in lucene solr & its eco system
 
도도와 파이썬: 좋은 선택과 나쁜 선택
도도와 파이썬: 좋은 선택과 나쁜 선택도도와 파이썬: 좋은 선택과 나쁜 선택
도도와 파이썬: 좋은 선택과 나쁜 선택
 
Writing multi-language documentation using Sphinx
Writing multi-language documentation using SphinxWriting multi-language documentation using Sphinx
Writing multi-language documentation using Sphinx
 
Introduction to Data Mining for Newbies
Introduction to Data Mining for NewbiesIntroduction to Data Mining for Newbies
Introduction to Data Mining for Newbies
 
형태소분석과 HMM 알고리즘
형태소분석과 HMM 알고리즘형태소분석과 HMM 알고리즘
형태소분석과 HMM 알고리즘
 
6장 지능형 웹 크롤링
6장 지능형 웹 크롤링6장 지능형 웹 크롤링
6장 지능형 웹 크롤링
 
문자 단위의 Neural Machine Translation
문자 단위의 Neural Machine Translation문자 단위의 Neural Machine Translation
문자 단위의 Neural Machine Translation
 
GNMT로 알아보는 신경망 기반 기계번역
GNMT로 알아보는 신경망 기반 기계번역GNMT로 알아보는 신경망 기반 기계번역
GNMT로 알아보는 신경망 기반 기계번역
 
[134]papago 김준석
[134]papago 김준석[134]papago 김준석
[134]papago 김준석
 
[Week2] 데이터 스크래핑
[Week2] 데이터 스크래핑[Week2] 데이터 스크래핑
[Week2] 데이터 스크래핑
 
Normalization 방법
Normalization 방법 Normalization 방법
Normalization 방법
 

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

파이썬을 배워야하는 이유 발표자료 - 김연수
파이썬을 배워야하는 이유 발표자료 - 김연수파이썬을 배워야하는 이유 발표자료 - 김연수
파이썬을 배워야하는 이유 발표자료 - 김연수Yeon Soo Kim
 
How to use Python in Video streaming service - PyCon Korea 2020
How to use Python in Video streaming service - PyCon Korea 2020How to use Python in Video streaming service - PyCon Korea 2020
How to use Python in Video streaming service - PyCon Korea 2020AeYeong Kim
 
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)Taeung Song
 
병렬 프로그래밍 패러다임
병렬 프로그래밍 패러다임병렬 프로그래밍 패러다임
병렬 프로그래밍 패러다임codenavy
 
Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼mangonamu
 
맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지Sunwoo Park
 
오픈소스 기반 비행제어컴퓨터 PX4 소개
오픈소스 기반 비행제어컴퓨터 PX4 소개오픈소스 기반 비행제어컴퓨터 PX4 소개
오픈소스 기반 비행제어컴퓨터 PX4 소개SungTae Moon
 
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)Ubuntu Korea Community
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기KwangSeob Jeong
 
The Future of .NET and C#
The Future of .NET and C#The Future of .NET and C#
The Future of .NET and C#명신 김
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXpressEngine
 
Why OpenStack is Operating System?
Why OpenStack is Operating System?Why OpenStack is Operating System?
Why OpenStack is Operating System?유명환 FunFun Yoo
 
Python packaging
Python packagingPython packaging
Python packagingJi Hun Kim
 
Open source engineering
Open source engineeringOpen source engineering
Open source engineeringYoungSu Son
 
PyQGIS와 PyQt를 이용한 QGIS 기능 확장
PyQGIS와 PyQt를 이용한 QGIS 기능 확장PyQGIS와 PyQt를 이용한 QGIS 기능 확장
PyQGIS와 PyQt를 이용한 QGIS 기능 확장MinPa Lee
 
18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리Changwon National University
 

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

파이썬을 배워야하는 이유 발표자료 - 김연수
파이썬을 배워야하는 이유 발표자료 - 김연수파이썬을 배워야하는 이유 발표자료 - 김연수
파이썬을 배워야하는 이유 발표자료 - 김연수
 
How to use Python in Video streaming service - PyCon Korea 2020
How to use Python in Video streaming service - PyCon Korea 2020How to use Python in Video streaming service - PyCon Korea 2020
How to use Python in Video streaming service - PyCon Korea 2020
 
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)
 
병렬 프로그래밍 패러다임
병렬 프로그래밍 패러다임병렬 프로그래밍 패러다임
병렬 프로그래밍 패러다임
 
Java the good parts
Java the good partsJava the good parts
Java the good parts
 
04 1 함수
04 1 함수04 1 함수
04 1 함수
 
Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼
 
맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지
 
오픈소스 기반 비행제어컴퓨터 PX4 소개
오픈소스 기반 비행제어컴퓨터 PX4 소개오픈소스 기반 비행제어컴퓨터 PX4 소개
오픈소스 기반 비행제어컴퓨터 PX4 소개
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 
파이썬 소개
파이썬 소개 파이썬 소개
파이썬 소개
 
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
 
The Future of .NET and C#
The Future of .NET and C#The Future of .NET and C#
The Future of .NET and C#
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
 
Why OpenStack is Operating System?
Why OpenStack is Operating System?Why OpenStack is Operating System?
Why OpenStack is Operating System?
 
Python packaging
Python packagingPython packaging
Python packaging
 
Open source engineering
Open source engineeringOpen source engineering
Open source engineering
 
PyQGIS와 PyQt를 이용한 QGIS 기능 확장
PyQGIS와 PyQt를 이용한 QGIS 기능 확장PyQGIS와 PyQt를 이용한 QGIS 기능 확장
PyQGIS와 PyQt를 이용한 QGIS 기능 확장
 
18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리
 

More from 정명훈 Jerry Jeong

1시간만에 만드는 음성인식 인공지능 챗봇
1시간만에 만드는 음성인식 인공지능 챗봇1시간만에 만드는 음성인식 인공지능 챗봇
1시간만에 만드는 음성인식 인공지능 챗봇정명훈 Jerry Jeong
 
Google Cloud IAM 계정, 권한 및 조직 관리
Google Cloud IAM 계정, 권한 및 조직 관리Google Cloud IAM 계정, 권한 및 조직 관리
Google Cloud IAM 계정, 권한 및 조직 관리정명훈 Jerry Jeong
 
[오픈소스컨설팅]Jira 한글패치가이드 1
[오픈소스컨설팅]Jira 한글패치가이드 1[오픈소스컨설팅]Jira 한글패치가이드 1
[오픈소스컨설팅]Jira 한글패치가이드 1정명훈 Jerry Jeong
 
오픈소스의 이해(교육자료)
오픈소스의 이해(교육자료) 오픈소스의 이해(교육자료)
오픈소스의 이해(교육자료) 정명훈 Jerry Jeong
 
다산선생 지식경영법 - 여박총피법
다산선생 지식경영법 - 여박총피법다산선생 지식경영법 - 여박총피법
다산선생 지식경영법 - 여박총피법정명훈 Jerry Jeong
 
네트워크 가상화를 통한 효율적인 빅데이터 처리
네트워크 가상화를 통한 효율적인 빅데이터 처리네트워크 가상화를 통한 효율적인 빅데이터 처리
네트워크 가상화를 통한 효율적인 빅데이터 처리정명훈 Jerry Jeong
 
Innovation 3 3.stages of new product development
Innovation 3 3.stages of new product developmentInnovation 3 3.stages of new product development
Innovation 3 3.stages of new product development정명훈 Jerry Jeong
 
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)정명훈 Jerry Jeong
 
IoT 기반 융합 서비스 기술 (응용사례)
IoT 기반 융합 서비스 기술 (응용사례)IoT 기반 융합 서비스 기술 (응용사례)
IoT 기반 융합 서비스 기술 (응용사례)정명훈 Jerry Jeong
 
사물인터넷(Internet of Things) 시대의 공개SW
사물인터넷(Internet of Things) 시대의 공개SW사물인터넷(Internet of Things) 시대의 공개SW
사물인터넷(Internet of Things) 시대의 공개SW정명훈 Jerry Jeong
 
GoldenGate for MySQL 설치 시 필요한 사항
GoldenGate for MySQL 설치 시 필요한 사항GoldenGate for MySQL 설치 시 필요한 사항
GoldenGate for MySQL 설치 시 필요한 사항정명훈 Jerry Jeong
 

More from 정명훈 Jerry Jeong (13)

1시간만에 만드는 음성인식 인공지능 챗봇
1시간만에 만드는 음성인식 인공지능 챗봇1시간만에 만드는 음성인식 인공지능 챗봇
1시간만에 만드는 음성인식 인공지능 챗봇
 
Google Cloud IAM 계정, 권한 및 조직 관리
Google Cloud IAM 계정, 권한 및 조직 관리Google Cloud IAM 계정, 권한 및 조직 관리
Google Cloud IAM 계정, 권한 및 조직 관리
 
[오픈소스컨설팅]Jira 한글패치가이드 1
[오픈소스컨설팅]Jira 한글패치가이드 1[오픈소스컨설팅]Jira 한글패치가이드 1
[오픈소스컨설팅]Jira 한글패치가이드 1
 
Wso2 api manager 특징 slide share
Wso2 api manager 특징   slide shareWso2 api manager 특징   slide share
Wso2 api manager 특징 slide share
 
오픈소스의 이해(교육자료)
오픈소스의 이해(교육자료) 오픈소스의 이해(교육자료)
오픈소스의 이해(교육자료)
 
다산선생 지식경영법 - 여박총피법
다산선생 지식경영법 - 여박총피법다산선생 지식경영법 - 여박총피법
다산선생 지식경영법 - 여박총피법
 
네트워크 가상화를 통한 효율적인 빅데이터 처리
네트워크 가상화를 통한 효율적인 빅데이터 처리네트워크 가상화를 통한 효율적인 빅데이터 처리
네트워크 가상화를 통한 효율적인 빅데이터 처리
 
Innovation 3 3.stages of new product development
Innovation 3 3.stages of new product developmentInnovation 3 3.stages of new product development
Innovation 3 3.stages of new product development
 
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
 
IoT 기반 융합 서비스 기술 (응용사례)
IoT 기반 융합 서비스 기술 (응용사례)IoT 기반 융합 서비스 기술 (응용사례)
IoT 기반 융합 서비스 기술 (응용사례)
 
사물인터넷(Internet of Things) 시대의 공개SW
사물인터넷(Internet of Things) 시대의 공개SW사물인터넷(Internet of Things) 시대의 공개SW
사물인터넷(Internet of Things) 시대의 공개SW
 
CouchDB - Introduction - Korean
CouchDB - Introduction - KoreanCouchDB - Introduction - Korean
CouchDB - Introduction - Korean
 
GoldenGate for MySQL 설치 시 필요한 사항
GoldenGate for MySQL 설치 시 필요한 사항GoldenGate for MySQL 설치 시 필요한 사항
GoldenGate for MySQL 설치 시 필요한 사항
 

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

  • 1. Python Study 1강 정명훈 (jerry@osci.kr)
  • 3. Python 언어의 특징 다음과 같은 특징을 가진 고급 프로그래밍 언어 인터프리터  소스코드를 바로 실행(실제로는 중간 코드로 변환 후 실행) 3  소스를 Parsing 하는 시간을 줄이기 위해) 객체지향  클래스, 객체, 메소드, 속성으로 구성  추상화, 캡슐화, 상속, 다형성, 동적바인딩 등의 특징 제공 동적타이핑  개발시간(design-time)이 아닌 실행시간(runtime)에 자료(변수)의 형(type)을 결정 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)으로도 쉽게 확장 4 쉬운(짧은) 코딩, 가독성의 예
  • 5. 생산성  코드가 깔끔하고 양이 적음 (C, Java에 비해) 성능  대부분의 분야에서 Java, C와 크게 차이 없음 다양한 기능  그래픽, 수치 연산, 시스템 제어 등이 라이브러리로 쉽게 가능  예: 문명4 게임의 대부분이 Python으로 작성 보안  단일 언어의 보안 위험성 Polyglot  업무 특성에 맞게 필요한 언어를 골라 작성하는 프로그래밍 방법  예: C, Java로는 시스템 Shell 확장용 프로그램 작성하기는 부적합  C는 너무 어렵거나, Java는 Unix fork 등의 문제  반면 Python은 Shell과 유사한 프로그래밍 스타일(동적인 typing, 인터프리트, 대화형 등) JavaScript와 비교  Python과 유사성이 많은 스크립트 언어이지만 너무 유연한 문법과 느슨한 형 체크로 트러블슈팅 이 어려운 단점  거의 모든 문제점을 직접 실행해 봐야 알 수 있음  Python은 Java와 JavaScript의 중간 정도의 엄격함 5 Why Python
  • 6. 6 Python vs Java 코딩 편의성 비교
  • 7. 쉽게 배움 – Oracle Log 발생량 그래프 그리기 프로그램 언어를 처음 배우기 시작해서 3시간 만에 작성  http://blog.naver.com/javalove93/130165636491 7
  • 8. 주어진 모듈에 대한 사용 가능한 메소드나 속성들의 list를 반환 8 dir(x) 함수
  • 9. 대상에 대한 도움말을 보여줌. 모듈, 함수의 사용 방법(매뉴얼)을 알고자 할 때 편리 9 help(x) 함수
  • 11. 11 pip 및 easy_install Python의 yum 또는 apt-get  설치 방법 - easy_install 설치: sudo yum install python-setuptools - pip 설치: sudo easy_install pip - Window에서도 유사한 방법으로 사용 가능  사용 방법 Window용 pip 설치 - Flask(Micro Web Framework) 설치: sudo pip install flask - virtualenv 설치: sudo pip install virtualenv - 패키지 저장소: https://pypi.python.org/pypi (인터넷 반드시 연결. 없으면 다운 받아서 setup.py 실행) - 다음 위치에 패키지 다운로드 및 위치
  • 12. pip를 이용하여 여러 패키지를 한꺼번에 설치 여러 패키지 설치  설치할 패키지 명과 Version을 Text 파일에 기술  pip install <text file 명> 현재 시스템에 설치된 패키지 목록  pip freeze  위 내용을 text file로 만들어 다른 시스템에 그대로 설치 가능 12
  • 13. 개발 환경: eclipse + PyDev Eclipse 설치 (Window용 Python도 설치 필요)  최신 버전(또는 현재 사용 중인 버전 그대로 사용 가능) 다운로드 - https://www.eclipse.org/downloads/ - 현재 최신: 4.4(Luna)  참고로 제가 사용하는 버전은 4.2(Android 개발플랫폼 버전)  Eclipse Market Place에서 쉽게 설치 가능 13 - Help  Eclipse Marketplace...  PyDev Perspective 지정 - Python에 맞는 인터페이스 제공
  • 14. Linux 가상 머신 생성 및 IP 연결 PuTTY 터미널 (http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe) 14 Linux 가상 머신 및 터미널
  • 15. https://pypi.python.org/pypi/virtualenv Python 프로그램들의 라이브러리 version 충돌 문제를 방지하기 위해 별도의 라이브러 리 공간을 가질 수 있게 해주는 프로그램 15 virtualenv
  • 16. #이 기본 comment 여러 라인일 경우 ''' ~ ''' 또는 """ ~ """ 안에 넣을 수 있음  원래는 문자열 할당에 사용되는 기능 16 Python의 Comment
  • 17. 패키지가 포함된 모듈 Command line 에서 실행 17 실행 방법 JSON 포맷에 활용
  • 18. 18 외부 프로그램 실행 실행 결과를 받아와 분석하는 경우 간단하게 명령만 실행
  • 19. 4가지 명령의 실행 결과를 Text 파일로 저장  ifconfig –a  uname –a  df –k  mount 19 숙제