최근 주변에서 러스트(Rust)라는 언어에 대한 관심이 폭증하고 있는 것 같습니다. 그래서 저도 자연스럽게 관심을 가지게 되는 것 같습니다. 그러다보니 궁금해져서 슬슬 공부를 시작해볼까 합니다.
이 글은 첫 글로써 간단한 소개와 함께 macOS에서 러스트 개발에 필요한 컴파일러와 도구들을 설치하는 방법을 알아봅시다.
Rust?
러스트(Rust)는 프로그래밍 언어의 한 종류입니다. 소스 파일을 작성하여 이를 컴파일하여 기계어 파일로 변환한 후 이를 실행시키는 방식이며 따라서 시스템 소프트웨어 개발에 유리한 언어입니다. 그래서 C 언어가 사용되는 분야를 상당수 대체할 수 있을 것으로 생각됩니다.
그런데 여기에 현대적인 언어들이 가지고 있는 다양한 편의 기능을 추가로 제공하고 있어서 C 언어가 다루기 힘들었던 응용 소프트웨어 분야에서도 널리 사용될 수 있는 언어이기도 합니다. 심지어 웹 개발 시 백엔드는 물론이고 프론트엔드 분야에서도 충분히 사용이 가능할 정도이고 각종 애플리케이션의 코어 개발에서도 사용된 예도 있기도 합니다.
초기에는 주로 모질라(Mozilla) 재단에서 웹 브라우저 엔진을 개발하는 용도로 사용되는 걸로 유명해졌습니다만, 지금은 고유한 메모리 관리 등 다양한 장점이 많이 알려졌기에 러스트를 이용해 퍼포먼스를 개선하는 사례가 지속적으로 나오고 있는 추세입니다.
Homebrew로 설치하기(X)
제목에 왜 (X)
표시가 있을까요? 읽어보면 알 수 있습니다.
일단 러스트는 Homebrew 패키지가 제공됩니다.
brew info rust
그렇다면 이걸 설치하면 바로 쓸 수 있는 걸까요? 실제로 install
명령으로 설치해 보면 별 문제 없이 설치는 잘 됩니다.
그런데 결론만 말하자면, 이 방법은 추천하지 않는다고 합니다. 아마도 필요한 패키지 중 일부만 설치가 돼서 그런 것이 아닐까 생각됩니다. 제목의 (X)
표시는 바로 추천하지 않는다는 의미였습니다.
Homebrew로 설치하기(O)
위에서 추천하지 않는다고 하는데 다시 이번에는 (O)
표기를 제목에 표시했습니다. 그러하면 이번에는 제대로 설치가 가능한 방법에 대한 것이겠지요?
이번에는 rust가 아닌 rustup-init
이라는 패키지를 설치해 봅시다.
brew install rustup-init
rustup은 러스트 툴체인 통합 인스톨러 패키지입니다. 따라서 이 자체로 설치가 끝나는 것이 아니라 rustup-init
명령으로 추가 설치를 진행해야 한다.
rustup-init
이렇게 하면 컴파일러인 rustc
를 비롯해 패키지 매니저인 Cargo도 함께 알아서 설치가 진행됩니다.
참고로 설치되는 경로는 홈 디렉토리 아래에 숨겨진 디렉터리입니다. 아무래도 일반적이 경로가 아니기 때문에 인스톨러가 알아서 PATH 환경 변수를 사용하는 셸의 프로파일(profile)에 작성해 줍니다. 만약 zsh을 쓰고 있다면 .z_profile
이겠네요. 이대로 사용해도 되지만 이걸 사용하는 셸의 초기화 파일에 옮겨도 되니 원하는 대로 하면 됩니다.
어쨌거나 설치는 이걸로 끝입니다. rustc
나 cargo
명령이 실행되는지 확인해 봅시다.
수동으로 설치하기
다른 OS이거나 혹은 Homebrew로 설치하기가 싫다면 러스트가 공식적으로 제공하는 방법으로 설치를 할 수 있습니다. 아래와 같은 터미널 명령이면 충분합니다.
curl https://sh.rustup.rs -sSf | sh
위에서 Homebrew로 설치할 대도 패키지 이름에 rustup이 들어 있었는데 여기도 rustup이라는 이름이 보이네요. 그렇다면 둘은 같은 거라고 봐도 되겠네요?
결과적으로 마지막에 셸의 PATH 환경변수까지 잡아주는 것도 동일하게 끝납니다.
업데이트 하기
어떤 방식으로 설치하든 러스트의 버전을 올리고 싶다면 아래 커맨드 한 줄이면 해결됩니다.
rustup update
혹시 설치가 제대로 되지 않는다면
만약 Homebrew로 rust 패키지를 별도 설치했었다면 rustup-init 패키지로 설치가 실패하는 경우가 있습니다. 이럴 때는 진정하고 설치한 방법에 맞는 삭제 방법으로 rust 패키지를 날려버리고 다시 시도해보면 해결되는 경우도 있습니다.
예를 들어 Homebrew로 설치했다면 아래와 같이 삭제하면 됩니다.
brew uninstall rust
이후 다시 rustup-init으로 설치를 진행해 봅시다.
맺음말
이제 러스트(Rust) 공부를 시작할 수 있게 되었습니다. 아직 시작도 안 했다니 참 갈 길이 멀어 보이네요. 하지만 개인적인 흥미로 공부를 한다는 것은 재미를 동반하기도 해서 기대되기도 합니다.
이 글은 여기서 맺으며 다음 내용은 Cargo에 대한 글로 이어집니다.
'기술적인 이야기 > 기타 개발' 카테고리의 다른 글
러스트의 시작점 main 함수 살펴보기 (895) | 2020.07.26 |
---|---|
Cargo :: 러스트 프로젝트 및 패키지 매니저 (1035) | 2020.07.24 |
Flutter에서 써드파티 모듈을 수동으로 집어넣기 (901) | 2020.06.09 |
Flutter 사용 시 발생하는 미확인 개발자 문제 (5) | 2020.02.18 |
Python 3 정적 타이핑 소개 및 소감(?) (0) | 2020.02.13 |
댓글