Skip to content

Latest commit

 

History

History
263 lines (215 loc) · 8.28 KB

File metadata and controls

263 lines (215 loc) · 8.28 KB

image

스크린샷 2026-02-09 오후 10 52 50

🌀 포티 소개

흩어진 분철 정보와 불투명한 참여 현황을 정리해, 원하는 분철을 빠르고 투명하게 참여할 수 있도록 돕는 서비스

분철이란?

팬덤 문화에서 원하는 멤버의 굿즈를 갖기 위해 물품을 공동 구매하여 나누는 행위

현재의 분철은 플랫폼 이동 + 반복 소통이 필수인 비효율적인 구조

  • 분철 정보가 여러 곳에 흩어져 있어 탐색이 어렵습니다.
  • 진행 상황을 수동으로 체크하고, 입금/배송 상태를 개인의 기억에 의존해야 합니다.
  • 신뢰 판단 기준이 없어 모집자와 참여자 모두 피로도가 높습니다.

포티는 이렇게 해결해요

  1. 검색의 비효율 -> 옵션 기반 검색 · 아이돌 굿즈 추천 시스템으로 해결합니다.
  2. 진행 관리의 불편함 -> 진행 상황 상태바 · 참여자 관리 페이지로 해결합니다.
  3. 신뢰와 안전에 대한 불안 -> EMA 별점 시스템 도입 · 거래 이력 기반 신뢰도 시스템으로 해결합니다.

🌀 포티 주요기능

주요기능

iOS Developers <~ing>

김나연 김수민
iOS Lead Developer iOS Developer

iOS Developers <~ed>

박정환 이서현
iOS Developer iOS Developer

🛠️ Tech Stack & Library

기술 / 라이브러리 목적
UIKit 안정적이고 풍부한 레퍼런스, 우수한 호환성, 예측 가능한 UI 레이아웃 작업
MVVM UI, 비즈니스 로직 분리를 통해 화면 상태 변화를 명확하게 관리, 유지보수성 강화
Clean Architecture 도메인 중심의 의존성 분리를 통해 변경에 강하고 확장 가능한 구조 구축
Alamofire 간결한 네트워크 요청과 구조화된 관리 방식으로 코드 가독성과 유지보수성 향상
Combine 비동기 데이터 흐름을 선언적으로 관리, 상태 변화에 따른 UI 업데이트 처리
Snapkit 간편한 Auto Layout 적용
Then UI 코드 작성시 편의성 향상
Kingfisher 효율적인 이미지 다운로드 및 캐싱을 통해 네트워크 이미지 로딩 성능 향상
Lottie JSON 기반 애니메이션 활용을 위해 사용
Logger 구조화된 로깅을 지원하여 성능 저하 없이 효율적으로 로그 수집 및 분석 가능
KakaoOpenSDK 카카오 소셜 로그인을 위해 사용
Swift Concurrency 명확하고 안전한 비동기 흐름 관리를 통해 복잡한 비동기 로직의 가독성과 유지보수성 향상

📁 Foldering

📁 Poti-iOS
├── 📁 Application
│   ├── 📝 AppDelegate.swift
│   ├── 📝 SceneDelegate.swift
│   └── 📝 AppDIContainer.swift
│
├── 📁 Core
│   ├── 📝 PotiError.swift
│   └── 📝 PotiLogger.swift
│
├── 📁 Data
│   ├── 📁 Network
│   │   └── 📁 Auth
│   │       ├── 📁 DTO
│   │       ├── 📝 AuthService.swift
│   │       └── 📝 AuthAPI.swift
│   │
│   └── 📁 Repository
│
├── 📁 Domain
│   ├── 📁 Entity
│   ├── 📁 Interface
│   └── 📁 UseCase
│
├── 📁 Presentation
│   ├── 📁 Splash
│   ├── 📁 Onboarding
│   ├── 📁 Home
│   │
│   └── 📁 Common
│       ├── 📁 Base
│       │   ├── 📝 BaseViewController.swift
│       │   └── 📝 BaseViewModel.swift
│       ├── 📁 Component
│       ├── 📁 Extension
│       └── 📁 Protocol
│
├── 📁 Resource
│   │   ├── Assets.xcassets
│   │   └── 📁 Fonts

🎨 Project Design

image IMG_9004 PNG

📣 Convention

Code Style

Swift Style Guide를 따릅니다.

Commit

  • Tag
태그 사용하는 부분
[feat] 새로운 기능 구현
[fix] 버그, 오류 해결
[chore] 코드 수정, 내부 파일 수정 등 중요도가 낮은 기타 작업
[add] 라이브러리 또는 에셋 추가
[del] 쓸모없는 코드 삭제
[docs] README나 WIKI 등의 문서 개정
[refactor] 기존 코드 리팩토링 또는 구조 개선
[setting] 프로젝트 관련 설정 변경
[merge] Pull Develop
  • Message
(커밋 메세지 형식)
[종류] #이슈번호 - 작업 내용

(기본 커밋 메시지 예시)
[feat] #1 - 메인 UI 구현

(Conflict 해결 시)
[merge] #이슈번호 - Conflict 해결

(PR을 develop에 merge 시)
[merge] #이슈번호 - 작업 내용 간략히

🐾 Git Flow

Default Branch & PR Target : develop

모든 개발은 develop 브랜치를 중심으로 진행됩니다.

1. 작업할 내용에 대해 이슈를 판다. (이슈 제목: [태그] 작업 내용)

2. develop 브랜치로부터 새 브랜치를 만든다. (브랜치 명: 타입/#이슈번호)
  - 브랜치 파기 전 최신화 된 develop 브랜치 pull 받기

3. 만든 브랜치에서 작업한다.

4. 커밋은 쪼개서 작성하며 컨벤션을 따라 메시지를 작성한다.

5. 작업할 내용을 다 끝내면 에러 없이 잘 실행되는지 확인 한 후 push 한다.
  - PR 올리기 전 작업 브랜치에 develop 브랜치 pull 받은 뒤 충돌을 해결한 후 push 하는 것을 권장

6. PR을 작성한 후, 팀원들의 코드리뷰를 반영한 뒤 develop 브랜치에 merge 한다.
  - 깃허브 내에서 merge 할 때 메시지 변경하기 ([merge #이슈번호 - 작업 내용)