한림대학교

2018년 10월 27-28일

10:00 am - 18:00 pm

Instructors: 이광춘

Helpers: 이지현

워크샵 일반 정보

소프트웨어 카펜트리(Software Carpentry)의 미션은 좀더 생산적으로 연구를 수행하기 위해서 과학, 공학, 의학 분야의 지식근로자에게 과학 컴퓨팅(scientific computing) 기본적인 기술을 가르친다. 종종 과학기술분야 종사자분들이 상당한 시간을 소프트웨어 개발에 씨름하면서 보내지만, 대부분의 프로그래머는 거의 혼자서 독한한다. 결과로, 몇분이면 끝날 작업에 수시간을 소비하고, 예를 들면, 바퀴를 다시 발명하는 것처럼 다시 작성할 필요가 없는데 시간을 낭비하고, 여전히 개발한 산출물에 신빙성을 담보할 수 없다. 이 문제를 정면으로 다루기 위해서, 소프트웨어 카펜트리(Software Carpentry)는 전세계 수백개 거점에서 2일간 실습위주 워크샵을 진행한다. 단, 2일간 실습위주(hands-on) 워크숍 교육을 통해서 프로그램 설계, 버젼 제어, 데이터 관리, 작업 자동화를 포함한 기본 개념과 도구를 실습위주로 학습한다. 모든 워크샵 참여자가 서로 돕고 학습한 것을 본인 업무에 적용하길 기대합니다.

소프트웨어 카펜트리에서 전달하려는 것과 이유에 대한 좀더 자세한 정보는 다음 논문을 참조한다. "과학 컴퓨팅을 위한 모범 사례(Best Practices for Scientific Computing)".

참석자: 금번 워크샵은 학부 및 대학원생과 연구자분들을 대상으로 한다. 워크샵에서 제시되는 다양한 도구에 대해서 어떤 사전 지식도 갖출 것을 요구하지는 않는다.

장소: 강원도 춘천시 한림대학길 1 공학관 1116-3호. OpenStreetMap 혹은 구글지도(Google Maps)을 참조하세요.

일시: 2018년 10월 27-28일. 구글 달력(Google Calendar)에 추가.

사전 준비사항: 워크샵에 참여하시는 분은 관리자 권한을 갖는 맥, 리눅스, 윈도우 운영체제가 탐재된 노트북을 지참하셔야 합니다. (스마트폰, 태블릿, 크롬북 등은 권장하지 않음) 아래 설정 표기된 데이터과학 컴퓨팅을 위한 사전 소프트웨어 팩키지를 설치하셔야 됩니다. Software Carpentry's 행동강령(code of conduct)도 필히 준수하셔야 합니다.

접근성(Accessibility): 소프트웨어 카펜트리는 누구나 워크샵에 참석할 수 있도록 최선을 다하고 있습니다. 워크샵 조직위는 다음을 확인했습니다:

워크샵 이전에 모든 강의자료는 제공되고, 워크샵 조직위에 미리 알려주시면 필요한 경우 출력물 제공도 가능합니다. 수화 통역사나 수유시설처럼 학습 용이성을 증진시킬 수만 있다면 다음 전자우편으로 연락주시면 최대한 제공할 수 있도록 노력할 것입니다.

연락처: 추가 정보가 필요한 경우 전자우편주소 kwangchun.lee.7@gmail.com 로 연락주세요.


워크샵 일정

Day 1

10:00 작업 자동화 (유닉스 쉘)
13:00 점심시간
14:00 R 프로그램 작성
17:50 Wrap-up
18:00 종료

Day 2

10:00 Git으로 버전관리
13:00 점심시간
14:00 R 데이터 분석과 시각화
17:50 Wrap-up
18:00 종료

채팅, 받아적기, URL과 실습 코드 공유를 위해서 Etherpad 문서를 사용합니다.


강의 계획서(Syllabus)

유닉스 쉘

Git으로 버전관리

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

R 데이터 분석과 시각화


프로그램 설치

