Rustlings

Pt J·2020년 9월 30일
4

Story Of My Life

목록 보기
8/31
post-thumbnail

Rust 공식문서를 한 바퀴 돌아본 후,
일단 예제 따라 써가면서 끄적여보긴 했는데, 잘 익힌건가?
하고 있는 피터에게 페리스가 다가온다.

🦀 Ferris | "그럴 땐 좋은 게 있지, 연습문제를 풀어보는 거야!"

🐧 Peter | "연습문제? 어떤?"

🦀 Ferris | "그럴 줄 알고 준비했지, Rustlings!"

https://www.rust-lang.org/learn 에 의하면,

Alternatively, Rustlings guides you through downloading and setting up the Rust toolchain, and teaches you the basics of reading and writing Rust syntax, on the command line. It's an alternative to Rust by Example that works with your own environment.

🦀 Ferris | "The Book을 통해 공부한 걸 이걸로 가볍게 복습하고 나면 훨씬 더 자신감이 붙을걸?"

페리스의 꼬드김에 넘어간 피터는 Rustlings를 내려 받는다.

install

curl 명령어를 통해 설치할 수도 있지만
문제를 푼 결과물을 github 저장소에 올려 놓기 위해
fork/clone으로 내려 받아 설치하는 방법을 택했다.

그 방법은 README에 친절하게 나와 있으며
다음은 단지 그 저장소를 fork 뜬 저장소로 변경했을 뿐이다.

$ git clone https://github.com/neont21/rustlings
$ cd rustlings
$ git checkout tags/4.0.0
$ cargo install --force --path .

how to

설치 후 사용법 역시 README에서 확인할 수 있다.
연습문제들은 exercises/ 디렉토리 안에 카테고리 별로 들어 있으며
다음 명령어를 통해 권장 순서대로 풀어볼 수 있다.
// 이 명령어는 프로젝트 디렉토리의 루트 디렉토리에서 실행해야 한다.

$ rustlings verify

rustlings verify 명령어를 입력하면 권장 순서대로 맨 앞에서부터 검증을 시작한다.
성공한 연습문제에 대해서는
Successfully ran 또는 Successfully tested를 띄우며 넘어가고
실패한 연습문제를 마주치면 멈추고 그 결과를 띄운다.
성공한 경우에 대해서도 // I AM NOT DONE 주석을 지우지 않으면 다음으로 넘어가지 않는다.

그리고 특정한 연습문제에 대해서 성공 여부를 확인하기 위해서는
마찬가지로 프로젝트 루트 디렉토리에서 다음 명령어를 실행하면 된다.

$ rustlings run 문제이름

문제 이름은 exercises/variables/variables1.rs로 치면
variables1을 입력하면 된다.
푼 문제가 많아질수록 앞 부분에 대한 성공 문구를 생략하기 위해 유용하게 사용된다.

Rustlings에서 권장하는 순서를 따르면 다음과 같은 순서로 연습문제를 풀어볼 수 있다.

  • variables
  • if
  • functions
  • quiz1
  • primitive_types
  • structs
  • strings
  • quiz2
  • enums
  • tests
  • quiz3
  • modules
  • macros
  • quiz4
  • move_semantic
  • error_handling (errorsn)
  • option
  • error_handling (result)
  • clippy
  • standard_library_types (box -> arc -> iterator)
  • traits
  • generics
  • threads
  • conversions

result

때로는 앞 문제와 연관되는 문제도 있는데
앞 문제에서의 이슈는 해결된, 다른 부분에서 작동하지 않는 코드가 다음 문제로 나오는 것이다.
그런데 거기서 앞 문제를 훨씬 효율적이고 좋은 방법으로 처리한 걸 보면...

🐧 Peter | "이이이이...거 분명 배웠던건데......"

🦀 Ferris | "그치만 써먹지 못했는걸?ㅎ"

🐧 Peter | "하지만 배운 것에 대한 배우지 않은 응용은 재밌었어."

🦀 Ferris | "삽질 되게 많이 하더라? 네 포스팅이랑 공식문서 계속 찾아보던걸"

🐧 Peter | "그러면서 배우는거지...! 본 적도 없는 트레이트들도 종종 있었고... 그리고 구글과 공식문서는 개발자의 친구거든☆"

🦀 Ferris | "아무튼 그럼 이제 Rust로 작성된 프로젝트에 기여할 수 있는거지?"

🐧 Peter | "아주 자신 있는 건 아니지만... 도전은 해볼 수 있을 것 같아!"

그렇게 피터는 점점 더 러스타시안의 길로 빠져 든다... Fin.

profile
Peter J Online Space - since July 2020

0개의 댓글