반응형
[PYCON KOREA 2017] Python 입문자의 Data Science(Kaggle) 도전

[PYCON KOREA 2017] Python 입문자의 Data Science(Kaggle) 도전

  1. 1. Python 입문자의 Data Science(Kaggle) 도전 박미정
  2. 2. 나는 누구에요?
  3. 3. 나는 누구에요? 아이오라는 스타트업에서 스위처를 만들고 개발팀을 리드하고 있어요
  4. 4. 누구를 위한 발표인가? 저처럼, Python과 데이터 분석을 이제 막 시도하시려는 분들을 위한 발표에요
  5. 5. 발표의 목적은? 발표를 듣고 집으로 돌아가셔서, 데이터 분석이 뭔지 아직도 감은 잘 안오지만 튜토리얼 문제를 시도하면서 공부를 시작하도록 돕는 것
  6. 6. 발표를 간단히 요약하면 제가 얼마나 Python과 데이터 분석 초보인지 밝힘으로써 용기를 드리고, 데이터 분석 공부를 시작하게 된 계기와, 데이터 분석 공부를 위한 기본적인 환경, 실제로 Python을 이용하여 Kaggle 문제에 접근한 사례를 공유하게 되요
  7. 7. 나는 왜 Python과 데이터 분석을? Last 30 Days by WakaTime
  8. 8. 나는 왜 Python과 데이터 분석을? 지난 한 달 동안 주로 사용한 언어에 Python은 보이지 않아요
  9. 9. 나는 왜 Python과 데이터 분석을? 집에는 파이썬, 머신러닝, 딥러닝 책들이 먼지와 함께 쌓여있어요
  10. 10. 나는 왜 Python과 데이터 분석을? 제가 파이콘에서 스피커로 자격이 있는지 모르겠어요
  11. 11. 나는 왜 Python과 데이터 분석을? 하지만, Back to the Basic 용기를 내어 보았어요
  12. 12. 나는 왜 Python과 데이터 분석을? 역시 저는 몰랐지만, 데이터 분석에는 여러 유형이 있어요
  13. 13. 나는 왜 Python과 데이터 분석을? 주어진 데이터를 요약/집계해서 결과를 내는 Descriptive analysis 를 이미 진행하고 있었어요
  14. 14. 나는 왜 Python과 데이터 분석을? 하지만 저에게 데이터 분석이라고 하면 가장 먼저 떠오르는 유형은 Predictive analysis 였어요
  15. 15. 나는 왜 Python과 데이터 분석을? 그 외에도 Exploratory, Inferential, Casual, Mechanistic analysis 등 많은 분석 유형이 존재해요
  16. 16. 나는 왜 Python과 데이터 분석을? 사실 모든 유형에 대해 자세히 모르겠어요
  17. 17. 나는 왜 Python과 데이터 분석을? 그저 공부를 시작하기 위해 필요한 목적과 동기부여를 위해 Predictive analysis 를 선택했어요
  18. 18. 나는 왜 Python과 데이터 분석을? 데이터를 통한 정확한 예측이 아이오에는 필요하거든요
  19. 19. Predictive analysis? 머신러닝, 의사 결정 트리를 이용해서 발생하지 않은 일을 예측하는 거에요
  20. 20. 머신러닝? 기존 데이터를 학습시킨 후, 새로운 데이터를 예측하는 목적이에요
  21. 21. 머신러닝? 머신러닝에서 지도 학습과 비지도 학습으로 구분지을 수 있어요
  22. 22. 머신러닝? 지도 학습에는 분류와 회귀 방법이 존재하고,
  23. 23. 머신러닝? 비지도 학습에는 군집 방법이 존재해요
  24. 24. 머신러닝? 저는 지도 학습인 분류와 회귀에 대한 공부 경험을 공유하려 해요
  25. 25. 어떻게 시작하게 되었어요? 혹시, 이 분을 아시나요?
  26. 26. 어떻게 시작하게 되었어요? 꿀 수업 듣으러 가기
  27. 27. 기본적인 환경은? Kaggle
  28. 28. 기본적인 환경은? Kaggle 데이터 과학과 머신러닝을 실습하고 경쟁할 수 있는 Kaggle을 이용했어요 Kaggle 방문하기
  29. 29. 기본적인 환경은? Kaggle training set과 test set이 주어져요
  30. 30. 기본적인 환경은? Kaggle training set을 통해 최적화된 모델을 통해서 test set의 값을 분류 및 예측하고 제출할 수 있어요
  31. 31. 기본적인 환경은? Kaggle 주의할 점! 하루에 제출할 수 있는 기회는 제한되어 있어요
  32. 32. 기본적인 환경은? Python 데이터 분석을 돕는 Python 도구들을 사용했어요
  33. 33. 기본적인 환경은? Python 일, 수학적 기능을 제공하는 NumPy
  34. 34. 기본적인 환경은? Python 이, 데이터 처리 및 가공을 위한 Pandas
  35. 35. 기본적인 환경은? Python 삼, 머신러닝 알고리즘 적용을 위한 Scikit-Learn
  36. 36. 데이터 분석 프로세스는요? 그렇다면, 데이터 분석의 프로세스는 어떻게 될까요?
  37. 37. 데이터 분석 프로세스는요? 일, 문제를 정의해요 내가 원하는 결과가 무엇이고, 어떤 종류의 문제에 속하는지 파악해요
  38. 38. 데이터 분석 프로세스는요? 이, 데이터를 확보해서 준비하고 전처리를 해요
  39. 39. 데이터 분석 프로세스는요?
  40. 40. 데이터 분석 프로세스는요?
  41. 41. 데이터 분석 프로세스는요? 삼, 데이터를 탐색하고 피처를 선택해요
  42. 42. 데이터 분석 프로세스는요? 사, 모델을 최적화하고 검증해요
  43. 43. 데이터 분석을 돕는 Python 도구들? Pandas는 데이터 처리와 가공을 돕는 도구에요
  44. 44. 이렇게 데이터 파일도 쉽게 불러올 수 있구요 데이터 분석을 돕는 Python 도구들?
  45. 45. train 데이터와 test 데이터를 쉽게 연결할 수 도 있어요 데이터 분석을 돕는 Python 도구들?
  46. 46. 데이터 분석을 돕는 Python 도구들? NumPy는 수학적 연산을 돕는 도구에요
  47. 47. 배열, 로그, 평균 등 다양한 연산을 도와줘요 데이터 분석을 돕는 Python 도구들?
  48. 48. 데이터 분석을 돕는 Python 도구들? Scikit-Learn은 머신러닝 알고리즘을 제공하는 도구에요
  49. 49. 데이터 분석을 돕는 Python 도구들? 이렇게 분류를 위한 의사 결정 트리를 사용할 수 있어요
  50. 50. 어떤 방법을 사용했어요? 앞에서 머신러닝의 분류와 회귀에 대한 공부 경험을 공유한다고 했어요
  51. 51. 어떤 방법을 사용했어요? 분류에 대한 Kaggle 문제를 접했어요
  52. 52. 어떤 방법을 사용했어요? Kaggle의 튜토리얼 문제 Titanic: Machine Learning from Disaster
  53. 53. 어떤 방법을 사용했어요? 문제 풀으러 가기!
  54. 54. 어떤 방법을 사용했어요? Python 도구를 사용해서 이렇게 코드로 분류를 시도할 수 있어요
  55. 55. Yes or No 유형의 분류를 시도할 때, DecisionTreeClassifier 어떤 방법을 사용했어요?
  56. 56. 어떤 방법을 사용했어요? 회귀에 대한 Kaggle 문제도 접했어요
  57. 57. 어떤 방법을 사용했어요? Kaggle의 문제 Bike Sharing Demand
  58. 58. 어떤 방법을 사용했어요? 문제 풀으러 가기!
  59. 59. 어떤 방법을 사용했어요? 역시, Python 도구를 사용해서 이렇게 코드로 회귀를 시도할 수 있어요
  60. 60. 특정 숫자 값을 예측할 때, DecisionTreeRegressor 어떤 방법을 사용했어요?
  61. 61. Titanic 예시 Titanic 튜토리얼 문제를 다시 확인할게요
  62. 62. Titanic 예시 문제 정의 승객들의 정보를 이용하여 살아남을지 아닐지 예측하라
  63. 63. Titanic 예시 데이터 속성 분석 train set을 다운받고, 데이터 속성을 분석해요
  64. 64. Titanic 예시 데이터 속성 분석
  65. 65. 데이터 전처리 작업을 위해, train set과 test set을 합칠게요! Titanic 예시 데이터 전처리
  66. 66. Scikit-Learn 사용을 위해 Gender 문자열 값을 인코딩 할게요! Titanic 예시 데이터 전처리
  67. 67. Scikit-Learn 빈 값 처리 오류 제거를 위해, 평균 값으로 채울게요! Titanic 예시 데이터 전처리
  68. 68. 분류(예측)의 기준이 되는 피처를 선택해요 Titanic 예시 데이터 탐색 및 피처 선택
  69. 69. 피처 선택을 기준으로 train set을 이용하여, test set을 분류(예측)해요! Titanic 예시 모델 최적화 및 검증
  70. 70. 이제 Kaggle에서 Submit을 하면 예측 점수를 확인할 수 있어요! Titanic 예시 제출
  71. 71. 전체 코드는 아래 주소에서 확인하실 수 있어요! GitHub Repository Reference Code Titanic 예시
  72. 72. 그래서 어디에 사용할거에요? 일. 지역, 시간, 키워드, 가구 크기 등의 데이터를 이용해서 타겟 정확도를 높이는 마케팅에 이용
  73. 73. 그래서 어디에 사용할거에요? 이. 온도, 습도, 조도, 거리, 행동 패턴 학습을 통한 개인 추천 서비스에 이용
  74. 74. 감사합니다 ;-) 박미정 mjpark03@gmail.com
  75. 75. Q1. 입문자가 머신러닝 알고리즘을 선택하기 위한 TIP? Scikit-Learn 에서는 적절한 알고리즘을 선택할 수 있도록 Cheat Sheet를 제공해요
  76. 76. Q1. 입문자가 머신러닝 알고리즘을 선택하기 위한 TIP? 알고리즘 선택에 어려움이 있다면, 다음 Cheat Sheet을 참고해서 시작해보세요
  77. 77. Q1. 입문자가 머신러닝 알고리즘을 선택하기 위한 TIP?
  78. 78. Q2. 과적합(Overfitting) 해결을 위한 TIP? 특정 모델이 train set에 너무 정확하게 학습된 경우, test set에 대해서는 오차가 크게 발생하게 되요
  79. 79. Q2. 과적합(Overfitting) 해결을 위한 TIP? 이 경우를 과적합(Overfitting)이라고 표현해요
  80. 80. Q2. 과적합(Overfitting) 해결을 위한 TIP? 특정한 케이스가 아닌 일반적인(general) 결과를 낼 수 있어야 해요
  81. 81. Q2. 과적합(Overfitting) 해결을 위한 TIP? 많이 사용되는 방법 중의 하나는 cross validation이 있어요
  82. 82. Q2. 과적합(Overfitting) 해결을 위한 TIP? cross validation은 train set의 일부를 train 목적으로 사용하고, 나머지를 validation 용도로 사용해요
  83. 83. Q2. 과적합(Overfitting) 해결을 위한 TIP? 그리고 train 목적과 validation 부분을 변경해가며 반복하면서 오차율을 줄여나가게 되요
  84. 84. Q2. 과적합(Overfitting) 해결을 위한 TIP? Scikit-Learn을 이용해서 쉽게 적용할 수 있어요
  85. 85. Q2. 과적합(Overfitting) 해결을 위한 TIP? from sklearn.cross_validation import cross_val_score score = cross_val_score(model, X_train, y_train, cv=20, scoring=rmsle_score).mean()


