본문 바로가기
정보공유

[정조] 파이콘 2017 그만퇴근합시다_이지호

by 날고싶은커피향 2018. 3. 3.
반응형

파이콘 2017 그만퇴근합시다 라는 자료입니다.

많은 참고 하시기 바랍니다.

 

 

파이콘 2017 그만퇴근합시다_이지호 from Jiho Lee

 

 

 1. 그만 퇴근합시다! 똑같은 일을 하더라도 스마트하게 하기 이지호
2.  1. 파이썬을 알고 있다면 더 적극적으로 쓰자 2. 파이썬을 사용해 일을 조금이라도 줄이기 3. 칼퇴근을 위해 필요한 개인의 자질 4. 파이썬을 어디에 사용할 수 있을까? 5. 라이브러리를 사용해 하던 일을 더 빠르게 하기
3.  발표자 2분 소개 이름: 이지호 업으로 하는 일: 회사에서 시키면 다한다! 학교에서 하는 일: 매주 데이터베이스 관련 논문을 읽는다 그 외: • 오픈소스 관련 세미나 발표 및 쉬어야 할 주말에 파이썬 강의 • 한빛미디어 ”파이썬 코딩 클럽” 공동 번역(2, 3권) • 제이펍 “Flask 기반의 파이썬 웹 프로그래밍” 집필 • 사단법인 변화를 꿈꾸는 과학기술인 네트워크(ESC 창립회원) 한줄 소개: 공부를 하러 들어간 대학원에서 쓰라는 논문은 안쓰고 책을 집필하는 이 시대의 잉여!
4.  파이썬을 알고 있다면 더적극적으로 저와 여러분이 알고 있는 단어 하나! 파이썬!
5.  질문 하나 수 많은 언어 중에 왜 파이썬을 사용하고 있나요? 질문 하나 파이썬은 누구를 위해 만들어진 언어일까요? 질문 하나 파이썬을 사용하는 곳이 지정되어 있어야 할까요? 파이썬을 알고 있다면 더적극적으로
6.  모든 일에는 알맞는 도구가 있습니다. 도끼로 요리를 하는건 어리석은 일이지만 메짜루나로 요리하는건 당연한 일입니다. 파이썬을 알고 있다면 더적극적으로
7.  파이썬을 알고 있다면 더적극적으로
8.  파이썬을 사용해 일을 조금이라도 줄이기 우리가 일상에서 흔히 겪을수도 있는 일 ”지호씨, git에서 master 브랜치를 컴파일하고 B사 A팀장에게 보내요” 이런 일 쉽게 할 수 있습니다!
9.  그런데 우리가 간과하는 일이 있습니다: 1. git에서 master 브랜치를 압축 파일로 보낸다. git export 명령을 쓰면 해결되요 2. 외부에 브랜치를 보내면 태깅을 해야 합니다. 자주 잊어먹습니다. 그리고 push도 해야 하죠. 3. 메일을 보내기 위해 웹 메일이나 썬더버드를 엽니다. 여기에 들이는 시간도 만만치 않습니다. 파이썬을 사용해 일을 조금이라도 줄이기
10.  우리의 시간은 소중합니다!! 최소한 연애할 시간은 있어야… 파이썬을 사용해 일을 조금이라도 줄이기
11.  이런 일만 있을까요? 1. 캡쳐한 이미지나 문서를 메일로 보내기 2. 대용량 메일을 보내기 3. 에버노트나 드롭박스에 파일 업로드 4. SNS 공유하기 파이썬을 사용해 일을 조금이라도 줄이기
12.  칼퇴근을 위해 필요한 개인의 자질 우리 모두 알고 있습니다. 사실 칼퇴근이란 단어가 없습니다. 대한민국 법은 법정 시간이 유효 근로 시간 현실은… 8
 13.  1. 호기심 2. 탐구심 3. 과학적 분석 방법!! 네? 이게 왜 필요하죠?? 4. 그리고 게으름이라는 양념! 칼퇴근을 위해 필요한 개인의 자질
