Spark
Spark
🏆 AI 챔피언
🏡 내집마련 찐친

새로운 명함관리 앱 "ABC" 기획 하기~!

🎯 프로젝트 시작 배경

요즘 "안드로이드 앱 개발" 스터디를 진행하면서, 평소 불편하게 느끼던 명함 관리의 문제점을 해결해보고 싶어졌습니다.

😅 기존 앱의 아쉬운 점

저는 주로 "기억하다"라는 앱을 사용해왔습니다. 명함 사진을 찍으면 자동으로 연락처를 추출해서 전화번호부에 저장해주는 기능이 정말 편리했어요.

하지만...

3-6개월 후 그 분과 다시 연락할 때마다 이런 상황이 반복됩니다:

📱 전화번호부 검색: "홍길동"

[검색 결과]
홍길동 (ABC건설)
010-1234-5678

🤔 생각: "이 분... 어디서 만났더라?"

구체적인 문제점들

1. 만남의 맥락(Context) 부재

  • 어디서 만났는지? → 기억 안 남

  • 언제 만났는지? → 저장 날짜만 표시

  • 어떤 회의에서? → 정보 없음

  • 무슨 이야기를 나눴는지? → 메모 안 해뒀으면 끝

2. 사진-연락처 매칭 불가

  • 회의 단체 사진은 갤러리에 있는데

  • "이 사진 속 세 번째 분이 누구였지?" → 알 수 없음

  • 얼굴은 기억나는데 이름이 안 떠오름

3. 관계 네트워크 시각화 없음

  • "이 분을 누구 소개로 만났더라?"

  • "A씨와 B씨가 아는 사이였나?"

  • 같은 회사, 같은 학교 출신 연결 고리 파악 어려움

4. 나이 탓일 수도... 😭

  • 한 달에 10-15장씩 명함을 받다 보니

  • 시간이 지나면 정말 기억이 안 나요

💡 그래서 만들기로 한 앱: AwesomeBizCard

컨셉: "사람과의 만남을 잊지 않게 해주는 컨텍스트 기반 네트워킹 앱"

  • 앱 이름: AwesomeBizCard

  • 약칭: ABC

  • 아이콘: ABC 이니셜을 강조한 명함 형태 + 네트워크 연결선

아이콘 컨셉:
┌─────────────┐
│   ┌─────┐   │
│   │ ABC │   │  ← 명함 형태 안에 ABC
│   └─────┘   │
│   ╱ ╲  ╱ ╲  │  ← 네트워크 연결선
└─────────────┘

📋 Phase 1: 핵심 MVP 기능

F1.1 명함 스캔 & OCR (기존앱과 동일)

기능:
- 카메라로 명함 촬영 또는 갤러리에서 선택
- Google ML Kit으로 텍스트 자동 추출
- 이름, 회사, 직책, 전화번호, 이메일 자동 분류
- 사용자가 확인/수정 후 전화번호부 저장

기술:
- ML Kit Text Recognition API
- Android Contacts Provider API

F1.2 회의 일정 자동 매칭 ⭐ (차별화 포인트)

명함을 저장하는 시점의 Google Calendar 일정을 자동으로 연결합니다.

로직:
1. 명함 저장 시각 = T

2. Google Calendar API 쿼리:
   [우선순위 1] T-30분 ~ T+30분 사이 진행 중인 일정
   [우선순위 2] T 이후 가장 가까운 일정 (T+4시간 이내)
   [우선순위 3] T 이전 가장 최근 일정 (T-4시간 이내)

3. 일정이 여러 개인 경우:
   사용자에게 선택 UI 표시
   "이 회의에서 만나셨나요?"
   - 정책 세미나 (14:00-16:00)
   - AI 기술 워크샵 (16:30-18:00)

4. 연결된 정보 저장:
   - 회의 제목
   - 회의 시간
   - 회의 장소
   - 참석자 리스트

사용 시나리오:

14:30 정책 세미나 참석 중
15:00 휴식 시간에 명함 교환
15:05 앱으로 명함 스캔

→ 시스템: "현재 참석 중인 '정책 세미나'에서 만나셨나요?"
→ 사용자: "네!" (터치 한 번)
→ 자동 저장 완료 ✅

F1.3 위치 정보 자동 태깅

