728x90 반응형 Open API6 Rust로 백엔드 개발기(feat. 메이플스토리) - 09 Main 함수 정리 이번 시간에는 main함수에 선언한 불필요한 내용들을 분리하는 방법에 대해 배워보고자 합니다. 현재 개발중인 프로젝트의 main.rs에는 다음과 같이 매우 복잡하게 작성되어져 있습니다.#[tokio::main]async fn main() { // TODO : VEC 형식으로 가져오는 값 자체가 null인 경우 예외처리 하기 let app = Router::new() .route("/getOcid", post(get_ocid)) ... .layer(Extension(api_key)) .layer(cors); let listener = tokio::net::TcpListener::bind("{ip}:{port}").await.unwrap();.. 2025. 4. 2. Rust로 백엔드 개발기(feat. 메이플스토리) - 06 프로젝트 분리 이번 시간에는 api 관련 함수가 많아짐에 따라, main과 같이 작성될 경우, main.rs가 엄청 길어질 것으로 예상되어 함수를 분리하는 내용에 대해 다뤄보고자 합니다.현재 상태현재 main.rs에 main, get_ocid, get_user_default_info 함수가 함께 존재합니다. maple open api의 사용자 관련 api들의 개수는 대략 10개이상으로 이 모든 함수를 main에 구현하게 된다면, 매우 복잡해질 것으로 예상됩니다. 또한 추후에 사용자 뿐만 아니라 다른 api들도 추가하게 된다면, main에 30개가량의 api관련 함수들이 모두 같이 존재하게 되죠개선 방법?현재 상태에서 개선하는 방법으로는 main을 제외한 함수들을 다른 .rs 소스코드에 추가하여 이를 가리키도록 하는 방.. 2025. 3. 26. Rust로 백엔드 개발기(feat. 메이플스토리) - 05 전역변수 이번 시간에는 api_key를 외부에서 적용하는 방법과 ocid를 전역변수로 다루는 방법에 대해 알아보고자 합니다.API KEY를 argument로 받는 방법java에서는 default로 argument를 받습니다.public static void Main(String[] args){}그치만 rust에서는 argument를 받지 않는 이상 cargo run을 통해 실행이 됩니다. 만약 여기서 argument를 받게 된다면 cargo run {argument} 형식으로 받을 수 있습니다. main 함수에서 다음과 같이 argument를 받아올 수 있습니다.async fn main() { let args: Vec = std::env::args().collect();}저희는 argument로 api_ke.. 2025. 3. 23. Rust로 백엔드 개발기(feat. 메이플스토리) - 04 캐릭터 정보 조회 이전 시간에는 maple story open api를 발급받는 방법에 대해서 다뤄보았습니다. 이번 시간에는 이전에 다뤄본 open api를 rust 프로젝트에서 사용하는 방법에 대해서 다뤄보고자 합니다.axum에서 api 통신기본적으로 axum은 서버로, rest api로 요청이 들어오는 경우, 해당 요청을 수행한 후 결과를 전달하는 역할을 합니다. 따라서, 서버에서 다른 서버로 rest api 통신을 진행하기 위해서는 axum이 아닌 다른 라이브러리를 사용해야 합니다. 해당 프로젝트에서는 "reqwest"를 사용하도록 하겠습니다. 다음과 같이 "Cargo.toml"의 "dependencies"에 추가해 줍니다.reqwest = { version = "0.11", features = ["json"] }캐.. 2025. 3. 13. 이전 1 2 다음 728x90 반응형