14.  호기심 칼퇴근을 위해 필요한 개인의 자질
15.  칼퇴근을 위해 필요한 개인의 자질 탐구심
16.  칼퇴근을 위해 필요한 개인의 자질 과학적 분석 방법!!
17.  칼퇴근을 위해 필요한 개인의 자질 그리고 게으름이라는 양념!
18.  파이썬을 어디에 사용할 수 있을까? 1.OPENSSL 루트 인증서 및 클라이언트 인증서 생성 2.JKS 인증서 생성 a. 주의: keytool 로도 가능은 해요? 3.PDF 생성 4.프린터 하기 5.엑셀 파일 파싱 6.웹 크롤링 7.구글 문서 조작 8.VCS, 압축하기, 드롭박스나 에버노트 연동 9.응용: KDE Spectacle에서 캡쳐 후 에버노트로 보내기!
19.  라이브러리로 하던 일을 더 빠르게 하기 OPENSSL 루트 인증서 및 클라이언트 인증서 생성 openssl - 애플리케이션이 보안 통신을 할 수 있도록 도와주는 프로그램 주된 일 중 하나는 루트 인증서와 루트 인증서를 사용해 인증 요청서에 서명 당장 구글 검색만 해도 수십가지 문서가 나오지만, 결국은 제각각 다른 방법… 마침 데비안 리눅스 배포본엔 쉽게 사용할 수 있는 CA.pl이 있었습니다. 이걸 파이썬으로 리팩터링 했습니다. 파이썬으로 다시 만들면서 느낀건 더 편하게 만들수도 있겠다 였습니다. https://github.com/search5/ca.py
 20.  JKS 인증서 생성 – JKS: Java standard KeyStore 왜 사용하나? : 자바 애플리케이션이 안전함을 알리기 위해서 사용. 주의: 자바 keytool로도 만들 수 있고, keytool은 keystore 생성, CSR, 스토어 내 인증서 관리에 사용 사용례) Tomcat Connector 설정에 keystoreFile="keystore Path" keystorePass="keystore Password” [참고] - http://dimdim.tistory.com/entry/사설-인증서를-이용한-Tomcat-HTTPS-설정 [딤딤이의 블로그] 라이브러리로 하던 일을 더 빠르게 하기
 21.  그렇지만 java keystore를 새로 만들기보다 이미 만들어진 openssl 인증서를 사용하는 방법도 있습니다. 이 방법은 Java 6부터 지원합니다. openssl 인증서를 변환하려면 다음 3개의 절차를 거칩니다. 1) 개인키와 인증서를 PEM 파일로 변환 2) openssl 파일을 사용해서 pkcs12 포맷으로 변환 3) keytool 도구로 pkcs12 포맷을 jks keystore로 변환 라이브러리로 하던 일을 더 빠르게 하기
22.  그런데, 이렇게 변환 절차를 거치게 되면 몇번씩이나 개인키와 서명된 인증서의 비밀번호 입력은 물론이고 keystore에 비밀번호를 입력하게 됩니다. 이럴때 이런 절차를 모두 간소화할 수 있는 방법이 있습니다. 파이썬의 pexpect 로 변환, 키 입력 등을 사람이 하는 것처럼 흉내내게 하는 것이죠! 라이브러리로 하던 일을 더 빠르게 하기
23.  잠깐만, 뭐라구요? 사람을 흉내내요? 라이브러리로 하던 일을 더 빠르게 하기
24.  openssl 인증서를 jks 파일로 변환하기 위해서 생성한 파이썬 스크립트 pkcs12_cmd openssl pkcs12 -export -inkey {PRIVATE_KEY_FILE} -in {MERGE_KEY_FILE} -name server_cert -out {PKCS12_FILE} pkcs12_child = pexpect.spawn(pkcs12_cmd, echo=True) pkcs12_child.expect("Enter Export Password:") pkcs12_child.sendline(PKCS12_PASSWD) pkcs12_child.expect("Verifying - Enter Export Password:") pkcs12_child.sendline(PKCS12_PASSWD) pkcs12_child.interact() 전체 코드: https://github.com/search5/openssl_utils/blob/master/pem2jks.py 라이브러리로 하던 일을 더 빠르게 하기
25.  openssl 인증서를 jks 파일로 변환하는 것처럼, 어떤 프로그램은 사람의 입력을 계속 요구할 수 있습니다. 우린 이때 방금 소개한 pexpect를 사용해 사람의 흉내를 낼 수 있습니다. 그런데, pexpect는 윈도우에서 사용할땐 프로세스 실행 코드 방법이 조금 다릅니다. pexpect.spawn 대신 pexpect.popen_spawn.PopenSpawn 를 사용 http://pexpect.readthedocs.io $ pip install pexpect 라이브러리로 하던 일을 더 빠르게 하기
26.  지상 최강의 도구 – 그 이름은 엑셀… 누구나 한번쯤 엑셀 문서를 만들어보지만, 프로그래머가 된다면 역으로 이걸 해석해내기에 바쁩니다. 파이썬으로 엑셀 문서를 읽을 수 있는 라이브러리는: xlrd, openpyxl, xlwings … 그런데 셀에 접근할 때 왜 컬럼의 이름이 아니라 A1, B1, C1, A2, .. 등으로 접근해야 하지? 게다가.. office 2007 이전 버전 엑셀은 xlrd 하나 밖에 사용할 수 없습니다. 라이브러리로 하던 일을 더 빠르게 하기
27.  라이브러리로 하던 일을 더 빠르게 하기 그럼 컬럼 단위로 읽어주는 엑셀 라이브러리를 만들어보자는 생각이 번쩍 들었습니다. 그래서 시간을 내어 엑셀 파일 이름과 시트명을 주고 컬럼 이름으로 데이터를 읽어오는 라이브러리를 만들었습니다. obj = ExcelLib('제5차국내외문서목록 테스트.xml') obj.setWorksheet('2011 국내문서-낱장') obj.buildStyles() rows = obj.buildRows() print rows[0]['기록철'].style.getUnderline()
 28.  라이브러리로 하던 일을 더 빠르게 하기 하지만, 제가 만든건 아주 크나큰 결점이 있습니다. 1) Office 2003 XML 파일 형식으로 저장되어 있어야 한다 2) XML을 DOM으로 해석하기 때문에 메모리가 커야한다. 그래도 사소한 장점이 아닌 장점도 있습니다. 1) 셀 별로 스타일을 엑셀 파일에 지정한대로 들고 오게 할 수 있다 2) XML 파일 이므로 읽고/쓰기가 모두 가능할 수도 있다. 만들고 나서 든 생각: 이걸 누가 쓰니? https://github.com/search5/msoffice_2003_excel_xml
 29.  라이브러리로 하던 일을 더 빠르게 하기 규격화된 문서를 만들고 배포하기에 대중적으로 선호되는 포맷은 PDF 입니다. PDF를 만들 수 있는 다양한 방법과 라이브러리가 있지만, 다음 2개만 소개합니다. PyFPDF, ReportLAB 등..
30.  라이브러리로 하던 일을 더 빠르게 하기 PyFPDF는 PHP에 있는 fpdf 라이브러리를 파이썬으로 포팅한 것입니다. from fpdf import FPDF pdf = FPDF() pdf.add_page() pdf.set_font('Arial', 'B', 16) pdf.cell(40, 10, 'Hello World!') pdf.output('tuto1.pdf', 'F')
 31.  라이브러리로 하던 일을 더 빠르게 하기 FPDF는 파일로 PDF를 저장할 수도 있지만, 스트림 형태로 웹 브라우저에 보낼 수도 있습니다. stream = pdf.output(dest='S').encode("latin1") response_tuple = (stream, "200 OK", {'Content-Type': 'application/pdf'}) return make_response(response_tuple) https://pyfpdf.readthedocs.io/en/latest/
 32.  라이브러리로 하던 일을 더 빠르게 하기 하지만, FPDF를 사용해 가장 구현하기 힘든건, PDF에 테이블을 집어넣는 일입니다. 아직까지 PyFPDF에 테이블을 넣는 효과적인 방법은 찾지 못했지만, 다행이 PHP로 만들어진 라이브러리가 있어 이를 직접 포팅 했습니다. https://goo.gl/uQSaZq
 33.  라이브러리로 하던 일을 더 빠르게 하기 파이썬을 사용해 PDF를 만들 수 있는 라이브러리로 PyFPDF 외에도 ReportLAB 이 있습니다. from reportlab.pdfgen import canvas def hello(c): c.drawString(100,100,"Hello World") c = canvas.Canvas("hello.pdf") hello(c) c.showPage() c.save()
 34.  라이브러리로 하던 일을 더 빠르게 하기 ReportLAB은 PDF를 캔버스 개념으로 다룹니다. 캔버스는 하얀 도화지와도 같기 때문에 앞의 코드만으로도 쉽게 PDF 파일을 만들 수 있습니다. 그리고, TrueType Font 적용 기능과 테이블 기능이 제공됩니다. 무엇보다 경량화된 FPDF에 만족하기 어렵다면 고급 기능을 제공하는 reportlab을 사용하세요. 하지만 프로페셔널은 유료에요!!! http://www.reportlab.com/
 35.  라이브러리로 하던 일을 더 빠르게 하기 엑셀을 잠깐 맛보고 왔으니 이제 구글과 함께 놀아볼 겁니다. 여러분이 모두 인정하는 한 문장이 있죠. <= 구글신께 물어봐! 오늘은 여러분에게 구글을 신이 아니라 하인처럼 부려볼 겁니다.
36.  라이브러리로 하던 일을 더 빠르게 하기 구글은 다양한 도구를 제공하는데 그 중 하나가 구글 드라이브입니다. => 처음엔 구글 문서도구로 시작.. 그럭저럭 쓸만한 온라인 오피스가 됐습니다. 아주 잠깐이지만, 파이썬을 사용해 구글 스프레드시트를 만들고 내용을 채워넣는 모습을 보여드릴겁니다. => 그리고 해야할 일을 알려드리겠습니다.
37.  라이브러리로 하던 일을 더 빠르게 하기 구글 스프레드시트를 사용하는 것은 구글 API 클라이언트를 사용하는 것이 정석이지만 처음 쓰면 매우 다가가기 힘든 녀석입니다. 그래서 여러분은 pygsheets를 사용하시는게 좋습니다. $ pip install https://github.com/nithinmurali/pygsheets/archive/master.zip
 38.  라이브러리로 하던 일을 더 빠르게 하기 import pygsheets gc = pygsheets.authorize() sh = gc.open('PyCon 2017') wks = sh.sheet1 wks.update_cell('A1', '안녕하세요. 파이콘 2017에서 만나뵙게 되어 대단히 반갑습니다') wks.cell('A2').value = '오늘은 이 자리에 서게 되어 정말 기뻐요’ sh.share("search5@gmail.com")
 39.  라이브러리로 하던 일을 더 빠르게 하기 하지만, pygsheets를 사용하기 위해서는 다음의 일을 먼저 수행해야 합니다. 1. console.cloud.google.com에 접속해서 프로젝트 생성 2. oauth 정보 등록 3. oauth2.0 정보 생성 4. client….json 파일을 client_secret.json으로 변경 5. http://pygsheets.readthedocs.io/en/latest/ 참고하기!! 자동화를 위해서 아주 사소한 일이에요!