...


반응형
반응형

노가다 없는 텍스트 분석을 위한 한국어 NLP - pycon kr 2017



파이콘 2017 에서 발표할 한국어 자연어처리 문서입니다. 확률 모델이 아닌, 분석하려는 데이터 기반으로 단어 추출 / 명사 추출 / 토크나이징 / 사용자 사전 + KoNLPy 응용의 내용이 담겨 있습니다.


Soy Korean Natural Language Processing Toolkits 

customized KoNLPy - KoNLPy + 사용자사전


 

...


반응형
반응형

[PYTHON] PHP에서 Django로 갈아타기

 

 

Py con2017 ph_ptodjango from daesung7kang

 

Py con2017 ph_ptodjango

  1. 1. 강대성 daesung7.kang@gmail.com PHP에서 Django로 갈아타기 Session 공유를 통한 WebFramework간 이동
  2. 2. 소개 현재 2년차 아빠, 5년차 남편, 2년차 CTO 피플펀드컴퍼니 2015.09 ~ 현재 - CTO ( IT의 모든 일 ) 아재 과거 록앤올(김기사) 2년 - 교통정보 분석, 미래 속도 예측 금융회사 6년 - 해외선물, FX거래 시스템 통신회사 2년 - 인사 관리 시스템 게임회사 3년 - MMORPG 서버 개발 10살때부터 컴퓨터와 금융을 좋아했음.
  3. 3. 이 이야기는 서로 다른 Web Framework간 점진적으로 갈아타는 기본 지식과 성공 사례입니다.
  4. 4. 2015년 9월 저는 피플펀드컴퍼니에 1호 엔지니어로 조인했습니다.
  5. 5. 디자이너가 PM이고 외주로 만들어진 홈페이지가 있었습니다.
  6. 6. PHP
  7. 7. PHP가 나쁘지 않으나, PHP로 계속 서비스하고 싶진 않았습니다.
  8. 8. 금융을 PHP로 만들다가, 나중에 어려워 질 것 같았죠.
  9. 9. 내일 당장 오픈할지 모르는데, 어떻게 하면 PHP에서 벗어날 수 있을까?
  10. 10. PHP을 한번에 없애고 새로운 것으로 바꾸면 버그가 발생할 확률이 높으니 점진적으로 옮기기로 합니다.
  11. 11. 점진적으로 옮기기!
  12. 12. “Back to the Basic” 기본부터 다시 봅시다.
  13. 13. PHP, Django HTTP, Session, Cookie HA(High Availability)
  14. 14. PHP PHP(Hypertext Preprocessor)는 프로그래밍 언어의 일종이다. 원 래는 동적 웹 페이지를 만들기 위해 설계되었으며 이를 구현하기 위 해 PHP로 작성된 코드를 HTML 소스 문서 안에 넣으면 PHP 처리 기능이 있는 웹 서버에서 해당 코드를 인식하여 작성자가 원하는 웹 페이지를 생성한다. 근래에는 PHP 코드와 HTML을 별도 파일로 분 리하여 작성하는 경우가 일반적이며, PHP 또한 웹서버가 아닌 php-fpm(PHP FastCGI Process Manager)을 통해 실행하는 경우 가 늘어나고 있다. https://ko.wikipedia.org/wiki/PHP
  15. 15. <html>< body> 1~10까지 나오는 예제입니다. 여기는 HTML 부분입니다.<br>< ?php for( $i = 1 ; $i <= 10 ; $i++ ) { echo $i; echo “<br>”; }?> 여기도 HTML 부분입니다.<br>< /body>< /html>
  16. 16. Django 장고(Django)는 파이썬으로 작성된 오픈 소스 웹 애플리케이션 프레임워크로, 모델-뷰- 컨트롤러 패턴을 느슨하게 적용한다. 2005년 7월에 BSD 사용 허가서로 공개되었다.
 
 이 웹 애플리케이션 프레임워크는 집시 재즈 기타리스트인 장고 라인하르트의 이름을 따 명명되었다.
 
 고도의 데이터베이스 기반 웹사이트를 작성하는 데 있어서 수고를 더는 것이 장고의 주 된 목표이다. 장고는 콤포넌트의 재사용성(reusability)과 플러그인화 가능성 (pluggability), 빠른 개발 등을 강조하고 있다. 또한, "DRY(Don't repeat yourself: 중 복배제)" 원리를 따랐다. 설정 파일 일서부터 데이터 모델에까지 파이썬 언어가 구석구석 에 쓰였다. https://ko.wikipedia.org/wiki/%EC%9E%A5%EA%B3%A0_(%EC%9B%B9_%ED%94%84%EB %A0%88%EC%9E%84%EC%9B%8C%ED%81%AC)
  17. 17. HTTP
  18. 18. HTTP HyperText Transfer Protocol 해석 : HyperText(참조를 통해 한 문서에서 다른 문서로 이동할 수 있는 텍스 트)의 전송 규약 다른 프로토콜 ) SSH : Secure Shell SMTP : Simple Mail Transfer Protocol FTP : File Transfer Protocol
  19. 19. HyperText< html>< body> 이것은 하이퍼 텍스트의 예제입니다.< a href=”/example.html”>다른 예제로 이동</a>< /body>< /html>
  20. 20. HTTP 접속, 요청, 응답, 끊기 접속, 요청, 응답, 끊기 접속, 요청, 응답, 끊기 * KeepAlive도 있긴함
  21. 21. 접속 요청 GET / HTTP/1.1
 Host: www.peoplefund.co.kr
 (생략) 응답 HTTP/1.1 200 OK
 Content-Type: text/html; charset=utf-8
 (Header 생략)< html>< head> (Content 생략) 끊기 다음 접속 시작 요청 GET /example.html HTTP/1.1
 Host: www.peoplefund.co.kr
 (생략) 응답 HTTP/1.1 200 OK
 Content-Type: text/html; charset=utf-8
 (Header 생략)< html>< head> (Content 생략) 끊기
  22. 22. 첫번째 접속, 두번째 접속이 같은 웹브라우저인가?
  23. 23. 같은 브라우저임을 어떻게 증명할 것인가?
  24. 24. Session Token A session token is a unique identifier that is generated and sent from a server to a client to identify the current interaction session. The client usually stores and sends the token as an HTTP cookie and/or sends it as a parameter in GET or POST queries. https://en.wikipedia.org/wiki/Session_(computer_science)
  25. 25. 쿠키(Cookie) 쿠키(cookie)란 하이퍼 텍스트의 기록서(HTTP)의 일종으로서 인터넷 사용자가 어떠한 웹사이트를 방문할 경우 그 사이트가 사용하고 있는 서버를 통해 인터넷 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일을 일컫는다. HTTP 쿠키, 웹 쿠 키, 브라우저 쿠키라고도 한다. 이 기록 파일에 담긴 정보는 인터넷 사용자가 같 은 웹사이트를 방문할 때마다 읽히고 수시로 새로운 정보로 바뀐다. 이 수단은 넷스케이프의 프로그램 개발자였던 루 몬툴리(Lou Montulli)가 고안한 뒤로 오 늘날 많은 서버 및 웹사이트들이 브라우저의 신속성을 위해 즐겨 쓰고 있다. 쿠키는 소프트웨어가 아니다. 쿠키는 컴퓨터내에서 프로그램처럼 실행될 수 없 으며 바이러스를 옮길 수도, 악성코드를 설치할 수도 없다. 하지만 스파이웨어를 통해 유저의 브라우징 행동을 추적하는데에 사용될 수 있고, 누군가의 쿠키를 훔 쳐서 해당 사용자의 웹 계정 접근권한을 획득할 수도 있다. https://ko.wikipedia.org/wiki/HTTP_%EC%BF%A0%ED%82%A4
  26. 26. Session Token w/Cookie 서버에서 생성하여 클라이언트에 보냄, 클라이언트가 매번 서버로 보냄 ex) 5hbbad4p5jf8la3m66rn3a7ff5
  27. 27. Session Token HTTP/1.1 200 OK Set-Cookie: SESSID=5hbbad4p5jf8la3m66rn3a7ff5; path=/; GET / HTTP/1.1 Cookie: SESSID=5hbbad4p5jf8la3m66rn3a7ff5
  28. 28. 29
  29. 29. 30
  30. 30. Server/Client는 Session Token을 공유하고 Server에 Token기반으로 정보 저장
  31. 31. 여러분의 서비스는 안 죽을 수 있나요? HA(High Availability)
  32. 32. 한대가 죽어도 살아남을 수 있게. Active-Active Active-Standby
  33. 33. 웹서버는 보통 Active-Active
  34. 34. 이제 본격적인 이야기를 해보겠습니다.
  35. 35. 어떻게 점진적으로 Django로 갈아탈 수 있을까?
  36. 36. 내부 로직만 API로 만들어보자
  37. 37. HTTP DB Connection DB ConnectionRESTHTTP
  38. 38. Django에서 API를 만들고 PHP는 API를 호출
  39. 39. API 만들기 : Django REST Framework
  40. 40. uwsgi의 설정 # the socket (use the full path to be safe socket = /tmp/inapi.sock
  41. 41. API를 위한 Nginx설정 upstream myapi { server unix:///tmp/api.sock; } server { listen 7001; access_log /var/log/nginx/access-api.log; location / { uwsgi_pass myapi; include /etc/nginx/uwsgi_params; } } 방화벽으로 조정하거 나, localhost만 listen
  42. 42. PHP $curl = new Curl(); $curl->setHeader("Content-Type", “application/json"); $this->result = $curl->get(“127.0.0.1:7001” . “/niceapiexample”); // Do Something with $this->result
  43. 43. PHP에서 DB에 접근하지 않을 수 있고, Django를 통해 금융 서비스 개발
  44. 44. 이제 Front-End도 Django로 만들어볼까?
  45. 45. #1. 동일한 HTTP연결인데, URL별로 PHP or Django 서비스 #2. Access Log는 같이 남길까 따로 남길까?
  46. 46. #1. URL에 따라 Django or PHP 로 서비스 https://example.com/django-pages/* https://example.com/php-pages/*
  47. 47. Web Server HTTP
  48. 48. NGINX 로 Routing 필요. upstream django_peoplefund { server unix:///tmp/peoplefund-web.sock; } server { listen 80; location /django-pages/ { uwsgi_pass django_peoplefund; include /etc/nginx/uwsgi_params; access_log /var/log/nginx/access-django.log; } location /php-pages/ { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include /etc/nginx/fastcgi_params; access_log /var/log/nginx/access-php.log; } }
  49. 49. PHP에서 로그인 했는데, Django에서 회원 정보를 어떻게 인식해야하는지?
  50. 50. Web Server HTTP PHP에서 생성된 Session Token, Client는 매번 Session Token을 보냄, Django에도 같은 Session Token으로 요청됨
  51. 51. Django에서 PHP에서 생성된 Session만 읽어오면 되겠다
  52. 52. PHP는 Session을 파일 기반으로 처리 Local File에 저장 /var/lib/php5/sess_[sessionkey]
  53. 53. PHP설정을 다음과 같이 바꾸면 Session을 읽기 쉽게 저장됨 /var/lib/php5/sess_5hbbad4p5jf8la3m66rn3a7ff5 파일 내용 a:1:{s:7:"user_id";i:12345678}
  54. 54. Session Token : 5hbbad4p5jf8la3m66rn3a7ff5 Session File : /var/lib/php5/sess_5hbbad4p5jf8la3m66rn3a7ff5 File Contents : a:1:{s:7:”user_id";i:12345678}
  55. 55. 파일의 위치와 내용은 알았고, 파일 내용만 Django에서 잘 읽어내면 되겠다.
  56. 56. 비슷한 고민을 했던 분들이 있었다.
  57. 57. import phpserialize
 with open("/var/lib/php5/sess_"+session_key, mode='rb') as fp_session:
 session_contents = fp_session.read()
 session_dict = phpserialize.loads(session_contents)
 /var/lib/php5/sess_(session_key)를 읽어와서 session_dict에 집어 넣기
  58. 58. Session FileSession File
  59. 59. 서버 한대가 죽는다면?
  60. 60. 여기에 있는 정보는?
  61. 61. 죽은 서버에 접속된 유저들의 Session File에 접근할 수 없으니 전부 로그아웃 됨
  62. 62. 한대가 죽어도 (한대를 죽여도) 사용자는 아무 영향 없어야 함
  63. 63. Session DB
  64. 64. PHP에서 Session을 File이 아닌 DB로, Django에서 DB에서 Session정보를 얻어오게 변경
  65. 65. DynamoDB 쉽고 저렴해서 선택
  66. 66. PHP use AwsDynamoDbDynamoDbClient; use AwsDynamoDbSessionHandler; $dynamodbclient = new DynamoDbClient( [ 'region' => $DYNAMO_REGION, 'version' => 'latest', 'credentials' => ['key' => $DYNAMO_KEY, 'secret' => $DYNAMO_SECRET]] ); $sessionHandler = SessionHandler::fromClient($dynamodbclient, [ 'table_name' => $DYNAMO_TABLE, 'session_lifetime' => 3600, 'locking_strategy' => 'pessimistic' ] ); $sessionHandler->register();
  67. 67. Django awssession = boto3.session.Session(ACCESSKEY, SECRETKEY, region_name=REGION)
 dynamodb = awssession.client('dynamodb')
 res = dynamodb.get_item( TableName =DYNAMODB_TABLE, Key = { 'id':{'S':'SESSID_'+session_key}})
 session_contents = res[‘Item']['data']['S'].encode( settings.DEFAULT_ENCODING_PHP_SESSION_FILE) # bytes 형으로 변환 session_dict = phpserialize.loads(session_contents) # bytes 형으로 받음
  68. 68. Session DB
  69. 69. 정리 1단계 : API형식으로 PHP(Front-End) - Django(Back-End)로 구성 2단계 : 세션 공유와 Nginx를 이용해 PHP와 Django를 하나의 도메인으로 운영 가능 3단계 : 외부 DB에 Session을 보관함으로 HA구성 가능
  70. 70. 감사합니다  

PHP에서 Django로 갈아타기

슬라이드

https://www.slideshare.net/secret/kHtYn8HAuwIoYV

설명

이 발표에서는 타 Platform으로 개발된 홈페이지를 Django로 갈아타는 과정을 설명합니다. 모든 페이지를 한번에 갈아타는 것보다 점진적으로 갈아타는 방향으로 오픈 첫날에 큰 충격 없는 마이그레이션을 설명합니다. 


점진적으로 갈아타는 과정. 즉, PHP와 Django를 동시에 운영하는 것을 설명합니다.


제가 조인하기 전 PHP로 개발된 피플펀드 홈페이지. 회사내에 기술에 대해서 아는 사람은 아무도 없었고, 외주를 통해 개발되었는데 PHP였습니다. PHP로 개발을 계속할 경우, 유지보수가 힘들어질 것 같은 불길할 예감이 들어 Django를 함께 개발하기 시작했습니다. PHP 100%에서 Django의 비중을 키워가고 있는 과정을 설명합니다.

 

 

...

반응형
반응형

[python] PyCon KR 2017 프로그램 목록

 

PyCon Korea 

프로그램 목록

Best Practices & Patterns

Community

Computer Graphics, VFX, Physically-based simulation

Computer Network

Documentation

Environment and DevOps

Game Server

GUI Framework

IoT

MicroController

Python Core (language, stdlib, etc.)

Python Libraries

Raspberry Pi & Python

Science / Data

Service and Web Development

Reactive Programming

 

 

...

반응형
반응형

[python] Python vs Java @ PyCon Korea 2017

 

https://www.pycon.kr/2017/program/175

 

 

자바 개발자가 파이썬 개발을 배우면서 실무에 활용하고 집필을 하면서 겪었던 경험담 및 생각을 코드와 함께 풀어본다. 자바에 익숙한 사람이 파이썬을 배우고 있거나, 자바와 파이썬의 사이에서 고민을 했던 사람들에게 비교를 위한 기본 정보를 제공한다. 더 나아가 컴파일 언어와 스크립트 언어의 차이점, 개발 생산성을 측정할때 간과하는 컴파일 시간 및 순수 코딩 시간에 대한 통찰을 이끌 생각이다.

 

...

반응형
반응형

[python] PYCON KR 2017: 처음부터 알아보는 웹 크롤러

 

 

 

 

PYCON KR 2017 (2017. 08. 13) 처음부터 알아보는 웹 크롤러 세션 발표자료

 

...

반응형
반응형

[python] PyCon kr 2017 -왜 연휴에 진행하는가? 

역시 뭔가 하려면 휴가는 반납해야하는걸까? 가고싶었는데 아깝다.

 

https://www.pycon.kr/2017/

 

Slack channel : 퍼블릭 파이콘 슬랙 채널

 

 

행사개요

이콘은 세계 각국의 파이썬 프로그래밍 언어 커뮤니티에서 주관하는 비영리 컨퍼런스입니다.

한국에서는 처음으로 열린 파이콘 한국 2014를 시작으로 파이콘 한국 준비위원회는 건강한 국내 파이썬 생태계에 지속적인 보탬이 되고자, 커뮤니티 멤버들의 자발적인 봉사로 운영되고 있습니다. 이번에 4년째 열리는 파이콘 한국 2017은, Back To The Basic "처음의 마음가짐으로" 라는 주제로 준비하였습니다. 더욱 다양한 참가자들과 함께 새로운 기술과 정보를 공유하고 서로 교류할 수 있는 행사가 되기를 희망합니다.

파이콘 한국 2017 티켓은 현장판매를 진행하지 않습니다. 꼭 파이콘 한국 공식홈페이지에서 구매해주세요.

  • 일정 : 2017년 8월 12일(토) ~ 15일(화)
    • 컨퍼런스 세션 : 8월 12일(토) ~ 8월 13일(일)
    • 스프린트와 튜토리얼 : 8월 14일(월) ~ 8월 15일(화)
  • 장소 : 강남구 코엑스 전시장
  • 인원 : 2,000명
  • 주최 : 파이콘 한국 준비위원회
  • 대상 : 국내외 파이썬 개발자 혹은 관심이 있는 분이라면 누구나
  • 발표 : 25분 또는 40분 길이의 발표

티켓 판매 일정

  • 얼리버드 판매 : 2017년 5월 16일 오후 1시 (UTC+9) ~ 매진 시 까지
  • 일반티켓 판매 : 2017년 6월 19일 오후 1시 (UTC+9)  ~ 매진 시 까지
  • 패트론티켓 판매 : 2017년 5월 16일 오후 1시 (UTC+9) ~ 매진 시 까지

퍼블릭 파이콘 슬랙

참가자분들을 위한 퍼블릭 슬랙을 오픈하였습니다.
더 재미있는 파이콘을 위해 퍼블릭 파이콘 슬랙 채널 을 이용해 보세요 :)

다양한 프로그램

  • 열린공간: 열린공간은 원하는 주제나 아이디어에 대해서 참가자들끼리 자유롭게 모여 이야기하는 프로그램입니다. '열린공간'은 어떤 주제라도 상관없이 사람들이 모여서 이야기할 수 있습니다.
  • 라이트닝토크: 라이트닝 토크는 그날의 프로그램이 모두 끝나고, 모든 참석자가 모여 5분 이내의 가벼운 이야기를 하는 행사입니다. 누구나 발표자가 될 수 있습니다.
  • 영코더: 미래의 파이썬 꿈나무들을 위한 교육 프로그램으로서 파이콘 티켓 구매자의 자녀, 조카, 이웃 등을 대상으로 합니다. 프로그래밍을 전혀 몰라도 처음부터 차근차근 흥미를 가질수 있게 해줍니다.
  • 아이돌봄: 파이콘 본 세션이 있는 8월 12일 토요일과 13일 일요일에 육아로 인해 파이콘에 참여가 어려운 분들을 위해  위해 `아이 돌봄`을 운영합니다.
  • 튜토리얼: 튜토리얼은 초보자들을 위해, 또는 새로운 것을 접하는 사람들을 위해 진행하는 교육 프로그램입니다.
  • 스프린트: 관심있는 오픈소스 프로젝트를 같은 장소에 모여 집중적으로 배우고 개발하는 자리입니다. 새로운 동료를 만나고, 오픈소스에서 얻을 수 있는 경험과 지식을 나눌 수 있습니다.

 

 

 

...

반응형
반응형

[Python] 파이썬으로 크롤러 만들기 - 박승규 @wapj - 이모콘 EMOCON 2016 F/W


게시일: 2016. 10. 19.

# 파이썬으로 크롤러 만들기 - 박승규 @wapj
requests와 BeautifulSoup을 이용해서 구글의 이미지를 긁어오는 내용을 만드는 과정을 발표합니다.


----------------------------

이 영상은 2016년 10월 7일~8일 양일간, 집에서 참여하는 이상한 컨퍼런스, 이모콘 2016 F/W에서 진행된 세션 영상입니다. 영상 목록은 아래 재생 목록에서 확인할 수 있습니다.

https://www.youtube.com/playlist?list...

----------------------------
이상한모임의 다양하고 재미있는 이야기를 빠르게 접하는 방법, 이상한모임의 Youtube 채널을 구독하세요!

https://www.youtube.com/channel/UCtzn...

이모콘 2016 F/W 페이지: http://emocon.weirdx.io/2016fw/
이상한모임 블로그: http://blog.weirdx.io
이상한모임 트위터: http://twitter.com/we_weirdmeetup
이상한모임 트위터: https://www.facebook.com/weweirdmeetup




...

반응형

+ Recent posts