Bragit - 소셜 성취 공유 플랫폼
배운건 나누고, 잘 한 건 자랑하고
Bragit - 소셜 성취 공유 플랫폼
Bragit
소셜 성취를 기록하고 공유하는 iOS 앱
Bragit은 사용자가 일상 속에서 달성한 작은 성취를 기록하고, 이를 다른 사용자와 공유하며 자연스럽게 소통할 수 있도록 설계된 소셜 성취 공유 iOS 애플리케이션입니다.
이 프로젝트에서 저는 단순한 기능 구현을 넘어, 서비스의 흐름과 상태가 사용자에게 어떻게 인식되는지를 기준으로 앱 구조와 개발 방식을 설계하고 정리하는 역할을 맡았습니다.
프로젝트 개요
- 프로젝트명: Bragit – 소셜 성취 공유 플랫폼
- 기간: 2025.08 ~ 2025.09 (약 2개월)
- 팀 구성: iOS 개발자 3명, 디자이너 1명
- 역할: iOS 개발 리더
프로젝트 소개
Bragit은 사용자가 ‘잘한 일’을 기록하고 공유하는 과정이 부담이나 과시로 느껴지지 않도록, 콘텐츠 탐색과 상호작용 흐름을 단순하고 자연스럽게 설계하는 것을 목표로 했습니다.
기능 나열보다 사용자 흐름과 맥락을 우선적으로 고려해, 서비스 단위의 사용자 경험을 구현하는 것을 목표로 했습니다.
서비스 구성 한눈에 보기
Bragit에서는 사용자가 다음과 같은 흐름으로 서비스를 이용할 수 있습니다.
- 포스팅
- NSAttributedString 기반 에디터를 통해 텍스트와 이미지, 다양한 서식을 조합해 기록을 작성할 수 있습니다.
- 간편한 로그인
- Sign in with Apple을 통해 별도의 입력 없이 빠르게 가입하고 서비스를 이용할 수 있습니다.
- 태그 기반 탐색
- 태그 전용 페이지에서 관련 게시글을 모아보고, 관심 태그를 등록해 개인화된 피드를 구성할 수 있습니다.
- 피드 및 검색
- 홈과 관심 탭에서 다양한 유저의 기록을 탐색하고, 검색을 통해 게시글·태그·유저를 빠르게 찾을 수 있습니다.
- 커뮤니티
- 팔로우한 유저의 글을 확인하고 댓글을 통해 다른 사용자와 소통할 수 있습니다.
기술 스택
- UIKit / Swift
- ReactorKit 기반 단방향 데이터 플로우
- RxSwift / RxFlow
- Supabase (DB / Auth)
- SnapKit, Then, SwiftLint
담당 역할
- Swift/UIKit 기반 iOS 네이티브 앱 개발 전반 담당
- iOS 개발 리더로서 앱 구조 및 핵심 사용자 플로우 설계
- ReactorKit 기반 상태 관리 구조 설계 및 단방향 데이터 플로우 적용
- RxFlow를 활용한 중앙 집중식 네비게이션 관리 시스템 구현
- 검색 기능 및 게시글 작성/상세 화면 구현
- 재사용 가능한 공용 UI 컴포넌트 7개 설계 및 적용
- SwiftLint 및 코드 컨벤션 도입으로 협업 기준 정립 및 코드 품질 표준화
핵심 구현 및 기술적 선택
핵심 구현
- Swift/UIKit 기반 iOS 네이티브 앱 개발
- ReactorKit 기반 상태 관리 및 단방향 데이터 플로우 적용
- RxFlow를 활용한 중앙 집중식 네비게이션 구조 설계
- 검색 시스템 아키텍처 개선 (통합 검색 → 탭별 분기 검색)
- 재사용 가능한 UI 컴포넌트 제작을 통한 코드 중복 감소 및 UI 일관성 확보
Trouble Shooting & 개선 사례
검색 성능 최적화
- 문제: 사용자 입력마다 API 호출 발생
(예: “안녕하세요” 입력 시 최대 12회 호출) - 개선: 350ms 디바운스 적용
→ API 호출 92% 감소 (12회 → 1회) - 추가 개선: 통합 검색 구조에서 탭별 분기 검색 구조로 개선
→ 데이터 요청량 67% 감소 (3n → n) - 결과: 네트워크 트래픽 최적화 및 검색 UX 개선
(흰 화면 발생률 0%, 즉시 결과 표시)
앱 플로우 아키텍처 설계
- 문제: push / present 분산 관리로 전환 로직 파편화
- 해결: RxFlow 도입 후 Flow 단위 중앙 관리
- 성과: 앱 전체 흐름 파악 용이, 신규 기능 확장성과 협업 효율성 향상
ReactorKit 기반 상태 관리
- 문제: 양방향 데이터 흐름으로 상태 추적 및 디버깅 어려움
- 해결: Action → Mutation → State 단방향 구조 적용
- 성과: 상태 변화 경로 명확화, 유지보수성과 디버깅 효율성 향상
팀 협업 환경 구축
- 문제: 팀원별 코드 스타일 상이로 리뷰 및 유지보수 부담
- 해결: SwiftLint 및 코드 컨벤션 도입, 코드 리뷰 가이드라인 정립
- 성과: 일관된 코드 품질 유지, 협업 생산성 및 유지보수성 개선
프로젝트를 통해 배운 점
- 기능 구현에 앞서 구조와 기준을 먼저 정리하는 것이, 이후 개발 속도와 유지보수성에 직접적인 영향을 준다는 점
- 사용자의 행동을 제한하기보다, 시스템이 감당할 수 있도록 구조로 문제를 완화하는 접근의 중요성
- 협업은 소통의 양보다, 소통 구조와 기준을 명확히 하는 것이 팀의 안정성을 높인다는 것
This post is licensed under CC BY 4.0 by the author.