1 WSL 2

윈도우 10 WSL2를 사용해서 make 프로그램을 돌린다. 이를 위해서 wsl 우분투에 R 최신버전을 설치하고 tidyverse등 연관 팩키지를 설치한다.

  1. 최신 R 설치 1
  2. install.packages("tidyverse")를 설치하기 위한 사전 설치 팩키지
    • sudo apt-get install -y libxml2-dev libcurl4-openssl-dev libssl-dev
  3. R 팩키지 설치
    • install.packages(c("tidyverse", "DT", "here", "stopwords", "tidytext"), dependencies=TRUE)

2 한국어 make 동영상

아래 유튜브 동영상이 보이지 않는 경우, 즉 {{% youtube “jnJL6ppn26Q” %}} 메시지만 보이고 아무것도 보이지 않는 경우, blogdown::install_hugo('0.54.0', force = TRUE) 명령어로 다시 blogdown 휴고를 설치한다. 2

3 윈도우 make 3

윈도우 환경에서 make를 설치할 수 있는 방법이 있지만, stat545에서 추천하는 방식은 Make for Windows 프로그램이다.

  1. Make for Windows 웹사이트를 방문해서 setup 프로그램을 다운로드 받는다.
  2. make-3.81.exe 파일을 더블클릭하여 설치한다.
    • C:\Program Files (x86)\GnuWin32\ 디렉토리에 설치된다.
  3. 제어판으로 가서 환경변수에 make.exe 파일을 등록시킨다.
    • C:\Program Files (x86)\GnuWin32\bin

4 make 헬로월드

먼저 make를 실행하기 위해서 헬로월드를 찍어보자. 이를 위해서 Makefile을 만든다. all:, clean:은 대표적인 make 명령어를 실행할 때 하나의 관습처럼된 명령어다. 주의할 점은 @echo ... 시작부의 화이트스페이스가 공백이 아니라 탭이라는 점이다.

make all 명령어를 실행하여 헬로월드를 찍어보자.

make: Nothing to be done for 'all'.

다음과 같이 clean 작업 후에 all 빌드작업을 수행한다.

  • Build All - make all 실행
  • Clean All - make clean 청소작업 수행
  • Clean and Rebuild - make clean all 청소작업 후 빌드작업 재수행

5 예제

GNU Make 작업흐름

GNU Make 작업흐름

5.1 파일 다운로드

작업을 모듈화하기 위해서 먼저 R/ 디렉토리 아래 모든 R 스크립트를 모아둔다. 가장 먼저 데이터를 얻는 작업은 download_words.R 파일에 기록한다. 즉, 웹사이트에서 https://svnweb.freebsd.org/base/head/share/dict/web2?view=co 텍스트 파일을 다운로드 받아 data/ 디렉토리 data/words.txt 파일로 저장시킨다.

Makefile은 다음과 같이 구성한다. 즉, make all 명령어로 빌드를 하는데 data/words.txt 파일이 없으니 이를 얻기 위해서 R/download_words.R 스크립트를 실행시키게 된다.

5.2 데이터 정제 파일

원본 데이터를 가지게 되면 다음 단계로 데이터 정제작업을 수행해야 한다. 이를 위한 데이터 정제 작업 및 시각화 모형개발용 데이터프레임 제작작업을 수행한다. tidyverse를 불러와서 processed 디렉토리를 생성한 앞서 다운로드 받은 words.txt 파일을 데이터프레임으로 전처리 작업을 수행한다. 전처리 작업결과를 processed/histogram.tsv 파일로 저장시킨다.

이번에 make all 작업을 수행하게 되면 파일을 다운로드 받고 이를 처리하는 작업을 수행한다. 한가지 make를 사용하면 좋은 점은 앞선 작업은 이미 처리되었기 때문에 다시 재작업을 수행시키지 않는다는 점이다.

5.3 그래프 파일생성

다음 단계로 그래프 파일을 생성하는 단계가 남아있다. 앞서 원데이터에서 데이터프레임으로 변형시켜 .tsv 파일로 저장시켜 둔 것처럼 단어 길이에 대한 분포를 파악하고자 히스토그램을 시각화한 .png 파일을 만드는 작업을 수행한다. 이를 위해서 앞서와 마찬가지로 make_histogram.R 스크립트 파일을 생성하여 작업한다.

이번에도 processed/word_len_histogram.png 파일을 만들기 위해서 Rscript R/make_histogram.R 명령어를 실행시킨다.

5.5 Makefile 정리

Makefile이 다소 지저분하여 이를 깔끔하게 만들어보자. make clean도 도입하고 몇가지 외계기호를 넣어 make 파일로 만들어본다.

make 변수를 도입하여 코드를 단순화하고 의존성도 함께 정리하여 코드를 단순화 시킨다.