기능:
- GPS로 현재 위치 자동 획득
- Google Geocoding API로 주소 변환
- Google Places API로 장소명 검색

저장 정보:
- GPS 좌표 (위도, 경도)
- 주소 (도로명/지번)
- 장소명 ("코엑스", "서울역" 등)

개인정보 보호:
- 정확한 좌표는 앱 내부만 저장
- 전화번호부에는 "강남역 근처" 같은 일반화된 위치만 저장

3-6개월 후 검색 시나리오:

🔍 검색: "작년 11월 코엑스"

[결과]
┌─────────────────────┐
│ 홍길동 (ABC건설)     │
│ 2024-11-15          │
│ 정책 세미나          │
│ 📍 코엑스 3층       │
│ [회의 사진 2장]      │
└─────────────────────┘

→ 아! 그때 데이터 표준화 논의했던 분!

F1.4 사진 속 인물 매칭

회의 단체 사진에서 얼굴을 인식해서 연락처와 연결합니다.

워크플로우:

1. 갤러리에서 회의 사진 선택
   [5명이 찍힌 단체 사진]

2. ML Kit Face Detection으로 얼굴 자동 인식
   → 5개 얼굴 감지

3. 각 얼굴 크롭 후 사용자가 매칭:
   
   얼굴 #1 [크롭 이미지] → [기존 연락처: 홍길동]
   얼굴 #2 [크롭 이미지] → [새 연락처 생성] → 명함 스캔
   얼굴 #3 [크롭 이미지] → [기존 연락처: 김철수]
   ...

4. 크롭된 얼굴 사진을 프로필 사진으로 저장
5. 원본 사진도 회의 기록에 연결

결과:

6개월 후 "홍길동" 연락처를 열면:

  • 프로필 사진: 회의 때 크롭한 얼굴 사진

  • 만남 기록: 2024-11-15 정책 세미나

  • 회의 사진: [원본 단체 사진]

  • 위치: 코엑스 3층

맥락 복원 완료! 🎉

📱 주요 화면 설계

홈 대시보드

┌─────────────────────────────────┐
│  [로고] AwesomeBizCard    [⚙️]  │
├─────────────────────────────────┤
│  🔍 이름, 회사, 회의, 장소 검색  │
├─────────────────────────────────┤
│  [최근순▼] [회사별] [회의별]     │
├─────────────────────────────────┤
│  ┌───────────────────────────┐  │
│  │ [프사] 홍길동              │  │
│  │ ABC 건설 / 팀장            │  │
│  │ 📅 2024-11-15 정책 세미나 │  │
│  │ 📍 코엑스 3층             │  │
│  └───────────────────────────┘  │
│                                 │
│  ┌───────────────────────────┐  │
│  │ [프사] 김철수              │  │
│  │ DEF 기술 / 과장            │  │
│  │ 📅 2024-10-20 AI 컨퍼런스 │  │
│  │ 📍 강남역 근처            │  │
│  └───────────────────────────┘  │
│                                 │
│               [+]               │
└─────────────────────────────────┘

명함 스캔 - 결과 확인

┌─────────────────────────────────┐
│  [←]        정보 확인       [✓] │
├─────────────────────────────────┤
│  ┌───────────────────────────┐  │
│  │   [명함 이미지 썸네일]     │  │
│  └───────────────────────────┘  │
├─────────────────────────────────┤
│  이름 *                         │
│  ┌───────────────────────────┐  │
│  │ 홍길동                    │  │
│  └───────────────────────────┘  │
│                                 │
│  회사                           │
│  ┌───────────────────────────┐  │
│  │ ABC 건설                  │  │
│  └───────────────────────────┘  │
│                                 │
│  회의 ⭐                        │
│  ┌───────────────────────────┐  │
│  │ 정책 세미나    [선택]      │  │ ← 자동 매칭!
│  └───────────────────────────┘  │
│                                 │
│  위치 ⭐                        │
│  ┌───────────────────────────┐  │
│  │ 📍 코엑스 3층             │  │ ← 자동 태깅!
│  └───────────────────────────┘  │
├─────────────────────────────────┤
│     [수정]           [저장]      │
└─────────────────────────────────┘

연락처 상세 - 컨텍스트 표시

