Find us on GitHub

경기콘텐츠코리아랩 (Content Korea Lab Gyeonggi)

Apr 29-30, 2015

9:30 am - 5:30 pm

Instructors: 이광춘

Helpers: 서덕래

데이터 과학(Data Science)을 위한 R 및 소프트웨어 교육

Software Carpentry의 미션은 좀더 생산적으로 연구를 수행하기 위해서 과학, 공학, 의학 분야의 지식근로자에게 과학 컴퓨팅(scientific computing) 기본적인 기술을 가르친다. xwMOOC도 대한민국과 한국어를 이해하는 모든 사람을 위해 무료 정보교육으로 더불어 사는 세상 만들는 프로젝트를 진행합니다. 단, 2일간 실습위주(hands-on) 워크숍 교육을 통해서 비전산 전공자들이 접하지 못한 컴퓨터적 및 통계적 사고, 프로그래밍과 코딩, 컴퓨터 유창성, 컴퓨터 과학 언플러그드, 프로그램 설계, 버젼 관리, 데이터 관리, 업무 자동화, 클라우드를 학습합니다. 모든 워크샵 참여자가 서로 돕고 학습한 것을 본인 업무에 적용하길 기대합니다.

소프트웨어 카펜트리에 대한 좀더 자세한 사항은 다음 논문을 참고바랍니다. "Best Practices for Scientific Computing".
한국 xwMOOC 프로젝트에 대한 자세한 사항은 다음 웹사이트를 참조바랍니다. "Think Like Computer and Data Scientists".


소프트웨어 아키텍트이며 소프트웨어 아키텍처 관련 다수 번역하신 KAIST 김정호 박사님께서 "소프트웨어 아키텍처: 데이터 과학 소프트웨어 중심으로" 특강도 포함되어 있습니다. "소프트웨어 아키텍처 : 이론과 실제". "소프트웨어 문서화"

교육 대상: 데이터 과학자, 대학원 및 과학/공학 연구원, 과학/공학 기반 스타트업 준비 혹은 스타트업 기업인.

장소: 경기도 성남시 분당구 대왕판교로 645번길 12 판교공공지원센터 7층.
찾아오시는 길 OpenStreetMap 혹은, 구글 지도.

교육 준비물:

모집인원 및 비용: 15명(선착순 모집), 무료

  • 점심식사는 제공되지 않습니다.
  • 개인 노트북를 가져오셔야하며 아래 프로그램 설치를 권장합니다.

연락처:

  • 교육과정 및 참가신청: XWMOOC, 이광춘 강사, i@xwmooc.net
  • 향후 교육과정 안내: 소프트웨어 카펜트리 교육을 희망하시는 분은 xwMOOC 이광춘 강사에게 연락처를 남겨주시면 다음 교육에 안내드리겠습니다.


후원/지원

교육 스케쥴

1 일차

09:30 작업 자동화 (유닉스 쉘)
10:20 커피 시간
10:30 소프트웨어 아키텍쳐: 데이터 과학 소프트웨어 (김정호 박사)
12:00 점심 시간
13:00 R 프로그래밍
14:30 커피 시간
17:00 Wrap-up

2 일차

09:30 버젼관리(Git)
10:30 커피 시간
12:00 점심 시간
13:00 데이터 관리(SQL)
14:30 커피 시간
17:00 Wrap-up

Etherpad: https://etherpad.mozilla.org/2015-04-29-pangyo.
수강생과 좀더 효과적인 워크샵 교육을 위해서 모질라 이더패드(Etherpad)를 사용하여 코드, URL, 강의 노트, 질의 응답을 진행합니다.


교육과정

유닉스 쉘

  • 쉘(shell) 소개
  • 파일과 디렉토리
  • 파일과 디렉토리 생성
  • 파이프(pipe)와 필터(filter)
  • 루프(Loops)
  • 쉘 스크립트(shell script)
  • 파일, 문자, 디렉토리 등 찾기
  • Reference...

