8
D A T A S C I E N C E Reproducible Research - 사이언스 블로깅을 위한 Jekyll, Knitr, Github - 2014년 3월 - 홍성학 ([email protected])

Reproducible research - jekyll

Embed Size (px)

DESCRIPTION

Reproducible Research를 위한 Jekyll

Citation preview

Page 1: Reproducible research - jekyll

D A T A !S C I E N C E

Reproducible Research - 사이언스 블로깅을 위한 Jekyll,

Knitr, Github -2014년 3월 - 홍성학 ([email protected])

Page 2: Reproducible research - jekyll

D A T A !S C I E N C E

Reproducible Research 는?• 연구결과물에 대한 보관 및 배포에 대한 새로운 수행 방법

• 연구와 학습과정의 모든 경험은 문서화되고 재현가능하도록 하는 것을 말함

• 코드, 데이터를 포함하여 모든 것을 재현 가능하도록 보관하고 제공해야 함

• 아카데미의 안좋은 사례 및 관행 개선

• 73%의 연구자들이 6개월동안 자신의 연구 결과 데이터를 제공하지 않음 - Shoot and Forget

• 자신의 연구결과물도 시간이 흐르면 스스로 재현을 하지 못함

• 다른 사람의 연구를 개선 또는 응용하려면 먼저 재현하고 테스트를 해야하는데 그렇게 하지 못함

• 잘못된 결과가 잘못된 결과를 낳음 - 믿고 참조한 논문이 소설이었고 참조해서 만든 논문들이 졸지에 쓰레기

• 같은 연구결과에 여러 사람들이 동일하게 반복하는 검증의 시간낭비

• 나쁜 연구자들 퇴치: 내 페이퍼에 약간의 사기를 쳐도 괜찮을 것이다. 내가 코드와 데이터를 주지 않아면 어차피 아무도 재현하지 못할테니까! 유후~

Page 3: Reproducible research - jekyll

D A T A !S C I E N C E

과학인들의 삽질• 분석은 R로 하고 문서는 Word로 작성했어요. 플로팅은 Excel로 그렸지요. PT는 파워포인트로 합니다. 데이터는 USB에 있어요.

• 예전 분석 과정에서 뭔가를 수정했는데 뭘 바꿨는지 기억이 안나요

• 하드디스크에 보관하고 있던 5년치 연구자료가 날아갔어요

• 나혼자 연구해서 나혼자 잘 먹고 잘 살겠어

• 다른 사람의 연구자료를 참조했는데 재현하는데 1년걸렸어!

• 워드프레스로 블로깅을 할 때 그래프를 이태리장인 처럼 하나씩 하나씩 업로드해서 링크걸어요

Page 4: Reproducible research - jekyll

D A T A !S C I E N C E

뭐 하자는 것인가?• 과학자들도 개발자처럼 결과물을 관리하자

• 문서화(Documentation)

• 코드 형상 관리(SCM)

• 자료 백업 (Backup)

• 기여 (Contribution)

• 자기홍보와 퍼스널파워 (PR & Personal Power)

Reproducible Research

이 모든 위대한 것들을 한방에!

Page 5: Reproducible research - jekyll

D A T A !S C I E N C E

도구• Knitr + Rmarkdown

• Markdown과 R의 결합. 코딩과 플로팅과 리포트를 한꺼번에 해결

• Jekyll

• Static Blog 생성 도구

• Github

• 형상관리와 백업. 무료 홈페이지 호스팅

• 이 모든 것이 공짜

Page 6: Reproducible research - jekyll

D A T A !S C I E N C E

하는 순서Rmarkdown

작성Jekyll 빌드

Github 푸시

• 연구 결과물 • 분석 결과물

• 블로그 포스트 생성 • 자동 문서화 • 블로그 업데이트

Page 7: Reproducible research - jekyll

D A T A !S C I E N C E

데모

Page 8: Reproducible research - jekyll

D A T A !S C I E N C E

설치 및 준비물• Ruby

• Ruby Development Kit

• Jekyll - HTML generating

• JekyllBootsrap - Bootstrap + Theme

• Python

• Pygments - Syntax Highlights

• R

• knitr

• Git client (Git, Source tree)

• Github 계정 + repository 생성

• Domain 구매 (옵션)