40.  라이브러리로 하던 일을 더 빠르게 하기 앞서, 구글 스프레드시트를 다루는 일만 먼저 살펴봤습니다. =>사실, 구글 오피스에서 자바스크립트 대신에 파이썬 스크립트를 대신 사용할 수도 있습니다. 여러분이 가져야 할 건, 영어에 대한 두려움이 아니라, 호기심과 탐구심이란걸 잊지 마세요!
41.  라이브러리로 하던 일을 더 빠르게 하기 요즘 파이썬으로 가장 핫한 이슈 중 하나 ---> 데이터 크롤링 여러분 머릿속에서 뭘, 생각하고 계신가요? 다양한 데이터 소스에서 크롤링 할 수 있지만 여기서는 웹 크롤링을 살짝 들여다보겠습니다.
42.  라이브러리로 하던 일을 더 빠르게 하기 웹 문서 크롤링을 한다면, 이런게 필요합니다. 1) 웹 브라우저 2) 크롤링할 주소 3) 크롤링할 콘텐츠 영역 2, 3번은 이해가 되는데 1번은 좀 갑작스럽습니다.
43.  라이브러리로 하던 일을 더 빠르게 하기 웹 사이트는 접속하는 브라우저(웹 브라우저 포함)를 식별할 수 있습니다. 어떻게? => 브라우저가 웹 사이트에 자신이 누구인지를 밝히기 때문. 그러다보니? => 브라우저가 누구인지에 따라 HTTP 응답 또는 거절 그래서, 이들을 위해 웹 브라우저가 보내는 헤더를 미리 파이썬 사전으로 구성해둘 필요가 있습니다.
44.  라이브러리로 하던 일을 더 빠르게 하기 headers = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 ', 'Accept-Encoding': 'gzip, deflate, sdch', 'Accept-Language': 'en-US,en;q=0.8,ko;q=0.6', 'Cache-Control': 'max-age=0', 'Connection': 'keep-alive', 'Host': 'opengov.seoul.go.kr', 'Upgrade-Insecure-Requests': '1', 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36'}
 45.  라이브러리로 하던 일을 더 빠르게 하기 많은 사람들이 파이썬으로 웹 크롤링을 한다고 하면 구글 문서부터 찾아봅니다. 하지만, 오늘부터 이렇게 하세요. $ pip install requests lxml 그리고 크롬이나 파이어폭스가 필요합니다.(IE는 어디로..)
46.  라이브러리로 하던 일을 더 빠르게 하기 r = requests.get(url, headers =headers) from lxml import html tree = html.fromstring(page_str) title = tree.xpath('//*[@id="comm-view"]//div[@itemprop="about"]') lxml을 사용해 HTML 문서로부터 원하는 데이터를 뽑기 위해서 알아야 하는건, XPATH 문법 뿐입니다!!
47.  라이브러리로 하던 일을 더 빠르게 하기 XPATH는 무엇인가요? XML 관련 기술 중 하나로 문서 내에 있는 의미 구성 요소를 트리 단위로 찾기 위해 고안된 경로 문자열 검색 언어입니다. 이런 책이 있지만, 우리에겐 MDN(Mozilla Developer Network)이 있습니다.. https://developer.mozilla.org/ko/docs/XPath
 48.  라이브러리로 하던 일을 더 빠르게 하기 S전자에는 무어의 법칙에 비견가는 황의 법칙(2008년에 깨짐)이란게 있다고 합니다. 메모리가 주기적으로 배수 만큼 커진다는 것인데, 컴퓨터 디스크도 95년도에 400MB만 해도 대단한 크기였습니다. 여전히 디스크 크기는 커지고 있지만 우리는 데이터를 저장하고 공유하기 위해 이제 온라인 저장공간을 사용하고 있습니다.