파이썬 프로그래밍

  • 환자 데이터(Patient Data) 분석
  • 함수 생성
  • 다수의 데이터셋 분석
  • 조건 선택
  • 방어적 프로그래밍(Defensive Programming)
  • 명령-라인(Command-Line) 프로그램
  • Reference...

R 프로그래밍

  • 환자 데이터(Patient Data) 분석
  • 함수 생성
  • 다수의 데이터셋 분석
  • 조건 선택
  • 명령-라인(Command-Line) 프로그램
  • Reference...

클라우드 VM, 웹 어플리케이션

  • 소프트웨어 이해하기
  • 클라우드 소개
  • 클라우드 사업 배경
  • 클라우드 개발 아키텍쳐
  • 가상 컴퓨터 (VM)
  • 웹 응용프로그램

버젼 관리(Git)

  • 버젼 관리 소개
  • 파일에 변경사항 저장: add, commit, ...
  • 변경사항 확인: status, diff, ...
  • 파일 무시(ignore)
  • 웹에서 작업: clone, pull, push, ...
  • 충돌(Conflicts) 해결
  • 공개 과학(Open Science)
  • 협업(Collaboration)
  • Reference...

데이터 관리(SQL)

  • 데이터 선택하기
  • 정렬과 중복 제거하기
  • 필터링(filtering), where
  • 새로운 값 계산하기
  • 결측 데이터 (Missing Data)
  • 집합 (Aggregation)
  • 데이터 조합하기, join
  • 데이터 생성과 변형
  • 데이터베이스로 프로그래밍
  • Reference...

프로그램 설치

소프트웨어 카펜트리 워크샵에 참여하기 위해서 다음에 기술된 소프트웨어를 설치한다. 워크샵 시작 전에 모든 소프트웨어가 제대로 설치되었는지 확인해야 한다. (혹은 적어도 설치 프로그램을 다운로드 받아온다.)

개요

편집기 (Editor)

프로그램 코드를 작성할 때, 코드 작성에 최적화된 나만의 편집기를 가는 것이 좋다. 일반적으로 코딩에 최적화된 편집기는 작성하는 프로그래밍 언어에 맞춰 키워드를 자동으로 색상을 달리하는 기능같은 것을 갖췄다. 맥 OS X나 리눅스 운영체제에는 전혀 직관적이지 않은 것으로 유명한 Vim이 기본 텍스트 편집기로 설정되어 있다. 만약 Vim 안에서 뭔가 잘못되어 꼼짝하지 못하게 된다면, 당황하지 말고 'ESC 키'를 누르고 ':q!' (콜론, 소문자 'q', 느낌표)를 타이핑하고 Enter 혹은 Return 키를 치게 되면 쉘로 다시 돌아오게 된다.

Bash 쉘 (Bash Shell)

Bash는 가장 일반적으로 사용되는 쉘 중의 하나다. 쉘을 사용하면 컴퓨터로 더 많은 작업을 더 빠르게 할 수 있는 동력을 제공받을 수 있다.

깃 (Git)

Git은 현존하는 최강의 버젼 제어 시스템(version control system)이다. Git을 사용해서 누가(who) 무엇(what)에 언제(when) 변경을 했는지 추적할 수 있다. 또한 github.com에 공유 혹은 공개 버젼의 코드를 쉽게 갱신할 수도 있다.

파이썬 (Python)

파이썬은 과학 컴퓨팅에서 점점 대중화되어 가고 있다. 그리고 읽기 쉬운 구문 때문에 일반적인 프로그래밍 개념을 가르치는데 매우 훌륭한 언어다. 파이썬 버젼 2.7로 워크샵에 사용하는데 여전히 가장 대중적으로 사용되고 있기 때문이다. 파이썬용 과학 패키지를 개별적으로 설치하는 것은 조금 어렵기 때문에, 한번에 설치(all-in-on installer)를 권장한다.

R

R은 데이터 탐색, 시각화, 통계 분석에 특기가 있는 강력한 프로그래밍 언어다. R과 소통하기 위해서 RStudio를 개발환경(interactive development environment, IDE)으로 사용한다.

