GN⁺: Rust는 게으른 개발자를 위한 웹 프레임워크가 필요함
(ntietz.com)- 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 등이 있음
Hacker News 의견
-
Rust를 사용하여 최소한의 노력으로 재미있는 것을 만드는 것을 좋아하는 사람의 의견임. Rust는 효율성과 메모리 관리가 뛰어나지만, 웹 개발에는 Go나 Django가 더 적합하다는 의견임
-
Rust는 안전성을 제공하여 개발자가 실수를 줄일 수 있게 해주며, Notepad와 같은 간단한 도구로도 코드를 작성할 수 있는 장점이 있음
-
웹 프레임워크로서 Rocket은 "게으른 개발자"에게 적합한 최고의 프레임워크라는 의견임
-
Rust의 패턴 매칭 기능을 활용하면 라우터가 필요 없으며, 인증은 언어나 프레임워크의 문제가 아니라는 의견임
-
CSS/JS 도구는 Rust 프론트엔드 프레임워크에 적합하지 않으며, Rust는 프론트엔드 웹에서도 충분히 성숙하다는 의견임
-
Rocket 프레임워크가 언급되지 않은 것에 놀랐으며, Rocket은 "배터리 포함" 프레임워크로서의 목표를 가지고 있다는 의견임
-
Rust로 웹 개발을 하는 것은 괜찮지만, 동시성 문제가 있으며, 컴포넌트 라이브러리를 선택하는 것이 어렵다는 의견임
-
Flutter를 사용하여 UX를 개선하고 있으며, Rust와의 통합이 쉬워 만족스럽다는 의견임
-
Flutter는 DOM을 존중하지 않지만, 어디서나 배포할 수 있는 UX를 쉽게 만들 수 있어 매력적이라는 의견임
-
Poem은 FastAPI와 유사하며, 초기 설정에 많은 보일러플레이트가 필요하다는 의견임
-
'게으른'이라는 표현은 웹 프레임워크가 일반적인 작업을 처리해주길 바라는 의미로 사용되었으며, 실제로는 많은 작업이 필요하다는 의견임
-
loco-rs, poem, rocket과 같은 프로젝트는 이미 "배터리 포함" 경험을 제공하며, CLI가 이를 안내해준다는 의견임
-
F#은 Rust와 유사한 타입 시스템과 도구를 제공하지만, 비동기 처리와 메모리 관리가 덜 복잡하다는 의견임
-
저자는 Rust를 위한 Spring Boot와 같은 프레임워크를 원한다는 의견임