H3 2011 파이썬으로 클라우드 하고 싶어요

KTH
KTHDeveloper at KTH
하용호        @yonghosee


'하용호' 라고 합니다. kth 클라우드연구소 분산기술랩에서 즐겁게 일하고
있습니다. '프리즘 파일 시스템'이라는 분산파일 시스템, 'iLock'이라 이름 붙
인 분산 동기화 서비스, 그리고 새로운 검색엔진을 만들고 있습니다. 분산처
리, 데이터마이닝을 연구해 왔습니다. 대량의 자료를 다루는 것을 좋아합니
다. Data Scientist를 지향합니다.




파이썬으로 클라우드 하고 싶어요.
파이썬은 쉬운 구조와 빠른 작성 속도를 강점으로 하여 이미 주류언어로 대
중화 되었습니다. 과거에 비교적 간단한 작업에 많이 쓰였던 파이썬을 분산
처리, 병렬처리를 사용하여 큰 문제들을 풀어내는 데 활용하는 방법들을 알
아봅니다. 멀티코어를 이용하고, 수십 대의 컴퓨터로 병렬처리하고,
Hadoop과 아마존 클라우드를 사용하여 분산 처리하는 방법들까지 알아봅
니다.
파이썬으로
클라우드
하고 싶어요!
분산기술Lab I 하용호
하 용호
 용   호

         3
위치 : 창원시 의창구 용호동
위치 : 강화도 선두리 어시장(우리집 아님)
우리의 주제   파이썬으로
         분산처리도 해보고
         병렬처리도 해보고
         클라우드도 써보자.
2011/11/21/월요일
프로그램 테이블 발표




                 응=_=?
구석!
구석!
이럴 수가!
우리가 마이너라니!!
H3 2011 파이썬으로 클라우드 하고 싶어요
하지만 시대는 멀티코어
심지어 휴대폰도 쿼드코어
하지만 시대는 빅데이터
대강 이정도
그렇다!
우리가

쎈타 오브 유니버스
  여기쯤
쫄지마 !
   세요
걱정 말아요
우리는 잘될 겁니다.
     일확천금을 노리세^^;;
본론을 시작합니다.
다시 강조
        빅데이터
시대는      &
        분산처리
MULTI CORE
MANY MACHINES
CLOUD
하지만
분산프로그래밍은 어렵습니다.
to LEARN
Hard   to WRITE
       to RUN
원인은
작성하는데 굉장히 어렵다.

관련되어 많은 라인을 써야 한다.

네트워크나 디스크가 병목점일 때가 많다.

의외로 반복 사용이 되지 않는다.
조금씩 고쳐야 되는 일은 많다.
해답은
해답은
Md5 해쉬값을 구하고 싶어요?

  그건 일도 아니죠.
