Skip to content

back-young-company/project-bestwish

Repository files navigation

BEST WISH

다양한 쇼핑 플랫폼의 위시리스트를 통합 관리 서비스

바로가기

Available on the App Store Linktree 인스타 �이메일

🔍 Introduce

서비스 이름

BestWish

개발 기간

2025.05.29 ~

📄 Contents

  • 분산된 위시리스트 통합: 다양한 쇼핑 플랫폼의 상품 정보를 하나의 앱에서 관리할 수 있도록 지원합니다.
  • 이미지 기반 정보 추출 및 키워드화: CoreML을 통해 코디 이미지에서 키워드를 자동으로 추출하고, 이를 활용해 외부 플랫폼에서 상품 검색까지 가능합니다.
  • 분석과 검색, 저장까지 연결된 개인화된 쇼핑 어시스턴트를 지향합니다.

💫 MVP

👥 Developers

백래훈 유영웅 이수현 이세준
리더 👑 부리더 👑 팀원 👨🏻‍💻 팀원 👨🏻‍💻
홈 화면 구현
딥링크를 활용한 외부 플랫폼 전환
Share Extension을 활용한 상품 저장 구현
CoreML 활용 이미지 분석 기능
패션 캡처 화면 구현
커스텀 탭바 및 카메라 구현
공통 컴포넌트 구현
마이페이지 구현
Supabase 구조 및 네트워크 로직 구현
소셜 로그인 OAuth 구현
로그인 토큰 암호화 관리
회원가입 온보딩 화면 구현

🛠️ Architecture

⚙️ Skills

Name Description
UIKit iOS 앱의 UI를 구축하고 사용자 인터페이스를 관리하는 기본 프레임워크
RxSwift 비동기 이벤트 흐름을 선언적으로 처리하고 다양한 Operator로 반응형 프로그래밍 구현을 위해 사용
RxDataSources Rx 기반으로 테이블/컬렉션 뷰 섹션 데이터 바인딩 목적으로 사용
Clean Architecture + MVVM 관심사 분리를 통해 유지보수성과 테스트 용이성을 높이기 위해 사용된 아키텍처 패턴
CoreML 머신러닝 모델을 앱에 통합하여 이미지 분석, 키워드 라벨 추천 기능을 구현하기 위해 사용
ShareExtension 외부 플랫폼 앱에서 상품 콘텐츠를 공유받아 앱 내부로 가져오는 기능 구현을 위해 사용
Supabase 자체 백엔드 없이 인증 및 데이터베이스 기능 구현 목적으로 사용
KeyChain 사용자 인증 정보나 토큰 등 민감한 데이터를 안전하게 저장하기 위해 사용
SnapKit Auto Layout 제약 조건을 간결하게 선언하여 코드의 가독성과 유지보수성을 높이기 위해 사용
Then UI 컴포넌트를 선언형 스타일로 초기화 목적으로 사용
Kingfisher 네트워크 이미지 로드 및 캐싱 자동화 목적으로 사용
Alamofire 네트워크 요청을 간결하고 효율적으로 처리 목적으로 사용
IQKeyboardManager 키보드 등장 시 UI 자동 정렬 및 흐름 제어 목적으로 사용
TOCropViewController 비동기이미지 자르기 등 편집 기능 목적으로 사용

📋 Convention

Commit Convention
setting: 프로젝트 초기 세팅
feat: 새로운 기능 구현
fix: 기존 기능 개선, 코드 수정 (피드백 반영 등) UI는 fix
bugfix: 버그, 오류 해결
hotfix: 릴리즈, 메인에서 발견된 치명적 오류 해결
test: 테스트 코드 작성
refactor: 프로덕션 코드 리팩토링 (구조 변경, 성능 개선)
chore: 빌드 테스트 업데이트, 패키지 매니저를 설정하는 경우(프로덕션 코드 변경 X)
docs: README나 WIKI 등의 문서 개정

comment: 필요한 주석 추가 및 변경
design: 오로지 화면.레이아웃 조정
rename: 파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우
remove: 파일을 삭제하는 작업만 수행한 경우

-------------------------------------

ex)
feat: #(이슈번호) - (해당 작업에 대한 내용)
merge: #(해당이슈) - Commit Merge
Branch Convention

브랜치 구조

  • main
    • 운영 배포용 브랜치 (항상 안정 상태 유지)
    • 실제 배포 시 main에 머지하고 태그 버전(v1.0.0) 생성
  • develop
    • 기본 브랜치 (default)
    • 개발 중인 기능들을 통합하고 QA 테스트 용으로 사용
  • 기타 브랜치 종류:
브랜치 타입 용도 예시
feature/* 신규 기능 개발 feature/login-api
fix/* 버그 수정 fix/image-cache-bug
refactor/* 리팩토링 refactor/homeview-layout
hotfix/* 운영 중 긴급 수정 hotfix/token-refresh-failure
release/* 배포 준비 및 QA 대응 release/v1.2.0

브랜치 네이밍 규칙

  • 모두 소문자 사용
  • 띄어쓰기는 하이픈()으로 연결
  • 접두어는 작업 성격에 따라 구분 (feature/, fix/, 등)
  • 이슈번호로 브랜치 생성시 다음과 같이 생성
feature/#{이슈번호}-home-ui 

ex) feature/#4-home-ui

📹 Demonstration

온보딩 플랫폼 바로가기 Share Extension 위시리스트 이미지 분석 및 키워드 추출 마이페이지

📋 Flow Chart

로직 플로우차트
인증
이미지 분석
마이페이지

⚽️ Trouble Shooting

백래훈

유영웅

이수현

이세준

✋🏻 Usage

git clone https://github.com/back-young-company/project-bestwish.git
cd BestWish
open BestWish.xcodeproj
# 실행: ⌘ + R 

📨 Contact

About

베스트위시 - 쌓인 장바구니, 이젠 똑똑하게 정리하자!

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages