Recommended
PDF
[2007 CodeEngn Conference 01] 김기오 - NASM 어셈블러 사용법과 Calling Convention
PDF
[2008 CodeEngn Conference 02] seaofglass - Immunity Debugger 활용과 플러그인 제작
PPTX
[Gpg1권 박민근] 1.10 간단하고 빠른 비트 배열
PDF
Buffer Overflow PPT (OneTwo)
PDF
PDF
PlaidCTF 2016 Write-Up [hevc (MISC 50pts)]
PPTX
PDF
[Kerference] DEFCON CTF 풀어보기 - 박상석(KERT)
PDF
Mr.Robot CTF Write-Up (Korean version)
PPTX
PDF
[Kerference] 시작! 리버싱 - 김종범(KERT)
PPTX
PDF
PDF
PDF
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
PPTX
141103 최창원 파이썬 확장 프로그래밍
PDF
[2017 Incognito] 스택 구조 분석을 통한 ROP 기법의 모든 것
PPTX
Net debugging 3_전한별
PDF
SECCON 2016 Online CTF [Memory Analysis] Write-Up (ver.korean)
PDF
[2017 Incognito] 시스템 해킹 기법 정리
PDF
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KO
PDF
PPTX
PDF
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
PDF
BSides Delhi CTF 2018 [Never Too Late Mister (Forensics 200pts)] WriteUp
PDF
Codegate 2014 - Bug Hunting Challenge [Track0]
PPTX
PPTX
PDF
More Effective Python 3st (Multitask)
PDF
파이콘 한국 2019 - 파이썬으로 서버를 극한까지 끌어다 쓰기: Async I/O의 밑바닥
More Related Content
PDF
[2007 CodeEngn Conference 01] 김기오 - NASM 어셈블러 사용법과 Calling Convention
PDF
[2008 CodeEngn Conference 02] seaofglass - Immunity Debugger 활용과 플러그인 제작
PPTX
[Gpg1권 박민근] 1.10 간단하고 빠른 비트 배열
PDF
Buffer Overflow PPT (OneTwo)
PDF
PDF
PlaidCTF 2016 Write-Up [hevc (MISC 50pts)]
PPTX
PDF
[Kerference] DEFCON CTF 풀어보기 - 박상석(KERT)
What's hot
PDF
Mr.Robot CTF Write-Up (Korean version)
PPTX
PDF
[Kerference] 시작! 리버싱 - 김종범(KERT)
PPTX
PDF
PDF
PDF
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
PPTX
141103 최창원 파이썬 확장 프로그래밍
PDF
[2017 Incognito] 스택 구조 분석을 통한 ROP 기법의 모든 것
PPTX
Net debugging 3_전한별
PDF
SECCON 2016 Online CTF [Memory Analysis] Write-Up (ver.korean)
PDF
[2017 Incognito] 시스템 해킹 기법 정리
PDF
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KO
PDF
PPTX
PDF
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
PDF
BSides Delhi CTF 2018 [Never Too Late Mister (Forensics 200pts)] WriteUp
PDF
Codegate 2014 - Bug Hunting Challenge [Track0]
PPTX
PPTX
Similar to 20180320 python3 async_io
PDF
More Effective Python 3st (Multitask)
PDF
파이콘 한국 2019 - 파이썬으로 서버를 극한까지 끌어다 쓰기: Async I/O의 밑바닥
PDF
PDF
H3 2011 파이썬으로 클라우드 하고 싶어요
PDF
2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요
PDF
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
PDF
PDF
PPTX
Python study 1강 (오픈소스컨설팅 내부 강의)
PDF
PDF
『고성능 파이썬』 - 맛보기
PDF
Asynchronous Python and Database
PDF
PDF
PPTX
Hello python 오리엔테이션(파이썬 스터디, 발표자료)
PDF
PDF
PPTX
PDF
파이썬 튜토리얼 (Python tutorial)
PPTX
20180320 python3 async_io 1. 2. Contents
1. Python 3
a. 3.6으로 시작
b. 적용 순서
c. 주요 문법 변화
d. 이슈들…
e. 얼마 남지 않았다
2. AsyncIO
a. 소개
b. 일반 예제
c. 적용 예제
d. 성능 차이
e. 업무 적용 사례
3. Summary
a. Python3
b. AsyncIO
3. 4. 1. Python3 - a. 3.6으로 시작
● async def와 await는 파이썬 3.5에서 추가되었음
● 따라서 그 이하 버전에서는 사용할 수 없음
● 파이썬 3.4에서는 @asyncio.coroutine 데코레이터로 네이티브 코루틴을 생성
● 3.6(stable version)으로 시작하는것을 추천
5. 1. Python3 - b. 적용 순서
1. Python 3.6 Download(https://www.python.org/)
2. Read Readme
a. configure
b. make
c. make test
d. sudo make install
3. install python package
a. using pip3.6
6. 1. Python3 - c. 주요 문법 변화
Python 2 Python 3
int 나눈 결과 float print( 1/2 ) # 0
print( type(1/2) ) # <type 'int'>
print( 1/2 ) # 0.5
print( type(1/2) ) # <class 'float'>
print문 괄호 필수 print( 'hello' ) # hello
print 'hello' # hello
print( 'hello' ) # hello
print 'hello' # Error! invalid syntax
str과 unicode 통일 print( type('hello') ) # <type 'str'>
print( type(u'hello') ) # <type 'unicode'>
print( type('hello') ) # <class 'str'>
print( type(u'hello') ) # <class 'str'>
long은 int로 통일 print( 2**30 ) # 1073741824
print( type(2**30) ) # <type 'int'>
print( 2**100 ) #
1267650600228229401496703205376
print( type(2**100) ) # <type 'long'>
print( 2**30 ) # 1073741824
print( type(2**30) ) # <class 'int'>
print( 2**100 ) #
1267650600228229401496703205376
print( type(2**100) ) # <class 'int'>
7. 1. Python3 - d. 이슈들...
1. int 나눈결과 float: 쉬움
2. print문 괄호 필수: 쉬움
3. str과 unicode 통일: 경우에 따라 어려움
4. long과 int 통일: 쉬움
5. dictionary의 iter~, view~ 시리즈 삭제: 쉬움
6. 외부 package들의 호환성: 경우에 따라 귀찮음
7. except Exception, e: -> except Exception as e: 쉬움
8. 9. 10. 11. 2. AsyncIO - b. 일반 예제
# Example 1: synchronous requests
import requests
num_requests = 20
responses = [
requests.get('http://example.org/')
for i in range(num_requests)
]
12. 2. AsyncIO - c. 적용 예제
# Example 2: asynchronous requests
import asyncio
import requests
async def main():
loop = asyncio.get_event_loop()
futures = [
loop.run_in_executor(
None,
requests.get,
'http://example.org/'
)
for i in range(20)
]
for response in await asyncio.gather(*futures):
pass
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
13. 14. 2. AsyncIO - e. 업무 적용 사례
loop = asyncio.get_event_loop() # 이벤트 루프를 얻음
try_cnc_nodedata = loop.run_until_complete(cnc_nodedata.get_cnc_data(ACCOUNT_INFO, ACCOUNT_DOMAIN_MAP,
DOMAIN_INFO, start_datetime, end_datetime, req_date, headers, try_cnc_nodedata))
loop.close()
==========
def do_post_req():
return requests.post(url, data=json_data, headers=_headers, auth=(_id, _pwd), timeout=CONFIG["CNC_API_TIMEOUT"])
loop = asyncio.get_event_loop()
res = await loop.run_in_executor(None, do_post_req)
15. 2. AsyncIO - e. 업무 적용 사례(cont.)
● AsyncIO 적용 전
○ 270초 정도 소요.
○ domain의 증가에 따라 소요 시간 증가
● AsyncIO 적용 후
○ 60초 정도 소요
○ domain의 증가에 영향받지 않음.
16. 17. 3. Summary - a. Python3
● Python은 v3를 써야만 한다.
● v2 -> v3 는 몇몇 경우를 제외하고는 그리 어렵지 않다.
● 지금 바로 넘어가세요~
18. 3. Summary - b. AsyncIO
● IO비중이 높다면 눈에 띄는 성능 개선!
● 그동안 무시해왔던 Python의 Multi Thread를 적극 활용.
● async, await, event loop, native coroutine 등의 개념은 study 필요.
19. 20.