┌─────────────────────────────────┐
│  [←]                    [⋮]     │
├─────────────────────────────────┤
│       ┌─────────────┐           │
│       │  [프로필    │           │
│       │   사진]     │           │
│       └─────────────┘           │
│                                 │
│          홍길동                 │
│     ABC 건설 공무팀 팀장         │
├─────────────────────────────────┤
│  📞  010-1234-5678      [전화]  │
│  ✉️  [email protected]       [메일]  │
├─────────────────────────────────┤
│  만남 기록 ⭐                   │
│                                 │
│  ┌───────────────────────────┐  │
│  │ 📅 2024-11-15 14:00       │  │
│  │     정책 세미나            │  │
│  │ 📍 코엑스 3층             │  │
│  │ [사진] [사진]              │  │ ← 회의 사진!
│  └───────────────────────────┘  │
│                                 │
│  ┌───────────────────────────┐  │
│  │ 📅 2024-09-10 10:00       │  │
│  │ 스마트건설 워크샵           │  │
│  │ 📍 여의도 IFC몰            │  │
│  └───────────────────────────┘  │
├─────────────────────────────────┤
│  메모                           │
│  ┌───────────────────────────┐  │
│  │ 건설 데이터 표준화에 관심   │  │
│  │ 다음 회의 때 샘플 공유      │  │
│  └───────────────────────────┘  │
└─────────────────────────────────┘

🚀 Phase 2: 앱 고도화

Phase 1이 안정화되면 이런 기능들도 추가할 예정입니다:

1. Obsidian 스타일 관계 네트워크 그래프

        나 (중심)
     /    |    \
 (홍길동)(김철수)(이영희)
   / \     |     /   \
 (A) (B)  (C)  (D)  (E)

범례:
─── 같은 회의
··· 같은 회사  
─── 같은 학교 (파랑)

인터랙션:

  • 노드 클릭 → 연락처 상세

  • 핀치 줌으로 확대/축소

  • 필터: "1촌만", "2촌까지", "전체"

2. LinkedIn 프로필 연동

자동으로 가져올 정보:
- 프로필 사진 (고해상도)
- 현재 직장 & 직책
- 이전 경력 히스토리
- 학력 (학교, 전공, 졸업년도)
- 상호 연결 (mutual connections)
- 추천 기술 (skills)

3. 학교/회사 기반 자동 클러스터링

[홈 화면 상단 탭]
[전체] [회사별] [학교별] [회의별]

[회사별 탭]
┌─────────────────────┐
│ ABC건설 (5명)        │
│ ├ 홍길동 (팀장)      │
│ ├ 김철수 (과장)      │
│ └ ... 더보기         │
├─────────────────────┤
│ K-Con (3명)         │
│ ├ 이영희 (연구원)    │
│ └ ... 더보기         │
└─────────────────────┘

4. "이 사람을 통해 만난 분들" 추적

관계 추적:
홍길동
├─ (직접 만남) 김철수
│  └─ (김철수 소개) 이영희
│     └─ (이영희 소개) 박민수
└─ (직접 만남) 정다은

5. 스마트 재연락 제안

┌─────────────────────────┐
│ 💬 다시 연락해보세요!    │
├─────────────────────────┤
│ 홍길동 (ABC건설 팀장)    │
│                         │
│ • 6개월 전 마지막 연락   │
│ • 최근 LinkedIn에서     │
│   "프로젝트 매니저"로    │
│   승진하셨습니다         │
│ • 서로 아는 분 3명       │
│                         │
│ 제안 메시지:             │
│ "승진 축하드립니다!      │
│  프로젝트 관련해서       │
│  조언 부탁드려도 될까요?" │
│                         │
│ [메시지 보내기] [나중에] │
└─────────────────────────┘

6. 회의 전 브리핑 알림 (고도화 Point~! 아젠더를 올리면, 신규 네트워킹 멤버 제안)

캘린더 일정 30분 전 자동 알림:

┌─────────────────────┐
│ 🔔 회의 30분 전     │
│ 정책 세미나          │
├─────────────────────┤
│ 참석자 (3/5명 저장)  │
│                     │
│ 홍길동 (ABC건설)    │
│ • 작년 11월 코엑스  │
│ • "건설 데이터 표준" │
│   논의했음          │
│                    │
│ 김철수 (DEF기술)    │
│ • 첫 만남           │
│                    │
│ [더보기] [닫기]     │
└─────────────────────┘

📊 PRD 작성 과정

Claude와 대화하면서 체계적으로 PRD를 작성했습니다.

PRD에 포함된 내용

✅ 1. 프로젝트 개요
   - 문제 정의
   - 솔루션 비전
   - 사용자 페르소나

✅ 2. 기능 명세 (Phase 1 & 2)
   - 상세 기능 설명
   - 기술 스택
   - 데이터 모델
   - Use Cases

✅ 3. 화면 설계
   - 5개 핵심 화면 레이아웃
   - UI 컴포넌트 상세
   - 사용자 플로우

✅ 4. 기술 스택 정의
   - Frontend: Kotlin + Jetpack Compose
   - Database: Room
   - APIs: ML Kit, Google Calendar, Maps
   - 개발 도구: Claude Code, Android Studio

✅ 5. Galaxy Z Fold 최적화 전략
   - 커버 스크린 (6.2"): 빠른 스캔
   - 메인 스크린 (7.6"): 분할 뷰
   - 플렉스 모드: 상단 카메라, 하단 컨트롤

✅ 6. 개발 타임라인
   - Phase 1: 3-4개월 (MVP)
   - Phase 2: 4-6개월 (고급 기능)

✅ 7. 리스크 & 완화 전략
   - OCR 정확도 문제
   - API 할당량 초과
   - 경쟁 앱 분석

✅ 8. 비용 추정
   - Phase 1: $0/월 (Google 무료 할당량)
   - Phase 2: $25 (Play Store 등록비)

데이터베이스 스키마 설계

kotlin

// Room Database

@Entity(tableName = "contacts")
data class Contact(
    @PrimaryKey val id: String,
    val name: String,
    val company: String?,
    val position: String?,
    val phoneNumber: String?,
    val email: String?,
    val businessCardImageUri: String?,
    val profilePhotoUri: String?,
    val androidContactId: Long?, // 전화번호부 ID
    val createdAt: Long,
    val updatedAt: Long
)

--- 중략 ---

🎨 디자인 가이드 작성

PRD와 별도로 Google Stitch에서 사용할 디자인 가이드도 작성했습니다.

브랜드 컬러

Primary: Blue #1976D2
Accent: Orange #FF9800
Background: White #FFFFFF
Surface: Light Gray #F5F5F5

Material Design 3 적용

  • Jetpack Compose

  • Dynamic Color 지원

  • 다크 모드 대응

ABC 아이콘 디자인 방향

명함 형태 안에 ABC 타이포그래피를 넣고, 하단에 네트워크 연결선을 추가하는 컨셉

ui ui ui ui ui ui ui ui ui
한 무리의 사람들이 모바일 앱 화면에 표시됩니다.

📚 지금까지 배운 점

1. 문제 정의의 중요성

"명함 관리 앱을 만들자"가 아니라 "명함을 저장한 후 6개월 뒤에도 그 사람을 기억할 수 있게 하자"

→ 이렇게 구체적으로 문제를 정의하니 차별화 포인트가 명확해졌습니다.

2. 사용자 페르소나 = 나 자신

Primary Persona: "비즈니스 네트워커"
- 주 2-3회 외부 회의
- 월 10-15장 명함 수집
- 3-6개월 후 상대방 기억 어려움
- Galaxy Z Fold 사용자

실제로 내가 겪는 문제를 해결하는 앱이라서 기획이 더 구체적으로 나왔어요.

3. MVP vs 완벽주의

처음엔 Phase 2 기능까지 다 만들고 싶었지만, Claude와 대화하면서 Phase 1만 완성해도 충분히 차별화된다는 걸 깨달았습니다.

  • Phase 1: 회의/위치 자동 매칭만으로도 기존앱과 차별화

  • Phase 2: 사용자 피드백 받고 나서 추가

4. PRD 작성의 가치

개발 시작 전에 PRD를 꼼꼼히 작성하니:

  • 기능 우선순위가 명확해짐

  • 기술적 제약사항 미리 파악

  • 개발 일정 현실적으로 수립 가능

2부 "새로운 명함관리 앱 "ABC" 구현 하기~!" 로 넘어가 볼까요~!!!?

2
1개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요