SQL

SQL은 데이터베이스에 사용하는 되는 특별한 프로그래밍 언어다. SQLite로 불리는 간단한 데이터베이스 관리자를 웹 브라우져 플러그인 통하거나 직접 사용한다.

윈도우 (Windows)

파이썬 (Python)

  • Anaconda를 다운로드해서 설치한다.
  • 설치할 때 한가지만 빼고, 모두 기본 설정으로 된 것을 사용한다. 한가지 필수 선택 사항은 Make Anaconda the default Python를 체크하고 선택한다.

Git Bash

the installer을 다운로드 받아 실행해서 Git for Windows를 설치한다. Git과 Bash를 모두 사용할 수 있게 한다.

소프트웨어 카펜트리 인스톨러 (Software Carpentry Installer)

소프트웨어 카펜트리 인스톨러를 설치하기 위해서는 인터넷에 연결되어 있어야 한다.

파이썬과 Git Bash를 설치한 다음에

  • installer를 다운로드한다.
  • 로컬 컴퓨터에 다운로드 받으려면 마우스 우클릭하여 다른이름으로 저장한다.
  • 다운로드 받은 파일을 더블 클릭하여 실행한다.

편집기 (Editor)

nano는 소프트웨어 카펜트리 인스톨러가 설치한 편집기다. 워크샵 수업에 활용되는 기본 편집기다.

Notepad++는 윈도우 시스템에서 가장 대중적으로 사용되는 무료 프로그램 코드 편집기중의 하나다. 명령 라인 인터페이스(CLI, Command line Interface) Notepadd++를 싱행하기 위해서 시스템 경로에 설치 디렉토리가 추가되어 있어야 한다. 도움이 필요하면 강사에게 문의한다.

R

CRAN에서 .exe 파일을 다운로드 받아 실행한다. 또한, RStudio IDE도 설치한다.

SQLite

sqlite3 프로그램을 다운로드받아 예제를 실행하는 디렉토리에 함께 놓는다. 혹은, 아래에 파이어폭스 SQLite 브라우져 플러그인을 설치한다.

맥 OS X

Bash

모든 맥 OS에서 기본 쉘은 bash라서 별도로 설치할 필요가 없다. 터미널(/Applications/Utilities)에서 bash를 사용할 수 있다. 워크샵에서 터미널을 바로가기로 고정한다.

편집기 (Editor)

Text WranglerSublime Text를 추천한다. 만약의 경우에, 설치해야 하지만 nano를 사용할 수도 있다.

깃 (Git)

OS X 10.8 이상 버젼에서는 'Git for Mac' 인스톨러를 다운로드 받아 실행한다. OS X (10.5-10.7) 이전 버젼에서는 여기에서 OS 버젼에 맞는 가장 최신 인스톨러를 사용한다. 10.5 버젼에서는 Leopard 인스톨러, 10.6-10.7 버젼에서는 Snow Leopard 인스톨러를 사용한다.

파이썬 (Python)

  • Anaconda를 다운로드해서 설치한다.
  • 설치할 때 한가지만 빼고, 모두 기본 설정으로 된 것을 사용한다. 한가지 필수 선택 사항은 Make Anaconda the default Python를 체크하고 선택한다.
  • Troubleshooting: 만약 다음 오류 메시지와 조우한다면, "ValueError unknown locale: UTF-8", 어떻게 문제를 해결하는지 다음을 눌러 지침에 따라 처리한다.

R

CRAN 사이트에서 .pkg 파일을 다운로드 받아 실행한다. 또한, RStudio IDE도 설치한다.

SQLite

sqlite3는 맥 OS X에 기본으로 설치되어 추가 설치가 불필요하다. 혹은, 아래에 파이어폭스 SQLite 브라우져 플러그인을 설치한다.

리눅스 (Linux)

Bash

기본 쉘이 bash다. 하지만 만약 컴퓨터 설정이 다르게 되어 있다면, 터미널을 열어 bash를 타이핑한다. 별도의 추가 설치가 불필요하다.

