Rust 기반 캠퍼스 중고 플랫폼 웹 개발 사례 연구
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

실제 웹 개발 프로젝트 사례 연구: 캠퍼스 중고 거래 플랫폼

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

  • 대상자: 초보 웹 개발자 (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 = None;

```

3. JWT 인증 시스템 구현

  • jsonwebtoken 라이브러리 사용
  • 인증 흐름:
  1. 사용자 등록 시 bcrypt를 사용한 비밀번호 해싱
  2. 토큰 생성:

```rust

encode(&Header::default(), &claims, &EncodingKey::from_secret(...))

```

  1. 미들웨어 기반 인증 검증:

```rust

decode::(token, &DecodingKey::from_secret(...), ...)

```

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 연동으로 실시간 기능 구현 가능