덕후들이 사랑하는 거래 공간
납작한 것만 취급하는 오타쿠 전용 중고거래 서비스
조혜린 | 김한열 | 박어진 | 조호근 |
---|---|---|---|
|
|
|
|
1️⃣ 덕후 취향 반영 온보딩
- 관심 장르를 직접 설정하고 취향에 딱 맞는 아이템들을 한눈에 확인해요
- 개인 맞춤 상품 추천으로 취향 저격 아이템을 발견해보세요
2️⃣ 500여개 장르로 세분화된 상세 탐색
- 불편한 검색은 이제 그만! 애니메이션, 게임 등 세분화된 장르로 더욱 편리하고 정확하게 상품을 찾아봐요
- 검색, 필터 기능을 통해 원하는 장르 및 아이템을 쉽고 정확하게 탐색해보세요
3️⃣ 원하는 상품은 '구해요'에서 쉽게 찾고, 팔고 싶은 굿즈는 '팔아요'에서 빠르게 거래해요
- (‘팔아요’와 ‘구해요’ 카테고리를 통해) 거래 목적에 맞게, 보다 편리하고 확실하게 거래해보세요
4️⃣ 덕후들의 거래 방식에 딱 맞는 등록 시스템!
- 원하는 아이템을 구하기 위해 매일 검색하거나 찾아다니지 않아도 돼요!
- 장르 설정부터 상품 상태 설정까지, 빠르고 간편한 거래가 가능해요
- 가격 제시 버튼과 원하는 가격대 설정 기능으로 위시템을 구할 수 있어요
5️⃣ 나만의 덕질 마켓
- 자신만의 독특한 스타일로 마켓의 개성을 드러낼 수 있어요
- 관심 장르, 소개글, 프로필 이미지로 직접 커스텀하여 나만의 마켓을 꾸며보세요
Purpose | Version | |
---|---|---|
SwiftUI | 코드의 간결성과 직관성을 통해 빠르고 쉽게 사용자 인터페이스를 설계하고 유지보수가 가능 | |
Moya | 간결한 네트워크 요청과 구조화된 관리 방식으로 코드 가독성과 유지보수성 향상 | |
Kingfisher | 효율적인 이미지 다운로드 및 캐싱을 통해 네트워크 이미지 로딩 성능 향상 |
SwiftUI의 선언적 UI와 데이터 바인딩 시스템을 최대한 활용하기 위해 저희는 MV(Model-View) 패턴을 채택했습니다. 복잡한 MVVM 아키텍처를 배제하고 @State와 @Binding을 활용한 데이터와 UI 간의 자동 동기화를 통해 간결하고 효율적인 코드베이스를 유지합니다.
이 접근 방식은 불필요한 레이어를 제거하여 개발 속도를 극대화하는 동시에 단순함 속에서도 유지보수성과 확장성을 자연스럽게 확보하는 것을 도와줍니다. 특히 추가적인 ViewModel 레이어 없이도 SwiftUI만으로 효과적인 상태 관리를 구현할 수 있습니다.
Naming:
- 타입: UpperCamelCase
- 변수/상수: lowerCamelCase
- 약어(URL/ID/API): 대문자
Structure:
- Protocol → extension으로 분리
- import: 내장 먼저, 서드파티는 한 줄 띄움
- 90자 초과시 줄바꿈
Image:
- icn_/btn_/img_ 접두어
- snake_case
- SVG 우선
self/강제 언래핑 지양, 긴 View는 extension으로 분리
📁 Project
├── 📁 Applacation
│ ├── 📁 Preview Content
│ ├── Napzakmarket_iOSApp.swift
├── 📁 Global
│ ├── 📁 Modifier
│ ├── 📁 Extensions
│ ├── 📁 Components
│ ├── 📁 Literals
│ │ ├── StringLiterals.swift
│ │ ├── FonrLiterals.swift
│ └── 📁 Resources
│ ├── Font
│ └── Assets.xcassets
├── 📁 Network
│ ├── 📁 Base
│ └── 📁 Domain
│ ├── 📁 DTO
│ │ ├── 📁 Request
│ │ └── 📁 Response
│ ├── Domain1API.swift
│ └── Domain1Service.swift
└── 📁 Presentation
├── 📁 Splash
│ ├── 📁 Model
│ └── 📁 View
│ └── SplashView.swift
├── 📁 Onboarding
│ ├── 📁 Model
│ └── 📁 View
│ └── OnboardingView.swift
├── 📁 Home
│ ├── 📁 Model
│ └── 📁 View
│ └── HomeView.swift
├── 📁 Search
│ ├── 📁 Model
│ └── 📁 View
│ └── SearchView.swift
├── 📁 Register
│ ├── 📁 Model
│ └── 📁 View
│ └── RegisterView.swift
├── 📁 Detail
│ ├── 📁 Model
│ └── 📁 View
│ └── DetailView.swift
├── 📁 Mypage
│ ├── 📁 Model
│ └── 📁 View
│ └── MypageView.swift
└── 📁 Tabbar
├── 📁 Model
└── 📁 View
└── TabbarView.swift