Rust는 게으른 개발자를 위한 웹 프레임워크가 필요함
- Rust로 웹을 개발할 때 Django와 같은 프레임워크가 없어 많은 작업을 직접 해야 하는 문제점이 있음
- Rust의 장점인 타입 시스템, 성능, 빌드 시간을 활용하기 위해서는 웹 개발을 쉽게 해줄 프레임워크가 필요함
필요한 기능
-
라우팅/핸들러: 요청을 처리할 핸들러로 연결하는 기능이 필요함
-
템플릿: HTML 및 JSON과 같은 콘텐츠를 생성할 수 있어야 함
-
정적 파일 제공: CSS 파일과 같은 자산을 제공하는 기능이 필요함
-
로그인: 다중 사용자 앱을 위해 로그인 기능이 필요함
-
권한 관리: 사용자별로 접근 권한을 관리할 수 있어야 함
-
데이터베이스 인터페이스: 데이터를 저장하고 관리할 수 있는 기능이 필요함
-
관리 도구: 기본적인 관리 작업을 지원하는 도구가 필요함
-
웹소켓: 실시간 데이터 전송을 위한 웹소켓 기능이 필요함
-
핫 리로딩: 코드 변경 시 즉시 반영되는 기능이 필요함
추가적으로 필요한 기능
-
백그라운드 작업: 일정에 따라 작업을 수행할 수 있는 기능이 필요함
-
모니터링/관측성: 시스템 상태를 모니터링할 수 있는 기능이 필요함
-
캐싱: 성능 향상을 위한 캐싱 기능이 필요함
-
이메일 및 알림: 비밀번호 재설정과 같은 기능을 지원하는 알림 기능이 필요함
-
배포 도구: 일관된 배포 방법이 필요함
-
CSS/JS 번들링: CSS와 JS 파일을 효과적으로 관리할 수 있는 기능이 필요함
기존 생태계
-
웹 프레임워크: actix-web, axum과 같은 최소한의 기능을 제공하는 프레임워크가 존재함
-
라이브러리 모음: 템플릿, 로그인, 권한 관리 등을 위한 다양한 라이브러리가 존재하지만 통합된 솔루션은 부족함
새로운 웹 툴킷
-
nicole's web toolkit (newt): 다양한 기능을 통합한 웹 툴킷을 개발 중임
-
목표: 새로운 웹 앱을 빠르게 시작할 수 있도록 지원하는 것임
-
계획: 기존의 빌딩 블록을 사용하여 통합된 솔루션을 제공할 예정임
GN⁺의 정리
- Rust로 웹 개발을 쉽게 하기 위한 통합된 웹 프레임워크의 필요성을 강조함
- 기존의 웹 프레임워크와 라이브러리의 한계를 극복하고자 하는 시도를 소개함
- nicole's web toolkit (newt)을 통해 다양한 기능을 통합하여 개발자 경험을 향상시키고자 함
- Django와 같은 프레임워크의 장점을 Rust 생태계에 도입하려는 시도가 주목할 만함
- 비슷한 기능을 제공하는 다른 프로젝트로는 actix-web, axum 등이 있음