본문 바로가기
컴퓨터 활용(한글, 오피스 등)/기타

러스트로 웹 애플리케이션 개발하기

by 3604 2024. 3. 10.
728x90

출처;

[Rust 교육] 러스트로 웹 애플리케이션 개발하기

러스트는 안정성과 성능을 중심으로 하는 시스템 프로그래밍 언어입니다. 웹 애플리케이션 개발에도 사용될 수 있습니다. 이 포스트에서는 Rocket을 사용하여 러스트로 웹 애플리케이션을 만드는 방법에 대해 자세히 알아보겠습니다.

 

1. 라이브러리 선택 : Rocket 설치

Rocket은 러스트로 웹 애플리케이션을 만들 때 사용되는 인기 있는 웹 프레임워크입니다.

`Cargo.toml` 파일에 다음과 같이 추가합니다.

[dependencies]
rocket = "0.4"

 

2. 기본 웹 서버 설정

Rocket으로 간단한 웹 서버를 만들어 보겠습니다.

#![feature(proc_macro_hygiene, decl_macro)]

#[macro_use] extern crate rocket;

// 기본 경로에 대한 핸들러 함수
#[get("/")]
fn index() -> &'static str {
    "Hello, World!"
}

fn main() {
    // 웹 서버 초기화 및 라우트 설정
    rocket::ignite().mount("/", routes![index]).launch();
}

 

3. 동적 라우팅

사용자의 이름을 URL 경로로 받아 인사말을 반환하는 기능을 추가해 보겠습니다.

// 이름을 동적으로 받아 인사 메시지 반환
#[get("/<name>")]
fn hello(name: String) -> String {
    format!("Hello, {}!", name)
}

 

4. 템플릿 사용하기

Rocket은 `Rocket_contrib` 패키지를 통해 템플릿을 지원합니다. 여기서는 `tera` 템플릿 엔진을 사용하겠습니다.

먼저, `Cargo.toml`에 다음과 같이 추가합니다.

[dependencies]
rocket_contrib = { version = "0.4", features = ["tera_templates"] }

 

그 다음, 템플릿을 사용하는 코드를 작성합니다.

use rocket_contrib::templates::Template;
use std::collections::HashMap;

// 템플릿에 데이터를 전달하여 렌더링
#[get("/greet/<name>")]
fn greet(name: String) -> Template {
    let mut context = HashMap::new();
    context.insert("name", name);
    Template::render("greeting", &context)  // "greeting"은 templates 폴더 내의 greeting.tera 파일을 참조합니다.
}

 

이제 `templates` 폴더 내에 `greeting.tera` 파일을 만들어 템플릿을 작성합니다.

Hello, {{ name }}!

 

마치며 러스트와 Rocket를 사용하면, 안정적이면서도 빠른 웹 애플리케이션을 손쉽게 개발할 수 있습니다. 이 포스트에서는 기본적인 웹 애플리케이션 개발 방법만을 다루었으므로, 더 많은 기능과 활용 방법을 알아보려면 공식 문서를 참고하세요.

728x90
반응형

'컴퓨터 활용(한글, 오피스 등) > 기타' 카테고리의 다른 글

Emacs Utilities  (0) 2024.03.10
[비공개] rust 문법  (0) 2024.03.10
rust 사용법  (0) 2024.03.09
rust Visual Studio Code + Rust 환경 구축  (0) 2024.03.09
Emacs 사용법  (0) 2024.03.08