실제 웹 개발 프로젝트 사례 연구: 캠퍼스 중고 거래 플랫폼
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- 대상자: 초보 웹 개발자 (Rust 및 현대 웹 프레임워크 학습 중인 자바스크립트/파이썬 개발자)
- 난이도: 중급 (Rust 기반 프레임워크 사용, 동시성 처리, 보안 구현 포함)
핵심 요약
- 프레임워크 기반:
Hyperlane
프레임워크를 사용한 Rust 기반 웹 애플리케이션 구현 - 핵심 기능:
- JWT 인증 시스템 (jsonwebtoken
라이브러리 활용)
- 실시간 메시지 전송 및 이미지 처리 (Redis 및 PostgreSQL 연동)
- 동시성 처리 (1000+ 사용자 지원)
- 기술 스택: Rust, Hyperlane, PostgreSQL, Redis, JWT
섹션별 세부 요약
1. 프로젝트 개요
- 캠퍼스 중고 거래 플랫폼 구축
- 주요 기능: 사용자 등록/로그인, 상품 등록, 실시간 채팅, 결제 연동, 이미지 업로드
- 기술 요구사항:
- 동시 1000명 이상 사용자 지원
- 실시간 메시지 푸시
- 이미지 처리 및 저장
- 사용자 인증/인가
- 데이터베이스 트랜잭션 처리
- 제3자 결제 연동
2. 프레임워크 기반 아키텍처 설계
hyperlane::*
모듈 사용- 데이터 모델 정의:
```rust
struct User { id: Uuid, username: String, ... }
enum ProductStatus { Available, Sold, Reserved, ... }
```
- 글로벌 상태 관리:
```rust
static mut APP_STATE: Option
```
3. JWT 인증 시스템 구현
jsonwebtoken
라이브러리 사용- 인증 흐름:
- 사용자 등록 시
bcrypt
를 사용한 비밀번호 해싱 - 토큰 생성:
```rust
encode(&Header::default(), &claims, &EncodingKey::from_secret(...))
```
- 미들웨어 기반 인증 검증:
```rust
decode::
```
4. 이미지 처리 및 업로드 구현
- 이미지 처리 라이브러리:
image
- 업로드 제한:
- 파일 크기 제한: 5MB
- 허용 포맷: JPEG, PNG, WebP
- 이미지 저장 경로:
```rust
let user_dir = format!("{}/{}", upload_dir, user_id);
fs::create_dir_all(&user_dir).await?;
```
결론
- 실무 팁:
- Hyperlane
프레임워크는 동시성 처리 및 확장성에 유리
- jsonwebtoken
+ bcrypt
조합으로 보안 강화
- 이미지 처리 시 image
라이브러리 사용 시 파일 크기/포맷 제한 필수
- Redis + PostgreSQL 연동으로 실시간 기능 구현 가능