49.  라이브러리로 하던 일을 더 빠르게 하기 널리 알려진 온라인 저장소로 아마존 S3, 구글 Cloud Bucket이 있지만... 잘 모르시죠? 그래서 준비했습니다. Dropbox! 전세계에서 가장 유명한 온라인 스토리지입니다(귀도 반 로썸 아자씨가 여기에 계시다고)
50.  라이브러리로 하던 일을 더 빠르게 하기 어떤때 사용하면 좋을까요? 웹 브라우저를 사용하기 어렵고, 파일 공유가 필요할때가 있을 것입니다. 아마 서버 컴퓨터가 이런 분류에 속하지 않을까요?
51.  라이브러리로 하던 일을 더 빠르게 하기 드롭박스는 파이썬 SDK를 지원합니다(사실은 다른 언어도 지원해요.. ㅠ.ㅠ) 우린 파일 업로드만 살펴보겠습니다. import dropbox dbx = dropbox.Dropbox('19RV0X3pjA4...') dbx.files_upload(open("samples.jpg","rb").read(), "/samples.jpg")
 52.  라이브러리로 하던 일을 더 빠르게 하기 어…어.. 뭔가 빠진 것 같지만 사실은 정말 정상적입니다. 그럼 이렇게 업로드된 파일을 다른 사람에게 링크만 보내거나 공동 작업자를 추가할 수도 있습니다. 그럼 업로드된 파일의 short url을 구해보겠습니다. s = dbx.sharing_create_shared_link("/samples.jpg", True) PathLinkMetadata(url='https://db.tt/WQqBexRWRY', visibility=Visibility('public', None), path='/samples.jpg', expires=None)
 53.  라이브러리로 하던 일을 더 빠르게 하기 드롭박스는 sharing_create_shared_link 메서드 => 공유 URL을 구하면 PathLinkMetadata 객체 반환 이제 PathLinkMetadata.url 을 알려주면 됩니다. 이것도 귀찮겠죠? 텔레그램이나 슬랙 봇을 만들어 내부 구성원에게 공유하거나 smtplib 모듈을 사용해 링크를 메일로 전달할 수 있습니다. 리눅스 KDE 데스크탑의 화면 캡쳐 프로그램인 스펙타클(Spectacle)을 사용한다면 캡쳐 이미지를 바로 드롭박스에 업로드 하는 것도 가능할 겁니다.
54.  라이브러리로 하던 일을 더 빠르게 하기 하지만 드롭박스를 사용하기 위해서 다음은 꼭 지켜주세요. https://www.dropbox.com/developers/apps 에 들어가서 API 키를 반드시 발급 받아야 합니다. 그렇지 않으면 드롭박스는 사용할 수 없습니다!! 설치는 언제 그렇듯.. $ pip install dropbox
 55.  라이브러리로 하던 일을 더 빠르게 하기 메모 프로그램에도 Dropbox와 비슷한 서비스가 있습니다. 바로 에버노트죠. 에버노트의 카피 문구는 “제 2의 뇌”입니다. 그런데 우리가 에버노트를 제2의 뇌로 잘 사용하고 있나요?
56.  라이브러리로 하던 일을 더 빠르게 하기 전용 클라이언트가 있어야 하거나.. 웹 브라우저로만 써야 한다거나.. 스마트폰이 꼭 필요하다면.. 이걸 꼭 써야 할 이유가… 없을겁니다.
57.  라이브러리로 하던 일을 더 빠르게 하기 그래서 준비했습니다. 에버노트에 이미지 노트를 만드는 방법을. 먼저 에버노트 SDK를 설치합니다. $ pip install https://github.com/evernote/evernote-sdk-python3/archive /master.zip
 58.  라이브러리로 하던 일을 더 빠르게 하기 그리고 API 키 정보와 개발 토큰을 다음 사이트에서 등록합니다. http://dev.evernote.com/doc/ https://www.evernote.com/api/DeveloperToken.action
 59.  라이브러리로 하던 일을 더 빠르게 하기 노트 생성 시작하기 import hashlib import binascii import evernote.edam.type.ttypes as Types from evernote.api.client import EvernoteClient auth_token = "S=s135:U=dd6e77:E=16521625b0f…"