파일을 압축하고 싶어요?
                    hashlib.md5(“python is so powerful").hexdigest()



                    import gzip


  그건 일도 아니죠.
                    f = gzip.open('example.txt.gz', 'wb')
                    f.write('Contents of the example go here.n')
                    f.close()


웹페이지를 긁어오고 싶어요?
                    import urllib2

  그건 일도 아니죠.
                    response = urllib2.urlopen('http://google.com/')
                    data = response.read()
                    print data


REST 웹서버를 만들고 싶어요?from   flask import Flask
                    app = Flask(__name__)

  그건 일도 아니죠.        @app.route("/“, methods=[‘GET’])
                    def hello():
                        return "Hello World!"

                    if __name__ == "__main__":
                        app.run()
해답은
               JAVA




               PYTHON
               Perl, Ruby




 마이너 아님(아마도)
해답은
작성하는데 굉장히 어렵다.
             작성 완전 쉬워요
관련되어 많은 라인을 써야 한다.
   쉽게 가져다 쓸 라이브러리가 많아요
네트워크나 디스크가 병목점일 때가 많다.
      계산이 느린 것은 상쇄됩니다.
의외로 반복 사용이 되지 않는다.
        한번 쓸 코드 짜기 딱 좋죠
조금씩 고쳐야 되는 일은 많다.
     인터프리터 좋다는 게 뭔가요^^
to LEARN
Easy   to WRITE
       to RUN
파이썬으로 하는
분산프로그래밍은 쉽습니다(?)
자 그러면
멀티코어를 써보자!
처음 떠 오르는 것?
쓰레드(Thread) !!!
  프로세스

         쓰레드

         쓰레드
간단한 덧셈 프로그램
from threading import Thread
                                            start부터
def do_work(start, end, result):
    sum = 0                                 end까지
    for i in range(start, end):             더해요
        sum += i
    result.append(sum)
    return                                  쓰레드
if __name__ == "__main__":
                                            1개를
    START, END = 0, 20000000                써봅시다.
    result = list()
    th1 = Thread(target=do_work, args=(START, END, result))
    th1.start()
    th1.join()
print "Result : ", sum(result)
쓰레드 1개
$ time python 1thread.py
Result : 199999990000000




real       0m3.523s
2개 쓰면 더 빨라지겠지?
from threading import Thread
                                            start부터
def do_work(start, end, result):
    sum = 0                                 end까지
    for i in range(start, end):             더해요
        sum += i
    result.append(sum)
    return                                  쓰레드
if __name__ == "__main__":
                                            2개를
    START, END = 0, 20000000                써봅시다.
    result = list()
    th1 = Thread(target=do_work, args=(START, END/2, result))
    th2 = Thread(target=do_work, args=(END/2, END, result))
    th1.start()
    th2.start()
    th1.join()
    th2.join()
print "Result : ", sum(result)
쓰레드 1개                     쓰레드 2개
$ time python 1thread.py   $ time python 2thread.py
Result : 199999990000000   Result : 199999990000000




real       0m3.523s        real 0m4.225s
                                        응-_-?
H3 2011 파이썬으로 클라우드 하고 싶어요
H3 2011 파이썬으로 클라우드 하고 싶어요
왜 이런 일이 발생했을까요?
길
때문입니다.
GIL !
(Global Interpreter Lock)
인터프리터도 자원을 보호해야 합니다.

   쓰레드     쓰레드   쓰레드   쓰레드
    #1      #2    #3    #4




         PYTHON VM
Coarse-
Grained
Lock
Coarse-Grained Lock

쓰레드     쓰레드   쓰레드   쓰레드
 #1      #2    #3    #4




      PYTHON VM
Fine-
Grained
Lock
Fine-Grained Lock

쓰레드     쓰레드   쓰레드   쓰레드
 #1      #2    #3    #4




      PYTHON VM
One Big Lock =
                   Global Interpreter Lock




                   파이썬의 선택
guido van rossum
Global Interpreter Lock

쓰레드     쓰레드   쓰레드   쓰레드
 #1      #2    #3    #4




      PYTHON VM
우리가 바란 것
    일해요




   나도 일해요



   맨날 일해요
GIL때문에 일어난 일
자물쇠는 하나뿐 한 CPU만 일(계산)한다!

      계산         놀아요



      놀아요   계산   놀아요   계산



       놀아요       계산    놀아요
왜 이렇게 만들었을까?

    왜 그러셨어요…
GIL을 도입하면
인터프리터의 구현이 쉬워집니다.

Garbage Collector 만들기도 좋습니다.

C/C++ 확장 모듈 만들기를 쉽게 해줍니다.

이 때문에 파이썬이 쉽게 퍼질 수 있었습니다.
GIL을 도입하던 시기는
1990년대, 개인용 멀티코어는 한참 남은 이야기

CPU는 한 개 뿐, 딴 언어도 시분할(Time-Sharing)

특별히 손해 볼 것이 없었음

그렇지만 멀티코어 시대에 타박을 듣고 있어요!
파이썬 쓰레드는
천하 쓸모없나요?
CPU                            READ/WRITE



프로그램이 I/O를 많이쓰면 Python 쓰레드도 좋다!

  C
  P     READ/WRITE
  U
                                     우리가 하는
                                     일반 프로그래밍은
                                     대부분 I/O bound!!
  놀         C
  아         P   READ/WRITE
  요         U
                                     이득 봅니다~!
                C
      놀아요       P   READ/WRITE
                U
그럼 계산이 많은 쓰레드는?
   방법이 없나요?
쓰레드 대신 프로세스를 만들어주는 라이브러리




Multiprocessing module
     http://docs.python.org/library/multiprocessing.html
이가 없으면 잇몸으로!
쓰레드가 부실하면 프로세스로!
프로세스
    쓰레드     놀아요    쓰레드


    놀아요     쓰레드    놀아요




multiprocessing 모듈은
쓰레드 대신 프로세스를 띄워줍니다.
    프로세스
           일합니다.

    프로세스
           일합니다.
from multiprocessing import Process, Queue
def do_work(start, end, result):
    sum = 0
    for i in range(start, end):
        sum += i
    result.put(sum)
    return
if __name__ == "__main__":
    START, END = 0, 20000000
    result = Queue()
    pr1 = Process(target=do_work, args=(START, END/2, result))
    pr2 = Process(target=do_work, args=(END/2, END, result))
    pr1.start()
    pr2.start()
    pr1.join()
    pr2.join()
    result.put('STOP')
    sum = 0
    while True:
        tmp = result.get()
        if tmp == 'STOP': break
        else: sum += tmp
    print "Result : ", sum
쓰레드 2개 프로세스 2개
$ time python 2thread.py      $ time python 2process.py
Result : 199999990000000      Result : 199999990000000


real 0m4.225s                 real 0m1.880s



                                          성공!
                       수행시간(sec)
                     4.2

                                 1.8



                   2 thread   2 process
Multiprocessing 은
     쓰레드 쓰듯 프로세스를 쓸 수 있습니다.
th1 = Thread(target=do_work, args=(START, END, result))
th1.start()
th1.join()



pr1 = Process(target=do_work, args=(START, END, result))
pr1.start()
pr1.join()
Multiprocessing 은
         동기화 도구들도 모두 지원합니다.
threading.Condition   multiprocessing.Condition
threading.Event       multiprocessing.Event
threading.Lock        multiprocessing.Lock
threading.RLock       multiprocessing.RLock
threading.Semaphore   multiprocessing.Semaphore


    코드 수정 없이 이름만 바꾸어줘도 동작합니다.
파이썬에서
멀티코어!
잘 쓸 수 있습니다.
여러 대를 써보자!
쓰레드가 부실해서 프로세스 쓰다니

     꼼수 같아요
아닙니다!
대량 분산엔 원래 프로세스가 답
쓰레드

              쓰레드




어차피 쓰레드는 한 컴퓨터 안에 갇힙니다.
머신을 넘어선 대량 분산  결국 프로세스가 답

               프로세스

               프로세스


               프로세스



               프로세스

               프로세스
프로세스 쓰레드
세상만사 돌고돈다.
프로세스를 여러 대에
   쉽게 뿌려주는 방법은?
프로세스를 여러머신에 뿌리기 위한 라이브러리




Parallel Python
     http://www.parallelpython.com/
Parallel Python의 특징은
           홈페이지가 멋이 없음


           그러나 아주 쓰기 쉬움
“192.168.1.2”


import pp
ppservers=(“*”)
job_server =
pp.Server(ppservers=ppservers)


                                     “192.168.1.3”      “192.168.1.4”
                                     $ ppserver.py -a   $ ppserver.py -a
f1 = job_server.submit(func, args)
f2 = job_server.submit(func, args)



result1 = f1()
result2 = f2()
0~160000000 더하기

         수행시간(sec)
 9.3


            5.1
                      3.5




1 node     2 node    3 node
Parallel Python의 장점은

싱글 머신의 멀티코어 활용에도 쓸 수 있다.

Worker머신 자동 찾기 기능도 있다.

일을 callback형태로 시킬 수도 있다.
파이썬에서
여러 머신!
쉽게 쓸 수 있습니다.
클라우드를 써보자!
이전부터
Hadoop, MapReduce
이런 것들이 유명하던데
그건 못 쓰나요?
어렵지 않아요~~
나누기와 모으기로 이루어진 분산처리 방법론




  MapReduce
    http://en.wikipedia.org/wiki/MapReduce
OSDI 2004년 발표
MapReduce의 이해
- 나는 반장이다-
선생님 말씀
“반장. 이 책에 각 단어들이
  몇 번씩 나왔는지 세어줄래?”
헐…
애들을 풀어 일을 나눠 시킵니다.
                                map




KTH 1   많이 1    KTH 1   사장님 1    월급 1
멋있다 1   지원 1    많이 1             많이 1
        하세요 1   멋있다 1            지원 1
몇 명이 결과를 모아 계산합니다.
                                           reduce

   KTH 1       많이 1        KTH 1       사장님 1    월급 1
   멋있다 1       지원 1        많이 1                 많이 1
               하세요 1       멋있다 1                지원 1




나는 A~Z를 모을께~           난 ㄱ~ㅁ                    난 ㅅ~끝까지



               KTH 2           많이 3     사장님 1
                               멋있다 2    월급 1 지원 2
                                        하세요 1
MapReduce
      큰 작업을
   잘게 나누기(map)
  종류별로 모으기(reduce)
로 처리하는 방식을 말합니다.
어째서 MapReduce는
큰 인기를 끌었는가?
구글님이 쓰신다는 위엄?
이유는 Hadoop!!
Hadoop이전의 분산처리

고민해야 하는 것
  일을 어떻게 분배해야 하는가?
  프로그램을 어떻게 원격에 전송하나?
  나눈 일의 스케쥴링은 어쩌지?
  돌다가 실패한 작업은 어떻게 하지?
  또~ 또~ @.@
Hadoop이후의 분산처리

고민해야 하는 것
  Map을 어떻게 짤까?
  Reduce를 어떻게 짤까?
분산처리에 대한 기술장벽을 낮추었습니다.




Hadoop이전 필요했던 개발자   Hadoop이후
구텐베르크 할아버지(1398~1468)         금속 활판 인쇄술
                              지식의 대중 보급이 시작
                              (물론 우리도 직지심경있음)


Hadoop이후 수많은 start-up과 기존 업체가 분산처리를 할 수 있게 됨
              분산 병렬처리의 대중 보급
하지만 Hadoop은 JAVA기반
                다른 언어는 어쩌나요?


  HadoopStreaming
   STDIN/STDOUT을 이용한 데이터 스트리밍
   = Python, Ruby등 어떤 언어로든 가능해짐
HadoopStreaming 에 집중한 업체



             미국의 맛집 사이트

             고객 로그와 평가에 기반한 추천

             맛있다고 해서 가면 맛있음!!(놀라워!)


             하루 로그 100GB
이 회사 사람들은 Python 매니아.

                   Hadoop도 쓰고 싶다.

                   Python도 쓰고 싶다.

                   그럼 만들지 뭐~

Siri on iphone4s
HadoopStreaming을 쉽게 쓰기 위한 Python Library




           mrJob
           https://github.com/Yelp/mrjob



                 by
반장의 단어 세기 프로그램 : mrjob을 이용한 버전


 from mrjob.job import MRJob                 문장을 나누
                                             고 (단어, 1)
 class MRWordCounter(MRJob):
     def mapper(self, key, line):            을 리턴해요
         for word in line.split():
             yield word, 1

     def reducer(self, word, occurrences):
         yield word, sum(occurrences)

 if __name__ == '__main__':                  들어온 단어
     MRWordCounter.run()                     를 세어요
디버깅을 위해서, 굳이 Hadoop을 띄우지 않고 로컬로

$ python word_count.py data.txt --runner=local --output-dir=result




  Hadoop으로 할때는 runner만 변경하면 됨
$ export HADOOP_HOME=~~~~~
$ python word_count.py data.txt --runner=hadoop --output-dir=result
회사에 머신이
충분히 없다면?
사장님 분산처리하게
컴퓨터 100대만 사주세요
결제문서가 아니라 이력서를 쓰게 될 지도 모릅니다.
사주셔도 문제
사.. 사장님께서 사주셨어
100대에 프로그램 설치해야 해
   ㅠ.ㅠ
그런 우리를 위해
아마존이 제공하는 Hadoop 호스팅 서비스




ElasticMapReduce
    http://aws.amazon.com/elasticmapreduce/
H3 2011 파이썬으로 클라우드 하고 싶어요
아마존 님이
OS에 Hadoop까지 설치해서
대령해 주십니다.



머신 안사도 됩니다.
   쓴 만큼만 돈 내면 됨
         Large Instance 기준
 7.5G 메모리, 4 EC2 Compute Units 머신
      100대를 1시간쓰는데  $ 6



우리도 클라우드 유저!
그리고 mrjob의 놀라운 기능

$ python word_count.py data.txt --runner=local --output-dir=result



$ export AWS_ACCESS_KEY_ID=~~~~
$ export AWS_SECRET_ACCESS_KEY=~~~~
$ python word_count.py data.txt --runner=emr --output-dir=s3://yongho/result


   runner만 바꾸면 아마존으로 전송되어 실행 됨!!!
H3 2011 파이썬으로 클라우드 하고 싶어요
Elastic MapReduce가
제일 분산 규모가 크니까
언제나 이걸로 하면 장땡인가요?
답: 세상일이 그렇게 쉽지 않음.
no configs found; falling back on auto-configuration
                                                                  Job completed.
using existing scratch bucket mrjob-2a2aa23a8d6b1931
                                                                  Running time was 68.0s (not counting time spent waiting for the
using s3://mrjob-2a2aa23a8d6b1931/tmp/ as our scratch dir on S3
                                                                  EC2 instances)
Uploading input to s3://mrjob-
                                                                  Fetching counters...
2a2aa23a8d6b1931/tmp/word_count.yongho.20111104.053927.13564
                                                                  counters: [{'File Systems': {'Local bytes read': 341091,
3/input/
                                                                                   'Local bytes written': 682264,
creating tmp directory


     1MB 텍스트 단어세기
                                                                                   'S3N bytes read': 170755,
/var/folders/v2/t63rb7x54f53_9mx4hmw_xqc0000gn/T/word_count.yo
                                                                                   'S3N bytes written': 70720},
ngho.20111104.053927.135643
                                                                    'Job Counters ': {'Launched map tasks': 2,
writing master bootstrap script to
                                                                                    'Launched reduce tasks': 1,
/var/folders/v2/t63rb7x54f53_9mx4hmw_xqc0000gn/T/word_count.yo
                                                                                    'Rack-local map tasks': 2},
ngho.20111104.053927.135643/b.py
                                                                    'Map-Reduce Framework': {'Combine input records': 0,
Copying non-input files into s3://mrjob-


     세팅에 5분, 실행에 1분
                                                                                          'Combine output records': 0,
2a2aa23a8d6b1931/tmp/word_count.yongho.20111104.053927.13564
                                                                                          'Map input bytes': 167508,
3/files/
                                                                                          'Map input records': 3735,
Waiting 5.0s for S3 eventual consistency
                                                                                          'Map output bytes': 279513,
Creating Elastic MapReduce job flow
                                                                                          'Map output records': 29460,
Job flow created with ID: j-3BPUCHHQ1T5PC
                                                                                          'Reduce input groups': 6017,
Job launched 32.2s ago, status STARTING: Starting instances
                                                                                          'Reduce input records': 29460,


     자잘한 작업은 세팅하다 일 다봄
Job launched 63.5s ago, status STARTING: Starting instances
                                                                                          'Reduce output records': 6017}}]
Job launched 94.4s ago, status STARTING: Starting instances
                                                                  removing tmp directory
Job launched 125.3s ago, status STARTING: Starting instances
                                                                  /var/folders/v2/t63rb7x54f53_9mx4hmw_xqc0000gn/T/word_count.yo
Job launched 156.4s ago, status STARTING: Starting instances
                                                                  ngho.20111104.053927.135643
Job launched 187.2s ago, status STARTING: Starting instances
                                                                  Removing all files in s3://mrjob-
Job launched 218.1s ago, status BOOTSTRAPPING: Running
                                                                  2a2aa23a8d6b1931/tmp/word_count.yongho.20111104.053927.13564
bootstrap actions
                                                                  3/
Job launched 249.1s ago, status BOOTSTRAPPING: Running
                                                                  Removing all files in s3://mrjob-2a2aa23a8d6b1931/tmp/logs/j-
bootstrap actions


     큼직한 일, 오래걸리는 일에 쓰자
                                                                  3BPUCHHQ1T5PC/
Job launched 280.0s ago, status RUNNING: Running step
                                                                  Terminating job flow: j-3BPUCHHQ1T5PC
(word_count.yongho.20111104.053927.135643: Step 1 of 1)
Job launched 310.9s ago, status RUNNING: Running step
(word_count.yongho.20111104.053927.135643: Step 1 of 1)
Job launched 342.2s ago, status RUNNING: Running step
(word_count.yongho.20111104.053927.135643: Step 1 of 1)
Waiting 5.0s for S3 eventual consistency
REVIEW
Multiprocessing module
                             MultiCore
Parallel Python
MapReduce                Many Machines

mrJob
ElasticMapReduce               Cloud
H3 2011 파이썬으로 클라우드 하고 싶어요
문제의 크기를 잘 산정하고
적절한 분산 규모를 택하고
적절한 방법을 선택하세요
그것이
가장 최적의
분산처리 방법입니다.
감사합니다.
클라우드연구소 / 분산기술 Lab / 하용호
    wizfromnorth@paran.com
          @yonghosee
1 of 124

Recommended

Reduce testing time by Multiprocessing in python by
Reduce testing time by Multiprocessing in pythonReduce testing time by Multiprocessing in python
Reduce testing time by Multiprocessing in pythonSangJune Ahn
780 views26 slides
자바, 미안하다! 파이썬 한국어 NLP by
자바, 미안하다! 파이썬 한국어 NLP자바, 미안하다! 파이썬 한국어 NLP
자바, 미안하다! 파이썬 한국어 NLPEunjeong (Lucy) Park
43.8K views33 slides
화성에서 온 개발자, 금성에서 온 기획자 by
화성에서 온 개발자, 금성에서 온 기획자화성에서 온 개발자, 금성에서 온 기획자
화성에서 온 개발자, 금성에서 온 기획자Yongho Ha
49K views60 slides
Writing Fast Code (KR) by
Writing Fast Code (KR)Writing Fast Code (KR)
Writing Fast Code (KR)Younggun Kim
2.2K views92 slides
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보 by
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보Young Hoo Kim
2.1K views32 slides
파이썬과 커뮤니티와 한국어 오픈데이터 by
파이썬과 커뮤니티와 한국어 오픈데이터파이썬과 커뮤니티와 한국어 오픈데이터
파이썬과 커뮤니티와 한국어 오픈데이터Eunjeong (Lucy) Park
995 views59 slides

More Related Content

What's hot

파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영) by
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)Tae Young Lee
22.9K views126 slides
파이선 실전공략-1 by
파이선 실전공략-1파이선 실전공략-1
파이선 실전공략-1Nomota Hiongun KIM
6.6K views31 slides
GopherCon Korea 2015 - Python 개발자를 위한 Go (이경찬) by
GopherCon Korea 2015 - Python 개발자를 위한 Go (이경찬)GopherCon Korea 2015 - Python 개발자를 위한 Go (이경찬)
GopherCon Korea 2015 - Python 개발자를 위한 Go (이경찬)Kyoungchan Lee
71.1K views46 slides
모두의 JIT 컴파일러 by
모두의 JIT 컴파일러모두의 JIT 컴파일러
모두의 JIT 컴파일러우경 성
2.4K views39 slides
니름: 쉬운 SOA 단위 테스트 by
니름: 쉬운 SOA 단위 테스트니름: 쉬운 SOA 단위 테스트
니름: 쉬운 SOA 단위 테스트효준 강
1.4K views42 slides
20150306 파이썬기초 IPython을이용한프로그래밍_이태영 by
20150306 파이썬기초 IPython을이용한프로그래밍_이태영20150306 파이썬기초 IPython을이용한프로그래밍_이태영
20150306 파이썬기초 IPython을이용한프로그래밍_이태영Tae Young Lee
30.3K views28 slides

