이번 시간에는 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 소스코드에 추가하여 이를 가리키도록 하는 방법입니다.
- 현재
├── main
│ └── main.rs
- 변경 후
├── client
│ ├── api
│ ├──── character.rs
│ ├──── mod.rs
│ └── main.rs
main.rs
에서 선언된 사용자 관련 api를 api/character.rs
에 옮기고 character.rs
를 가리킬 수 있도록 mod.rs
에 추가한 뒤, main.rs
에서 mod api;
를 통해 선언하여 활용합니다.
이렇게 하면 main.rs
에서 가리키는 get_ocid
, get_user_default_info
를 mod api
를 통해 character.rs
의 함수를 호출하여 사용하게 됩니다.
https://doc.rust-kr.org/ch07-00-managing-growing-projects-with-packages-crates-and-modules.html
커져 가는 프로젝트를 패키지, 크레이트, 모듈로 관리하기 - The Rust Programming Language
거대한 프로그램을 작성할 때는 코드의 구조화가 무척 중요해집니다. 코드에서 연관된 기능을 묶고 서로 다른 기능을 분리해 두면 이후 특정 기능을 구현하는 코드를 찾거나 변경할 때 헤매지
doc.rust-kr.org
다음 시간에는 몇가지 기능을 추가 개발하면서, rust에는 없는 null관련 데이터를 가져오는 방법에 대해 배워보도록 하겠습니다.
'Rust > 프로젝트' 카테고리의 다른 글
Rust로 백엔드 개발기(feat. 메이플스토리) - 08 사용자별 요청 처리 (0) | 2025.03.31 |
---|---|
Rust로 백엔드 개발기(feat. 메이플스토리) - 07 Null 제외하는 방법 (0) | 2025.03.31 |
Rust로 백엔드 개발기(feat. 메이플스토리) - 05 전역변수 (0) | 2025.03.23 |
Rust로 백엔드 개발기(feat. 메이플스토리) - 04 캐릭터 정보 조회 (0) | 2025.03.13 |
Rust로 백엔드 개발기(feat. 메이플스토리) - 03 OPEN API (0) | 2025.03.13 |
댓글