60.  라이브러리로 하던 일을 더 빠르게 하기 client = EvernoteClient(token=auth_token, sandbox=False, china=False) note_store = client.get_note_store() note = Types.Note() note.title = "PyCon2017" image = open('samples.jpg', 'rb').read() md5 = hashlib.md5() md5.update(image) hash = md5.digest()
 61.  라이브러리로 하던 일을 더 빠르게 하기 data = Types.Data() data.size = len(image) data.bodyHash = hash data.body = image resource = Types.Resource() resource.mime = 'image/jpeg' resource.data = data note.resources = [resource]
 62.  라이브러리로 하던 일을 더 빠르게 하기 hash_hex = binascii.hexlify(hash) hash_str = hash_hex.decode("UTF-8") note.content = '<?xml version="1.0" encoding="UTF-8"?>' note.content += '<!DOCTYPE en-note SYSTEM ' '"http://xml.evernote.com/pub/enml2.dtd">' note.content += '<en-note>PyCon 2017<br/>' note.content += '<en-media type="image/jpeg" hash="{}"/>'.format(hash_str) note.content += '</en-note>' created_note = note_store.createNote(note)
 63.  라이브러리로 하던 일을 더 빠르게 하기 에버노트과 파이썬 연계의 아쉬움… 아직 파이썬 2만 제대로 연동… 내부 특성이지만 ENML이라는 마크업 언어를 배워야 한다. 그리고… 개발에 대한 정보를 찾아보고 이해할 수 있어야 합니다.
64.  라이브러리로 하던 일을 더 빠르게 하기 소스 코드 관리에 필수적인 도구 중 하나인 Git. 좋은 도구도 많고, 쉽게 사용 가능할 정도로 널리 알려져 있습니다. 그런데 하나의 일 처럼 보이는(최근 10개의 커밋 내역에서 변경된 파일만 끄집어 압축한다거나..) 것을 하려면 1. 커밋 내역을 확인한다. 2. 변경 파일 목록을 적는다. 3. 똑같은 폴더 구조 만들고 변경된 파일을 복사하기 시작한다.
65.  라이브러리로 하던 일을 더 빠르게 하기 우리는… 원시 시대에 살고 있지 않습니다…
66.  라이브러리로 하던 일을 더 빠르게 하기 이런 이유로… gitpython이있습니다. 설치는 이렇게 합니다. $ pip install gitpython 설명서는... http://gitpython.readthedocs.io/
 67.  라이브러리로 하던 일을 더 빠르게 하기 from git import Repo repo = Repo(".") commit = repo.commit("HEAD~10") change_list = list(commit.stats.files.keys()) ['static/img/glyphicons-halflings-white.png', 'templates/mngt/team.html', 'static/css/bootstrap.css', 'templates/asset/pc_list.html.bak’, …]
68.  라이브러리로 하던 일을 더 빠르게 하기 from git import Repo repo = Repo(".") # archive repo.archive(open(”../repo_latest.zip”, “wb”))
69.  라이브러리로 하던 일을 더 빠르게 하기 gitpython은 아마 여러분이 명령어를 직접 사용해서 단계를 건너뛰게 해주는 효과를 줄여줄 것입니다. 하지만 여기에 필요한건, 여러분의 호기심이죠.
70.  많은 개발자들이, 그리고 저와 여러분도, 디지털이라고 생각하는 아날로그 시대에 살고 있습니다. 앞서 많은 예제를 살펴봤지만 아직 할 수 있는게 더 많습니다. 예를 들면, cups를 사용한 프린팅 서버도 있을 수 있습니다. 여기에서 미처 소개하지 못했지만요.. 마무리
71.  지금까지 들어주셔서, 고맙습니다.

반응형

loading