Rust - 라이브러리 가져오기
포스트
취소

Rust - 라이브러리 가져오기

관련 레포: https://github.com/in63119/Core-practice



2-2. 크레이트(외부 라이브러리) 가져오기

지난 번 크레이트를 추가하는 공부를 하면서 sha2라는 크레이트를 설치했다.

Rust - 라이브러리 추가

이번에는 이 sha2크레이트를 내 코드에 불러오는 것을 해보자.
크레이트를 불러오는 코드는 다음과 같다.

1
2
3
4
5
use sha2::{Sha256, Digest}; // sha2 불러오기

fn main() {
    println!("Hello, world!"); // sha2를 사용하는 부분은 다음 포스트에서...
}

Rust에서 모듈, 크레이트, 함수, 타입 등을 현재의 스코프로 가져올 때는 use 키워드를 사용한다.

위의 코드에서는 sha2 크레이트의 Sha256, Digest를 가져온다는 내용이다.

여기서 :: 기호는 ‘namespace 연산자’ 또는 ‘경로 지정자’라는 이름으로, Rust에서 모듈이나 크레이트의 ‘내부’로 들어가 해당 스코프 내의 특정 요소들에 접근할 수 있게 해준다.

궁금한 점!! =::은 어떤 차이가 있을까??

  • ’=’ 연산자 ‘=’는 대입 연산자로 사용된다. 이 연산자는 오른쪽 피연산자의 값을 왼쪽 피연산자(보통 변수)에 할당하는 데 사용된다.
  • ’::’ 연산자 ‘::’는 ‘경로 지정자’ 또는 ‘namespace 연산자’로, 모듈, 크레이트, 타입 또는 특정 스코프 내의 요소에 접근할 때 사용된다.

즉, ’=’는 값이나 표현식을 변수에 할당할 때 사용되고, ‘::’는 모듈이나 타입의 멤버에 접근할 때 사용된다.



익숙한 Javascript 코드로 변경해보면 다음과 같다.

1
2
3
4
5
6
7
8
9
10
/*
    rust 코드
    use sha2::{Sha256, Digest};
*/

// ES6(ES2015) 이후의 JavaScript에서 import 문은 모듈에서 특정 기능을 가져오는 코드
import { Sha256, Digest } from "sha2";

// CommonJS 모듈 시스템(주로 Node.js에서 사용)에서 require 함수는 모듈 전체를 가져오거나 모듈의 특정 부분을 추출하는 데 사용되는 코드
const { Sha256, Digest } = require("sha2");
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.