[rust] 러스트 코드의 모듈화와 추상화

러스트는 안정적이고 안전한 시스템 소프트웨어를 만들기 위한 언어로, 모듈화와 추상화를 통해 코드의 구조화와 유지 보수를 용이하게 합니다.

모듈화(Modularity)

모듈화는 관련된 기능을 모듈로 묶어서 코드를 구조화하는 것을 의미합니다. 러스트에서는 mod 키워드를 사용하여 모듈을 정의하고, 파일 시스템의 디렉토리 구조와 일치시키는 것이 관례입니다.

// 모듈 정의
mod my_module {
    // 모듈 내에 포함된 함수
    pub fn my_function() {
        // 함수의 내용
    }
}

위의 예제에서 my_module은 모듈을 정의하고, my_function은 해당 모듈 내에서 공개(public)되는 함수입니다.

추상화(Abstraction)

추상화는 세부적인 구현을 숨기고 필수적인 부분에만 집중하는 것을 의미합니다. 러스트는 trait와 impl 키워드를 사용하여 추상화를 지원합니다.

// 추상화를 통한 메소드 정의
trait Animal {
    fn make_sound(&self);
}

// 구현
struct Dog;

impl Animal for Dog {
    fn make_sound(&self) {
        println!("멍멍");
    }
}

위의 예제에서 Animal 트레이트는 make_sound 메서드를 정의하고, Dog 구조체는 Animal 트레이트를 구현하여 make_sound 메서드를 가지게 됩니다.

이러한 모듈화와 추상화는 러스트 코드의 구조화와 유지 보수를 용이하게 하며, 안정적이고 안전한 시스템 소프트웨어를 개발하는 데 도움을 줍니다.

이러한 모듈화와 추상화의 중요성에 대해 [1]링크를 통해 더 자세히 알아볼 수 있습니다.

[1] https://doc.rust-lang.org/book/ch07-00-managing-growing-projects-with-packages-crates-and-modules.html