Skip to content

ModaProject-Team/Moda

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

모다

IMG_2848 2 IMG_2845 IMG_2850 IMG_2834
구분 내용
팀 인원 iOS 개발 3명, 백엔드 1명
기획 및 개발 기간 2025.11 - 2025.11 (3주, 핵심 개발 기간 3주)
최소 지원 버전 iOS 17.0+

핵심 기능

  • 친구 기반 물품 거래
  • 이미지/ 동영상 물품 정보 입력
  • 지도 기반 물품 검색
  • 실시간 1: 1 채팅
  • 카드 결제 (PG 결제)

기술 스택

분류 기술 스택
UI Framework SwiftUI
Architecture MVI Combine
Database Realm
Networking URLSession SocketIO
Caching NSCache Custom_Implementation
Authentication KakaoSDK
Payment iamport
Apple Frameworks MapKit CoreLocation PhotosUI AVFoundation CoreImage
보안 Keychain CryptoKit
광고 Google AdMob

MVI + Combine

  • 코드를 Store, Intent, State, View로 분리하여 MVI 단방향 플로우 구현
  • Combine을 활용한 반응형 시스템 구현

Networking

Interceptor 패턴 기반 커스텀 토큰(JWT) 갱신 시스템

  • accessToken 만료(419) 시 refreshToken으로 자동 갱신
  • Continuation 활용한 Race Condition 방지
  • 토큰 Keychain 암호화 저장

Router 패턴 기반 API Endpoint

  • Multipart/form-data 파일 업로드(이미지, 동영상)
  • NetworkMonitor로 실시간 연결 상태 감지 및 네트워크 불안정 시 클라이언트 에러 자동 재시도

Caching System

  • 이미지, 동영상을 메모리(NSCache) + 디스크 캐싱(FileManager)로 구현
  • 비디오 메타데이터 캐싱 지원
  • 동영상 스트리밍 + 캐시 백그라운드 다운로드 병행 처리
  • 다운샘플링으로 메모리 사용 최적화
  • 화면 전환 시 캐싱 취소 및 자동 재시도

주요 기능

채팅

IMG_2832 IMG_2850
  • 오프라인에서도 이전 채팅 내역 조회
  • 이미지 전송
  • 네트워크 끊김 시 자동 재전송
  • 실패 시 재전송/삭제 버튼 제공

홈 피드

IMG_2846 IMG_2847
  • 이미지 / 동영상 지원
  • 동영상 자동 재생(206 partial content)
  • cursor 기반 페이지네이션
  • 좋아요 기능(낙관적 UI)
  • 구글 AdMob 광고

지도 검색

IMG_2838 IMG_2837
  • 현재 위치 기반 게시글 표시
  • 줌 레벨별 클러스터링

상품 업로드

IMG_2796 IMG_2835
  • 이미지 / 동영상 업로드 지원(Multipart/form-data)
  • 썸네일 선택 지원
  • 업로드 시 이미지 / 동영상 자동 압축

상품 상세

IMG_2847 IMG_2833
  • 상품 정보 불러오기
  • 댓글 시스템
  • 거래 위치 지도 표시
  • 관련 상품 추천
  • PG사 결제 및 영수증 검증

프로필

IMG_2815 IMG_2840
  • 오프라인 환경에서 프로필/친구 목록 조회
  • 로그아웃 시 전체 데이터 삭제

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages