rust는 rustup이란 프로그램으로, haskell은 stack이란 프로그램으로 설치하면 개발 환경을 만들 수 있습니다. 그런데 윈도우는 좀 독특해서 이 프로그램들을 설치하기가 번거롭습니다. 하여 먼저 scoop이란 설치 프로그램을 설치하는 프로그램을 설치해야 합니다. scoop이 설치된 컴퓨터에서는 관리자 모드 파워쉘에서 다음 명령으로 rustup과 stack을 설치 할 수 있습니다.
scoop install rustup
scoop install stack
scoop 설치를 위해 파워셸에서 처음 해 줘야 할 일은 다음 명령을 실행시키고, '모두 예'를 의미하는 A를 입력하는 일입니다.
Set-ExecutionPolicy RemoteSigned -scope CurrentUser (물어보는 부분에 all 의미의 A를 입력합니다) |
그후 SCOOP란 이름의 파워셸 환경 변수를 다음처럼 설정합니다. 그러면 앞으로 scoop으로 설치된 모든 프로그램은 C:\Scoop 디렉터리에 위치하게 됩니다.
$env:SCOOP='C:\Scoop' |
그리고 다음 명령을 실행시킵니다.
iex (new-object net.webclient).downloadstring('https://get.scoop.sh') |
명령이 실행되면 scoop이 다음 화면처럼 c:\Scoop 디렉터리에 설치된 것을 확인할 수 있습니다.
그리고 마지막으로 다음 두 명령을 실행시켜 주면 scoop을 사용하여 개발 관련 프로그램들을 설치할 수 있습니다.
scoop install aria2 git scoop bucket add extras |
이제 비주얼 스튜디오 코드를 설치하고 설치된 vscode를 실행시켜봅니다.
scoop install vscode code c:\ |
이제 rustup을 'scoop install rustup' 명령으로 실행합니다.
다음처럼 rustc -V를 쳐보면 가장 최신 버전인 1.41.1이 설치된 걸 확인할 수 있습니다.
그리고 'cargo install' 명령으로 cargo-watch란 프로그램을 설치합니다. 저는 이미 설치가 되어 있어 아래 메시지가 나오지만, 처음 설치되면 cargo-watch의 전 소스코드가 다운로드되고 빌드됩니다. 그리고 cargo-watch.exe 파일이 c:\Scoop\apps\rustup\current\.cargo\bin 디렉터리에 생기게 됩니다.
이제 다음처럼 cargo new 명령으로 hello란 이름의 러스트 프로젝트를 만듭니다. 그리고 생성된 hello 디렉터리를 대상으로 비주얼 스튜디오 코드를 동작시킵니다.
그리고 vscode 터미널에서 'cargo watch -x run'을 실행하면 src/main.rs 코드가 실행되는 결과를 볼 수 있습니다. 현재 watch 중이기 때문에 main.rs 내용이 바뀔때마다(코드 수정 및 저장), 자동으로 리빌드 되면서 결과를 볼 수 있습니다.
이 번엔 하스켈 입니다. 다음처럼 'scoop install stack' 으로 stack을 설치합니다.
이제 world라는 이름의 하스켈 프로젝트를 만듭니다.
stack new world
code world
그리고 vscode 터미널에서 'stack run'을 실행합니다. 그러면 someFunc이란 내용이 화면에 출력되는 것을 볼 수 있습니다. stack은 스칼라의 sbt나 파이썬의 virtualenv처럼 컴파일러를 설치합니다. 하여 stack으로 개발할 때는 따로 하스켈 컴파일러를 설치할 필요가 없습니다.
이 someFunc은 src/Lib.hs 파일의 someFunc의 구현내용이 putStrLn "someFunc'인데 앞 Main.hs 파일의 main = someFunc의 호출로 인해 이 함수가 실행되어 someFunc이 출력된 것입니다.
이상으로 러스트와 하스켈의 개발 방법을 윈도우 운영체제에서 진행하는 것을 알아봤습니다. (에구 힘들어 ^^.)
조금 뒤 러스트 언어의 trait와 struct에 메소드를 추가하는 방법, 그리고 ad hoc polymorphism에 대해 알아보겠습니다.