What's hot(19)

파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영) by Tae Young Lee
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
Tae Young Lee22.9K views
GopherCon Korea 2015 - Python 개발자를 위한 Go (이경찬) by Kyoungchan Lee
GopherCon Korea 2015 - Python 개발자를 위한 Go (이경찬)GopherCon Korea 2015 - Python 개발자를 위한 Go (이경찬)
GopherCon Korea 2015 - Python 개발자를 위한 Go (이경찬)
Kyoungchan Lee71.1K views
모두의 JIT 컴파일러 by 우경 성
모두의 JIT 컴파일러모두의 JIT 컴파일러
모두의 JIT 컴파일러
우경 성2.4K views
니름: 쉬운 SOA 단위 테스트 by 효준 강
니름: 쉬운 SOA 단위 테스트니름: 쉬운 SOA 단위 테스트
니름: 쉬운 SOA 단위 테스트
효준 강1.4K views
20150306 파이썬기초 IPython을이용한프로그래밍_이태영 by Tae Young Lee
20150306 파이썬기초 IPython을이용한프로그래밍_이태영20150306 파이썬기초 IPython을이용한프로그래밍_이태영
20150306 파이썬기초 IPython을이용한프로그래밍_이태영
Tae Young Lee30.3K views
Introduction to Parallel Programming by UNIST
Introduction to Parallel ProgrammingIntroduction to Parallel Programming
Introduction to Parallel Programming
UNIST2.1K views
문과생 대상 파이썬을 활용한 데이터 분석 강의 by Kwangyoun Jung
문과생 대상 파이썬을 활용한 데이터 분석 강의문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의
Kwangyoun Jung13.6K views
고급시스템프로그래밍 by Seungbeom Shim
고급시스템프로그래밍고급시스템프로그래밍
고급시스템프로그래밍
Seungbeom Shim278 views
Python 생태계의 이해 by 용 최
Python 생태계의 이해Python 생태계의 이해
Python 생태계의 이해
용 최4.6K views
Tensorflow service & Machine Learning by JEEHYUN PAIK
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine Learning
JEEHYUN PAIK3.1K views
2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영 by Tae Young Lee
2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영
2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영
Tae Young Lee18.9K views
알고리즘 시각화 라이브러리 ipytracer 개발기 by Han Lee
알고리즘 시각화 라이브러리 ipytracer 개발기알고리즘 시각화 라이브러리 ipytracer 개발기
알고리즘 시각화 라이브러리 ipytracer 개발기
Han Lee4.6K views
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기 by Ki-Hwan Kim
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
Ki-Hwan Kim7.6K views
Profiling - 실시간 대화식 프로파일러 by Heungsub Lee
Profiling - 실시간 대화식 프로파일러Profiling - 실시간 대화식 프로파일러
Profiling - 실시간 대화식 프로파일러
Heungsub Lee9.7K views
알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터 by YunWon Jeong
알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터
알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터
YunWon Jeong59.7K views
1.Introduction to Python and TensorFlow by Haesun Park
1.Introduction to Python and TensorFlow1.Introduction to Python and TensorFlow
1.Introduction to Python and TensorFlow
Haesun Park2.6K views

