본문 바로가기
IT/Rust

Rust 기반 프레임워크 소개 및 실습

by bamcong 2025. 3. 1.
728x90
반응형

안녕하세요!

오늘은 Rust 언어를 기반으로 한 웹 프레임워크인 Axum , Actix Web , 그리고 데스크탑 애플리케이션을 만드는 데 사용되는 Tauri 를 소개하고, 간단한 실습 예제를 통해 각 프레임워크의 특징을 살펴보겠습니다.

Rust Programming Language

Rust 언어와 웹 프레임워크

Rust는 메모리 안전성과 성능을 중시하는 시스템 프로그래밍 언어입니다.

웹 개발을 위한 프레임워크들도 이러한 Rust의 장점을 살려 높은 성능과 안정성을 제공합니다.

각각의 프레임워크는 그 특성에 따라 다양한 장점과 유스케이스를 가지고 있습니다.

이제 구체적으로 각각의 프레임워크를 살펴보겠습니다.

1. Axum

Axum은 Tokio 기반의 async/await 기능을 활용하는 경량 웹 프레임워크입니다.

Axum의 가장 큰 장점은 타입 안전성 모듈성 입니다.

즉, 요청과 응답을 강력하게 타입 체크할 수 있고, 필요한 기능만 모듈화하여 사용할 수 있습니다.

아래는 Axum을 이용한 간단한 웹 서버 예제입니다.

use axum::{
    routing::{get, Router},
    response::Html,
};
use std::net::SocketAddr;

async fn root() -> Html<&'static str> {
    Html("<h1>Hello, Axum!</h1>")
}

#[tokio::main]
async fn main() {
    let app = Router::new().route("/", get(root));

    let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
    println!("Listening on {}", addr);
    axum::Server::bind(&addr)
        .serve(app.into_make_service())
        .await
        .unwrap();
}

Hello, Axum!

위 코드를 실행하면, 브라우저에서 http://localhost:3000 에 접속하여 "Hello, Axum!"을 확인할 수 있습니다.

2. Actix Web

Actix Web은 Rust의 또 다른 웹 프레임워크로, 성능이 매우 뛰어난 것으로 유명합니다. Actix Web은 매우 유연한 라우팅 시스템과 강력한 비동기 처리 기능을 제공합니다.

다음은 Actix Web을 사용하여 간단한 웹 서버를 만드는 코드입니다:

use actix_web::{web, App, HttpServer, HttpResponse};

async fn index() -> HttpResponse {
    HttpResponse::Ok().body("<h1>Hello, Actix Web!</h1>")
}

#[actix_web::main]
async fn main() -> std::io::Result<()> {
    HttpServer::new(|| {
        App::new().route("/", web::get().to(index))
    })
    .bind("127.0.0.1:8080")?
    .run()
    .await
}

 

위의 코드를 통해 http://localhost:8080 에서 Actix Web 서버를 확인할 수 있으며, "Hello, Actix Web!" 메시지를 보여줍니다.

3. Tauri

Tauri는 웹 기술을 활용하여 경량화된 데스크탑 애플리케이션을 만들 수 있는 프레임워크입니다. Tauri는 Rust를 백엔드 언어로 사용하여 성능을 높이고, HTML/CSS/JavaScript를 사용하여 UI를 구성할 수 있습니다.

Tauri 애플리케이션을 생성하기 위한 초기 설정은 다음과 같습니다:

cargo install tauri-cli
tauri init

 

그 후, src-tauri/src/main.rs 파일에서 아래와 같이 Tauri 애플리케이션을 설정할 수 있습니다:

use tauri::Manager;

fn main() {
    tauri::Builder::default()
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

이제 여러분은 Tauri를 통해 웹 기술로 디자인한 UI를 활용한 데스크탑 애플리케이션을 만들 수 있습니다.

결론

이처럼 Axum, Actix Web, Tauri 각각의 프레임워크는 다양한 방식으로 Rust의 장점을 통해 웹 및 데스크탑 애플리케이션 개발에 기여하고 있습니다. 성능이 중요한 웹 서비스나 데스크탑 애플리케이션을 만들고자 하신다면, Rust를 고려해보시는 것도 좋은 선택이 될 것입니다.

 

이러한 프레임워크들이 여러분의 개발에 많은 도움이 되길 바랍니다.

728x90
반응형

'IT > Rust' 카테고리의 다른 글

Rust 언어의 조건문 소개 및 예제  (0) 2025.03.05
Rust에서의 반복문 구현 방법  (0) 2025.03.02
Rust로 Hello World 예제  (0) 2025.03.02
Rust로 WebAssembly(WasM) Hello, World 예제  (0) 2025.03.01