깃 (Git)

만약 Git이 컴퓨터에서 사용할 수 없다면, 예를 들어, apt-get 혹은 yum) 같은 리눅스 배포판의 패키지 관리자를 통해서 설치한다.

편집기 (Editor)

Kate가 리눅스 사용자를 위한 한가지 선택지가 된다. 만약의 경우에, 설치해야 하지만 nano를 사용할 수도 있다.

R

CRAN 사이트에서 바이너리 파일을 다운로드 한다. 혹은 데비안/우분투 리눅스 배포판의 패키지 관리자를 통해 apt-get install r-base 혹은 yum install R 명령어로 설치한다. RStudio IDE도 설치한다.

SQLite

sqlite3는 리눅스에 기본으로 설치되어 추가 설치가 불필요하다. 혹은, 아래에 파이어폭스 SQLite 브라우져 플러그인을 설치한다.

파이썬 (Python)

모두 설치되어 있는 과학용 파이썬 인스톨러 Anaconda를 추천한다. (설치할 때 쉘을 사용해한다. 만약 혼자서 설치하는 것이 어렵다고 느껴진다면, 인스톨러를 다운로드 받아서 가져오면 워크샵에서 강사가 설치를 도와줄 것이다.)

  1. 운영 체제에 맞는 인스톨러를 다운로드하고 home 폴더에 저장한다.
  2. 터미널 윈도우를 연다.
  3. bash Anaconda-
    타이핑하고 탭(tab)을 누른다. 방금 전에 다운로드한 전체 파일명이 나타나야 한다.
  4. 엔터 키를 누른다. 텍스트 프롬프트로 설치한다. 화면 하단에 콜론이 있다면, 아래 화살표를 눌러 텍스트를 따라 내려간다. yes를 타이핑하고 엔터를 눌러 라이선스에 동의한다. 엔터를 다시 눌러 파일이 설치되는 초기 설치 장소에 동의한다. yes를 타이핑하고 엔터를 눌러 PATH 경로에 Anaconda 를 추가한다. (이렇게 함으로써 Anaconda가 기본 파이썬 IDE가 되었다.)

모든 운영체제 공통 사항

파이어폭스 SQLite 플러그인

명령어 라인 인터페이스 (CLI, Command Line Interface)에서 sqlite3를 사용하는 대신에 파이어폭스 플러그인을 사용할 수 있다. 플러그인 설치는 다음과 같다.

  • 파이어폭스 웹 브라우져를 시작한다.
  • 플러그인 홈페이지로 이동한다.
  • "Add Now" 버튼을 클릭한다.
  • 다운로드가 끝난 다음에 나타나는 대화창에 "Install Now"를 클릭한다.
  • 메시지가 표시되면, 파이어폭스를 재시작한다.
  • 플러그인이 올바르게 설치되었는지 점검하기 위해서, "Tools" 메뉴에서 "SQLite Manager"를 선택한다.

새로나온 파이어폭스 버젼에서는 메뉴바(menu bar)가 항상 표시되지는 않는다. 메뉴바를 보려면, 키보드에서 스페이스 바 옆에 있는 Alt키를 사용한다. 혹은 추가적인 도움은 지원 페이지 를 참조한다.

가상 컴퓨터 (Virtual Machine)

일부 강사분들은 컴퓨터에 소프트웨어를 설치하기 보다 가상 컴퓨터 (virtual machine, VM)을 학습 참가자가 사용하길 권장한다. 만약 강사분이 가상 컴퓨터를 선택해서 워크샵을 진행한다면, 다음 절차로 진행하세요.

  1. VirtualBox를 설치한다.
  2. 소프트웨어 카펜트리 VM image를 다운로드 한다. 경고: 파일 크기가 1.7 GByte로 매우 크다. 워크샵에 오기 전에 다운로드 하세요.
  3. "Import Appliance"를 선택하고, .ova 파일을 VirtualBox에 VM을 로딩하세요.