Viewers also liked

H3 2011 모바일에서의 Location API 완전정복 by
H3 2011 모바일에서의 Location API 완전정복H3 2011 모바일에서의 Location API 완전정복
H3 2011 모바일에서의 Location API 완전정복KTH
2.6K views58 slides
Python programming for Bioinformatics by
Python programming for BioinformaticsPython programming for Bioinformatics
Python programming for BioinformaticsHyungyong Kim
3.3K views150 slides
Python Programming: Data Structure by
Python Programming: Data StructurePython Programming: Data Structure
Python Programming: Data StructureChan Shik Lim
337 views49 slides
Python Programming: Class and Object Oriented Programming by
Python Programming: Class and Object Oriented ProgrammingPython Programming: Class and Object Oriented Programming
Python Programming: Class and Object Oriented ProgrammingChan Shik Lim
519 views69 slides
Data analysis with Tajo by
Data analysis with TajoData analysis with Tajo
Data analysis with TajoGruter
4.5K views29 slides
『고성능 파이썬』 - 맛보기 by
『고성능 파이썬』 - 맛보기『고성능 파이썬』 - 맛보기
『고성능 파이썬』 - 맛보기복연 이
1.4K views106 slides

Viewers also liked(20)

H3 2011 모바일에서의 Location API 완전정복 by KTH
H3 2011 모바일에서의 Location API 완전정복H3 2011 모바일에서의 Location API 완전정복
H3 2011 모바일에서의 Location API 완전정복
KTH2.6K views
Python programming for Bioinformatics by Hyungyong Kim
Python programming for BioinformaticsPython programming for Bioinformatics
Python programming for Bioinformatics
Hyungyong Kim3.3K views
Python Programming: Data Structure by Chan Shik Lim
Python Programming: Data StructurePython Programming: Data Structure
Python Programming: Data Structure
Chan Shik Lim337 views
Python Programming: Class and Object Oriented Programming by Chan Shik Lim
Python Programming: Class and Object Oriented ProgrammingPython Programming: Class and Object Oriented Programming
Python Programming: Class and Object Oriented Programming
Chan Shik Lim519 views
Data analysis with Tajo by Gruter
Data analysis with TajoData analysis with Tajo
Data analysis with Tajo
Gruter4.5K views
『고성능 파이썬』 - 맛보기 by 복연 이
『고성능 파이썬』 - 맛보기『고성능 파이썬』 - 맛보기
『고성능 파이썬』 - 맛보기
복연 이1.4K views
Python Programming: Function by Chan Shik Lim
Python Programming: FunctionPython Programming: Function
Python Programming: Function
Chan Shik Lim599 views
꿈꾸는 데이터 디자이너 1기를 끝내며 by neuroassociates
꿈꾸는 데이터 디자이너 1기를 끝내며꿈꾸는 데이터 디자이너 1기를 끝내며
꿈꾸는 데이터 디자이너 1기를 끝내며
neuroassociates3.6K views
소외된 90%를 위한 비즈니스 Inclusive Business for the Bottom of the Pyramid (BOP) by Jeongtae Kim
소외된 90%를 위한 비즈니스 Inclusive Business for the Bottom of the Pyramid (BOP)소외된 90%를 위한 비즈니스 Inclusive Business for the Bottom of the Pyramid (BOP)
소외된 90%를 위한 비즈니스 Inclusive Business for the Bottom of the Pyramid (BOP)
Jeongtae Kim5.6K views
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호 by KTH, 케이티하이텔
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
Big Data Myth 1. 우리 회사엔 빅데이터가 없어요 by 김 한도
Big Data Myth 1. 우리 회사엔 빅데이터가 없어요Big Data Myth 1. 우리 회사엔 빅데이터가 없어요
Big Data Myth 1. 우리 회사엔 빅데이터가 없어요
김 한도9.1K views
조직 민첩성, 신사업 성공의 핵심역량 by combi95
조직 민첩성, 신사업 성공의 핵심역량조직 민첩성, 신사업 성공의 핵심역량
조직 민첩성, 신사업 성공의 핵심역량
combi952.2K views
사업타당성 분석(Cm교육 김선국) by JiWoon Yi
사업타당성 분석(Cm교육 김선국)사업타당성 분석(Cm교육 김선국)
사업타당성 분석(Cm교육 김선국)
JiWoon Yi3.2K views
Discover Enterprise Security Features in Hortonworks Data Platform 2.1: Apach... by Hortonworks
Discover Enterprise Security Features in Hortonworks Data Platform 2.1: Apach...Discover Enterprise Security Features in Hortonworks Data Platform 2.1: Apach...
Discover Enterprise Security Features in Hortonworks Data Platform 2.1: Apach...
Hortonworks4.7K views
사업타당성 분석과 비즈니스모델 수립 by WASIS
사업타당성 분석과 비즈니스모델 수립사업타당성 분석과 비즈니스모델 수립
사업타당성 분석과 비즈니스모델 수립
WASIS6.1K views
세바시 15분 데이터로 세상이 다시 한번 바뀝니다 @하용호 SK Telecom by cbs15min
세바시 15분 데이터로 세상이 다시 한번 바뀝니다 @하용호 SK Telecom세바시 15분 데이터로 세상이 다시 한번 바뀝니다 @하용호 SK Telecom
세바시 15분 데이터로 세상이 다시 한번 바뀝니다 @하용호 SK Telecom
cbs15min22.3K views
Pycon2016 파이썬으로똑똑한주식투자 김대현 by Daehyun (Damon) Kim
Pycon2016 파이썬으로똑똑한주식투자 김대현Pycon2016 파이썬으로똑똑한주식투자 김대현
Pycon2016 파이썬으로똑똑한주식투자 김대현
Daehyun (Damon) Kim8.4K views
클라우드란 (기획자대상) by Minwoo Park
클라우드란 (기획자대상)클라우드란 (기획자대상)
클라우드란 (기획자대상)
Minwoo Park6.1K views