소프트웨어(Software Carpentry) 워크샵에 참석하기 위해서 다음에 기술된 소프트웨어를 설치한다. 워크샵 시작 전에 모든 소프트웨어가 제대로 설치되었는지 확인해야 한다. (혹은 적어도 설치 프로그램을 다운로드 받아온다.) 추가로 최신 웹브라우저(파이어폭스/크롬 등) 버전이 필요하다.

설치과정에서 흔히 발견되는 이슈를 목록으로 관리하고 있다. 강사나 조교에게 환경설정 문제와 해결책 위키 웹페이지가 도움이 될 수 있다.

Bash 쉘 (Bash Shell)

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

윈도우(Windows)

동영상 튜토리얼(Video Tutorial)
  1. Git for Windows installer를 다운로드 받는다.
  2. installer를 실행하고 다음 절차를 따라 한다:
    1. (Git이 설치된 경우 2번) "Next" 버튼을 4번 클릭한다. Information, location, components, start menu 화면에서 설정을 전혀 변경할 필요가 없다.
    2. “Use the nano editor by default”을 선택하고 “Next”를 클릭한다.
    3. "Use Git from the Windows Command Prompt" 선택을 유지하고 "Next"를 클릭한다. 상기 작업과정을 잊게 되면, 워크샵에 필요한 프로그램이 정상적으로 동작하지 않게된다. 이런 일이 발생되면 적절한 선택옵션을 선택해서, 설치프로그램을 재실행한다.
    4. "Next"을 클릭한다.
    5. "Checkout Windows-style, commit Unix-style line endings"을 선택하고 "Next"를 클릭한다.
    6. "Use Windows' default console window"을 선택하고 "Next"를 클릭한다.
    7. "Install"을 클릭한다.
    8. "Finish"를 클릭한다.
  3. "HOME" 환경변수가 설정되지 않은 경우(혹은, 환경변수 설정법을 모르는 경우):
    1. 명령 프롬프트를 연다 (즉, 시작메뉴를 열고 cmd을 입력하고 [Enter]를 친다.)
    2. 다음에 나온 명령어를 명령 프롬프트에 정확하게 타이핑한다:

      setx HOME "%USERPROFILE%"

    3. [Enter]를 치게 되면, SUCCESS: Specified value was saved.
    4. 메시지가 나온다.
    5. exit를 타이핑하고 [Enter]를 쳐서 명령 프롬프트를 빠져나온다.

Git Bash 프로그램이 설치되면 Git과 Bash 모두 사용가능하게 된다.

맥(macOS)

모든 맥 OS에서 기본 쉘은 bash라서 별도로 설치할 필요가 없다. 터미널(/Applications/Utilities)에서 bash를 사용할 수 있다. 워크샵에서 터미널을 바로가기로 고정한다. Git 설치에 대해서 video tutorial을 참조하면 터미널을 여는 방법이 소개되어 있다.

리눅스(Linux)

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

Git

Git은 현존하는 최강의 버젼 제어 시스템(version control system)이다. Git을 사용해서 누가(who) 무엇(what)에 언제(when) 변경을 했는지 추적할 수 있다. 또한 github.com에 공유 혹은 공개 버젼의 코드를 쉽게 갱신할 수도 있다. 크롬(Chrome), 불여우(Firefox), 사파리(Safari) 혹은 인터넷 익스플러로 버전 9이상 호환되는 웹브라우저가 필요하다.

버전관리 Git 수업에 github.com 계정이 필요하다. 기본 GitHub 계정은 무료다. 아직 GitHub 계정이 없는 경우 계정 생성을 강력히 권장한다. 대신에 노출되는 개인정보에 대해서는 다시 한번 검토하기를 바란다. 예를 들어, 마이크로소프트가 인수한 GitHub에 instructions for keeping your email address private 게시글을 검토할 필요가 있따.

윈도우

Git은 앞서 기술된 Bash 설치할 때 컴퓨터에 설치된다.

맥(macOS)

동영상 튜토리얼(Video Tutorial)

OS X 10.9 버전 이상에 대해서, 목록에서 가장 최신 "mavericks" 설치자를 다운로드 받아 맥용 Git(Git for Mac)을 설치한다. 다운로드 받은 설치파일은 개발자용으로 인증된 것이 아니라서, .pkg 파일 위에 우클릭(컨트롤 클릭)해서 열고 팝업 윈도우에 Open을 클릭한다. Git을 설치한 후에 /Applications 폴더에는 아무것도 없는데 Git이 명령라인 프로그램이라서 그렇다. OS X (10.5-10.8) 이전 버전에 대해서 "snow-leopard" 라는 이름이 붙은 available here 목록에서 가장 최신 설치자를 사용한다.

리눅스(Linux)

Git이 컴퓨터에 설치되어 있지 않다면, 배포판 팩키지 관리자를 통해서 설치한다. 데비안/우분투 배포판의 경우 sudo apt-get install git, 페도라 배포판의 경우 sudo dnf install git 명령어를 사용해서 설치한다.

텍스트 편집기(Text Editor)

코드를 작성할 때, 키워드에 대해 자동 색상 기능을 갖는 코드작성에 최적화된 텍스트 편집기를 갖추면 최상이다. 맥OS나 리눅스의 경우 기본설치된 텍스트 편집기는 Vim으로 지정되어 있는데 직관적이지 않은 것으로 악명이 높다. Vim을 사용하다 꼬이게 되면 Esc 키를 누른 후에 :q! (콜론, 소문자 'q', 느낌표)를 입력하고 나서 엔터키를 치게 되면 쉘로 빠져나온다.

Windows

워크샵에서 강사가 사용할 기본 편집기는 나노(nano)다. 나노 편집기는 Git 설치할 때 따라서 함께 설치된다.

학습참가자가 사용할 수 있는 다른 편집기에는 Notepad++, Sublime Text이 있다. 시스템 경로에 편집기 설치 디렉토리를 추가해야하는 점에 유의한다. 경로설정에 도움이 필요한 경우 강사에게 부탁한다.

맥(macOS)

워크샵에서 강사가 사용할 기본 편집기는 나노(nano)다. 나노 편집기를 여는 방법에 대해서 동영상 튜토리얼(video tutorial)에 나온 Git 설치방법을 참고한다. 나노는 맥에 기본 설치되어 있다.

학습참가자가 사용할 수 있는 다른 편집기에는 Text Wrangler, Sublime Text가 있다.

리눅스(Linux)

워크샵에서 강사가 사용할 기본 편집기는 나노(nano)다. 나노는 리눅스에 기본 설치되어 있다.

학습참가자가 사용할 수 있는 다른 편집기에는 Gedit, Kate, Sublime Text가 있다.

Python

Python is a popular language for research computing, and great for general-purpose programming as well. Installing all of its research packages individually can be a bit difficult, so we recommend Anaconda, an all-in-one installer.

Regardless of how you choose to install it, please make sure you install Python version 3.x (e.g., 3.6 is fine).

We will teach Python using the Jupyter notebook, a programming environment that runs in a web browser. For this to work you will need a reasonably up-to-date browser. The current versions of the Chrome, Safari and Firefox browsers are all supported (some older browsers, including Internet Explorer version 9 and below, are not).

Windows

Video Tutorial
  1. Open https://www.anaconda.com/download/#windows with your web browser.
  2. Download the Python 3 installer for Windows.
  3. Install Python 3 using all of the defaults for installation except make sure to check Make Anaconda the default Python.

macOS

Video Tutorial
  1. Open https://www.anaconda.com/download/#macos with your web browser.
  2. Download the Python 3 installer for OS X.
  3. Install Python 3 using all of the defaults for installation.

