MoodCard는 결혼식, 생일, 기념일 등 다양한 이벤트를 위한 초대장을 쉽고 빠르게 제작하고 공유할 수 있는 iOS 앱입니다.
사용자는 간단한 키워드 입력만으로 자신의 분위기에 맞는 초대장 템플릿을 추천받고, 텍스트, 이미지, 색상, 드로잉 기능을 활용해 개인화된 초대장을 제작할 수 있습니다.
또한 카카오톡 공유 및 참석 여부 확인 기능을 통해 초대장 생성부터 참여 관리까지 하나의 앱에서 해결할 수 있습니다.
⸻
• Client: iOS App (UIKit, Storyboard)
• Server: Firebase (Storage + Firestore)
• External API:
• Kakao Login / KakaoLink
• Naver Map API
• OpenAI API
⸻
• Kakao OAuth 기반 간편 로그인
• 카카오톡 앱 / 웹 로그인 자동 분기 처리
⸻
• 초대장 개수 및 진행 예정 이벤트 확인
• 최근 초대장 리스트 제공
⸻
• 7가지 카테고리 선택
• 결혼식 / 생일 / 기념일 / 졸업식 / 기업행사 / 파티 / 기타
• 키워드 기반 템플릿 추천
⸻
• Jaccard 유사도 기반 추천 알고리즘
• 사용자 키워드 vs 템플릿 키워드 비교
⸻
• 텍스트 수정
• 날짜 및 시간 설정
• 이미지 추가
• 색상 변경
• 드로잉 기능 (Canvas)
⸻
• Firebase Storage 업로드
• 카카오톡 공유 (딥링크 기반)
⸻
• Naver Map API 사용
• 주소 → 좌표 변환 (Geocoding)
• 지도 및 마커 표시
⸻
• EventKit 활용
• 기기 캘린더에 일정 추가
⸻
• Firebase 기반 실시간 참석자 관리
• 카카오 딥링크 → 자동 참석 등록
⸻
• 초대장 생성 / 참여 수
• 카테고리별 비율 시각화
⸻
-
✔️ Kakao OAuth 로그인
- 앱/웹 로그인 분기 처리
- 사용자 프로필 연동
-
✔️ Template Engine 구조 설계
-
✔️ 추천 알고리즘 (Jaccard Similarity)
-
✔️ OpenAI API 활용
- GPT 기반 스타일 및 문구 추천
-
✔️ Canvas 드로잉 기능
- CoreGraphics 기반 실시간 드로잉
- 터치 이벤트 처리
-
✔️ Firebase 연동
- Storage: 이미지 저장
- Firestore: 초대장 및 참석자 데이터 관리
-
✔️ 딥링크 시스템
- KakaoLink 기반 초대장 공유
- URL Scheme: termproject://invitation/{id}
- 자동 참석 등록 처리
⸻
• Language: Swift
• UI: UIKit, Storyboard
• Backend: Firebase (Storage, Firestore)
• API:
• Kakao SDK
• Naver Map API
• OpenAI API
⸻
- Kakao 로그인
- Kako 프로필 연동 및 사용자 정보 표시
- 초대장 템플릿 엔진
- 초대장 자동 추천 알고리즘
- 스타일, 문구 추천 시스템
- 그림 그리기 캔버스 기능
- 초대장 미리보기 이미지 처리
- 초대장 업로드
- 장소 표시 및 확인 기능
- 기기 캘린더 앱 연동
- Kakao 공유 기능
- firebase에 저장된 초대장 목록
- 참석자 참여 과정 (아이패드 스크린샷)
• 로그인 화면
• 홈 화면
• 초대장 생성
• 템플릿 추천
• 지도 연동
• 카카오 공유
• 참석자 관리
⸻
이번 프로젝트를 통해 단순한 기능 구현을 넘어 하나의 서비스를 설계하고 구현하는 경험을 할 수 있었습니다.
특히,
- Firebase 기반 실시간 데이터 처리
- Kakao 로그인 및 딥링크 처리
- 외부 API 통합
과정을 통해 실무적인 개발 역량을 크게 향상시킬 수 있었습니다.
다만, ViewController에 로직이 집중되면서 코드 구조의 한계를 느꼈고, 향후에는 **아키텍처 개선(MVVM 등)**을 통해 유지보수성을 높이고자 합니다.
⸻
- MVVM 아키텍처 적용
- 코드 모듈화 및 리팩토링
- 사용자 피드백 기반 UX 개선
- 테스트 코드 작성
⸻