Similar to H3 2011 파이썬으로 클라우드 하고 싶어요

병렬 프로그래밍 by
병렬 프로그래밍병렬 프로그래밍
병렬 프로그래밍준혁 이
2K views71 slides
HI-ARC PS 101 by
HI-ARC PS 101HI-ARC PS 101
HI-ARC PS 101Jae-yeol Lee
140 views48 slides
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic) by
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)Dong Chan Shin
2.8K views62 slides
파이썬으로 익히는 딥러닝 by
파이썬으로 익히는 딥러닝파이썬으로 익히는 딥러닝
파이썬으로 익히는 딥러닝SK(주) C&C - 강병호
20.1K views166 slides
온라인 게임 처음부터 끝까지 동적언어로 만들기 by
온라인 게임 처음부터 끝까지 동적언어로 만들기온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기Seungjae Lee
7.7K views62 slides
PHP로 Slack Bot 만들기 by
PHP로 Slack Bot 만들기PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기Changwan Jun
6K views62 slides

Similar to H3 2011 파이썬으로 클라우드 하고 싶어요(20)

병렬 프로그래밍 by 준혁 이
병렬 프로그래밍병렬 프로그래밍
병렬 프로그래밍
준혁 이2K views
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic) by Dong Chan Shin
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
Dong Chan Shin2.8K views
온라인 게임 처음부터 끝까지 동적언어로 만들기 by Seungjae Lee
온라인 게임 처음부터 끝까지 동적언어로 만들기온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기
Seungjae Lee7.7K views
PHP로 Slack Bot 만들기 by Changwan Jun
PHP로 Slack Bot 만들기PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기
Changwan Jun6K views
하둡 좋은약이지만 만병통치약은 아니다 by 민철 정민철
하둡 좋은약이지만 만병통치약은 아니다하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다
민철 정민철4.9K views
Python 01 by Dasom Im
Python 01Python 01
Python 01
Dasom Im228 views
랩탑으로 tensorflow 도전하기 - tutorial by Lee Seungeun
랩탑으로 tensorflow 도전하기 - tutorial랩탑으로 tensorflow 도전하기 - tutorial
랩탑으로 tensorflow 도전하기 - tutorial
Lee Seungeun10.8K views
이산치 과제7 by mil23
이산치 과제7이산치 과제7
이산치 과제7
mil23495 views
2012 Dm A0 07 Pdf by kd19h
2012 Dm A0 07 Pdf2012 Dm A0 07 Pdf
2012 Dm A0 07 Pdf
kd19h403 views
2012 Dm A0 07 Pdf by jinwookhong
2012 Dm A0 07 Pdf2012 Dm A0 07 Pdf
2012 Dm A0 07 Pdf
jinwookhong133 views
Go로 새 프로젝트 시작하기 by Joonsung Lee
Go로 새 프로젝트 시작하기Go로 새 프로젝트 시작하기
Go로 새 프로젝트 시작하기
Joonsung Lee79.6K views
병렬 프로그래밍 패러다임 by codenavy
병렬 프로그래밍 패러다임병렬 프로그래밍 패러다임
병렬 프로그래밍 패러다임
codenavy4.8K views
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅 by Youngmin Koo
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
Youngmin Koo2.1K views
[A1]루비는 패셔니스타 by NAVER D2
[A1]루비는 패셔니스타[A1]루비는 패셔니스타
[A1]루비는 패셔니스타
NAVER D21.6K views