Linux

  1. Open https://www.anaconda.com/download/#linux with your web browser.
  2. Download the Python 3 installer for Linux.
    (The installation requires using the shell. If you aren't comfortable doing the installation yourself stop here and request help at the workshop.)
  3. Open a terminal window.
  4. Type
    bash Anaconda3-
    and then press tab. The name of the file you just downloaded should appear. If it does not, navigate to the folder where you downloaded the file, for example with:
    cd Downloads
    Then, try again.
  5. Press enter. You will follow the text-only prompts. To move through the text, press the space key. Type yes and press enter to approve the license. Press enter to approve the default location for the files. Type yes and press enter to prepend Anaconda to your PATH (this makes the Anaconda distribution the default Python).
  6. Close the terminal window.

R

R은 프로그래밍 언어로 데이터 탐색, 시각화, 통계분석에 특히 강점이 있다. R을 사용하는데 RStudio를 사용한다.

윈도우

동영상 튜토리얼(Video Tutorial)

R을 설치하려면 CRAN에서 .exe 파일을 다운로드 해서 실행한다. 또한, RStudio IDE도 설치한다. 주의할 점은 사용자(user) 계정과 관리자(admin) 계정을 따로 갖고 있는 경우 관리자(administrator)로 설치해야 한단. 관리자 설치방법은 더블클릭 대신에 .exe 파일 위에 우클릭하고 "Run as administrator"를 선택하면 된다. 이렇게 설치하지 않게 되면 나중에 R 팩키지 설치단계에서 문제가 발생한다.

맥(macOS)

동영상 튜토리얼(Video Tutorial)

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

리눅스(Linux)

CRAN에서 해당 배포판에 적합한 바이너리 파일을 다운로드 하거나, 팩키지 관리자를 사용한다. 예를 들어 데비안/우분투 배포판의 경우 sudo apt-get install r-base, 페도라의 경우 sudo dnf install R 명령어를 실행한다. 또한, RStudio IDE도 설치한다.

SQLite

SQL은 데이터베이스와 함께 사용하는 특수한 프로그래밍 언어다. 워크샵에서 SQLite라는 단순한 데이터베이스 관리자를 사용한다.

윈도우

Software Carpentry 윈도우 설치자(Windows Installer) 를 통해 윈도우용 SQLite를 설치한다. 나노(nano) 편집기 환경설정하는데 설치자를 사용했다면, 다시 실행할 필요는 없다.

맥(macOS)

맥OS의 경우 SQLite는 사전 설치되어 있다.

리눅스

리눅스의 경우 SQLite는 사전 설치되어 있다.

아나콘다를 설치한 경우, readline지원 안 되는 SQLite 사본이 함께 설치되는데, 필요한 경우 강사가 회피하는 법(workround)을 알려줄 것이다.

OpenRefine

For this lesson you will need OpenRefine and a web browser. Note: this is a Java program that runs on your machine (not in the cloud). It runs inside a web browser, but no web connection is needed.

Windows

Check that you have either the Firefox or the Chrome browser installed and set as your default browser. OpenRefine runs in your default browser. It will not run correctly in Internet Explorer.

Download software from http://openrefine.org/

Create a new directory called OpenRefine.

Unzip the downloaded file into the OpenRefine directory by right-clicking and selecting "Extract ...".

Go to your newly created OpenRefine directory.

Launch OpenRefine by clicking google-refine.exe (this will launch a command prompt window, but you can ignore that - just wait for OpenRefine to open in the browser).

If you are using a different browser, or if OpenRefine does not automatically open for you, point your browser at http://127.0.0.1:3333/ or http://localhost:3333 to use the program.

Mac

Check that you have either the Firefox or the Chrome browser installed and set as your default browser. OpenRefine runs in your default browser. It may not run correctly in Safari.

Download software from http://openrefine.org/.

Create a new directory called OpenRefine.

Unzip the downloaded file into the OpenRefine directory by double-clicking it.

Go to your newly created OpenRefine directory.

Launch OpenRefine by dragging the icon into the Applications folder.

Use Ctrl-click/Open ... to launch it.

If you are using a different browser, or if OpenRefine does not automatically open for you, point your browser at http://127.0.0.1:3333/ or http://localhost:3333 to use the program.

Linux

Check that you have either the Firefox or the Chrome browser installed and set as your default browser. OpenRefine runs in your default browser.

Download software from http://openrefine.org/.

Make a directory called OpenRefine.

Unzip the downloaded file into the OpenRefine directory.

Go to your newly created OpenRefine directory.

Launch OpenRefine by entering ./refine into the terminal within the OpenRefine directory.

If you are using a different browser, or if OpenRefine does not automatically open for you, point your browser at http://127.0.0.1:3333/ or http://localhost:3333 to use the program.