More from KTH

H3 2011 하이브리드 앱 아키텍쳐 및 개발방법 by
H3 2011 하이브리드 앱 아키텍쳐 및 개발방법H3 2011 하이브리드 앱 아키텍쳐 및 개발방법
H3 2011 하이브리드 앱 아키텍쳐 및 개발방법KTH
3.5K views64 slides
H3 2011 iOS5 새로운 기능들의 프로젝트 적용 사례 by
H3 2011 iOS5 새로운 기능들의 프로젝트 적용 사례H3 2011 iOS5 새로운 기능들의 프로젝트 적용 사례
H3 2011 iOS5 새로운 기능들의 프로젝트 적용 사례KTH
1.1K views39 slides
H3 2011 하이브리드 클라우드 활용방안 및 도입전략 by
H3 2011 하이브리드 클라우드 활용방안 및 도입전략H3 2011 하이브리드 클라우드 활용방안 및 도입전략
H3 2011 하이브리드 클라우드 활용방안 및 도입전략KTH
2.7K views37 slides
H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략 by
H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략
H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략KTH
1.4K views48 slides
H3 2011 흰머리 성성하게 개발하기 위해 by
H3 2011 흰머리 성성하게 개발하기 위해H3 2011 흰머리 성성하게 개발하기 위해
H3 2011 흰머리 성성하게 개발하기 위해KTH
1.3K views75 slides
H3 2011 UX에 대한 7가지 오해와 진실 by
H3 2011 UX에 대한 7가지 오해와 진실H3 2011 UX에 대한 7가지 오해와 진실
H3 2011 UX에 대한 7가지 오해와 진실KTH
1.3K views57 slides

More from KTH(14)

H3 2011 하이브리드 앱 아키텍쳐 및 개발방법 by KTH
H3 2011 하이브리드 앱 아키텍쳐 및 개발방법H3 2011 하이브리드 앱 아키텍쳐 및 개발방법
H3 2011 하이브리드 앱 아키텍쳐 및 개발방법
KTH3.5K views
H3 2011 iOS5 새로운 기능들의 프로젝트 적용 사례 by KTH
H3 2011 iOS5 새로운 기능들의 프로젝트 적용 사례H3 2011 iOS5 새로운 기능들의 프로젝트 적용 사례
H3 2011 iOS5 새로운 기능들의 프로젝트 적용 사례
KTH1.1K views
H3 2011 하이브리드 클라우드 활용방안 및 도입전략 by KTH
H3 2011 하이브리드 클라우드 활용방안 및 도입전략H3 2011 하이브리드 클라우드 활용방안 및 도입전략
H3 2011 하이브리드 클라우드 활용방안 및 도입전략
KTH2.7K views
H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략 by KTH
H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략
H3 2011 안드로이드의 Seamless UX를 위한 Activity 활용전략
KTH1.4K views
H3 2011 흰머리 성성하게 개발하기 위해 by KTH
H3 2011 흰머리 성성하게 개발하기 위해H3 2011 흰머리 성성하게 개발하기 위해
H3 2011 흰머리 성성하게 개발하기 위해
KTH1.3K views
H3 2011 UX에 대한 7가지 오해와 진실 by KTH
H3 2011 UX에 대한 7가지 오해와 진실H3 2011 UX에 대한 7가지 오해와 진실
H3 2011 UX에 대한 7가지 오해와 진실
KTH1.3K views
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택 by KTH
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택
KTH3.4K views
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략 by KTH
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략
KTH12.1K views
H3 2011 Google을 통해 살펴보는 분산 파일 시스템의 현재와 미래 by KTH
H3 2011 Google을 통해 살펴보는 분산 파일 시스템의 현재와 미래H3 2011 Google을 통해 살펴보는 분산 파일 시스템의 현재와 미래
H3 2011 Google을 통해 살펴보는 분산 파일 시스템의 현재와 미래
KTH2.1K views
H3 2011 HTML/CSS로 만들어진 디테일이 살아있는 앱 제작의 노하우를 모두 공개합니다! by KTH
H3 2011 HTML/CSS로 만들어진 디테일이 살아있는 앱 제작의 노하우를 모두 공개합니다!H3 2011 HTML/CSS로 만들어진 디테일이 살아있는 앱 제작의 노하우를 모두 공개합니다!
H3 2011 HTML/CSS로 만들어진 디테일이 살아있는 앱 제작의 노하우를 모두 공개합니다!
KTH1.4K views
H3 2011 모바일 시대의 Search Engine Optimization 전략 by KTH
H3 2011 모바일 시대의 Search Engine Optimization 전략H3 2011 모바일 시대의 Search Engine Optimization 전략
H3 2011 모바일 시대의 Search Engine Optimization 전략
KTH3.6K views
H3 2011 반응형 웹디자인, 진짜 할 만 한가? by KTH
H3 2011 반응형 웹디자인, 진짜 할 만 한가?H3 2011 반응형 웹디자인, 진짜 할 만 한가?
H3 2011 반응형 웹디자인, 진짜 할 만 한가?
KTH7.7K views
H3 2011 앱 개발에 날개를 달자, 모바일 클라우드가 꿈꾸는 미래 by KTH
H3 2011 앱 개발에 날개를 달자, 모바일 클라우드가 꿈꾸는 미래H3 2011 앱 개발에 날개를 달자, 모바일 클라우드가 꿈꾸는 미래
H3 2011 앱 개발에 날개를 달자, 모바일 클라우드가 꿈꾸는 미래
KTH1.3K views
H3 2011 하이브리드 앱의 미래, 앱스프레소 1.0 by KTH
H3 2011 하이브리드 앱의 미래, 앱스프레소 1.0H3 2011 하이브리드 앱의 미래, 앱스프레소 1.0
H3 2011 하이브리드 앱의 미래, 앱스프레소 1.0
KTH1.2K views

H3 2011 파이썬으로 클라우드 하고 싶어요