# 결정 기록 ## 바꾸지 않는 기술 결정 - 모든 데이터는 기기에 암호화 저장(안드로이드 SQLCipher). 전화번호는 식별자일 뿐 키 재료가 아니다. - 모든 기기가 서버 겸 클라이언트(P2P). 외부 DB(server/)는 암호화된 임시 우편함 + 기준 시각 제공뿐. - 복구 코드·조각·보관 키 없음(2026-10-26 변경). 처음 시작은 이름·번호만, 키는 조용히 만든다. 폰을 잃으면 데이터는 끝. 새 폰은 관계를 유지하는 사용자 각자의 승인(다시 연결) 또는 제명(번호 영구 차단). 탈퇴 후 재가입 없음. - 사람 식별은 전화번호 1순위·이름 2순위. - 대화는 영구 보관, 1MB/기기 사용률 80% 초과 시 별도 보관(조절 가능). 시각은 1/100초, 충돌 시 먼저 쓴 변경이 앞선다. - 고친 명함은 "다시 보내기"에서만 보낸다. 그룹 대화 키는 돌리지 않는다. - 가족 모임 데이터(가계도, 생일, 기일, 통화 주제)는 기기 안에만, 어디로도 보내지 않는다. 번호 없는 친척은 `local:` 번호의 기기 안 전용 사람. - 그룹·업무 목록·이직 알림·제명 목록도 기기 안에만. ## 날짜별 결정 | 날짜 | 결정 | 이유 | |---|---|---| | 2026-10-26 | 그룹·비밀번호 잠금(PBKDF2, 5번 틀리면 30초부터 두 배), 연 뒤 5분/앱 내리면 다시 잠금 | 사용자 요청: 비번 눌러야 열리는 그룹 | | 2026-10-26 | 주소록 가져오기: 이름·초성·번호·주소록 라벨 거르기, 한 명/여러 명, 친구 요청은 선택(기본 끔) | 사용자 요청 | | 2026-10-26 | 그룹 계층 4단, 학교·가족 기본 하위 그룹 | 채팅에서 시작하는 관계망 | | 2026-10-26 | 동기화는 새 통신 형식 없이 명함 "다시 보내기"와 대화 메시지(📌 업무, 🚨 긴급)로 | 기존 결정(가족 데이터 기기 안, 고친 명함은 다시 보내기로만) 유지 | | 2026-10-26 | **복구 코드·조각·보관 키 폐지.** 처음 시작은 이름·번호만, 키는 조용히 생성 | 사용자 결정: 복구 방안 없음, 탈퇴 후 재가입 없음 | | 2026-10-26 | 새 폰에서 다시 시작 → 관계를 유지하는 사용자 각자가 **승인**(다시 연결) 또는 **제명**(번호 영구 차단) | 사용자 결정: 관리자 승인 | | 2026-10-26 | 아래 메뉴: 채팅(첫 화면) · 관계 · 업무 · 명함 · 나. 옛 홈 타일·중복 화면 삭제 | UX 점검 결과 | | 2026-10-26 | 질문은 APK·화면을 먼저 보여 준 뒤에만 | 사용자 최우선 지시 | | 2026-10-26 | 가계도: 세대 줄 방식(위 조상·옆 배우자·아래 자식), 친가 왼쪽·외가/처가 오른쪽, 부부는 남자 왼쪽, 처가 족보 = 배우자 기준으로 다시 보기 | 사용자 요구(01 제품 개요) | | 2026-10-26 | 사용 모델은 Sonnet 5.5 만(특별한 지시가 없는 한) | 사용자 지시 | | 2026-10-26 | 가까움 점수 = 대화 수 + 통화 수 × 3. 선배·후배 = 학교 명함 연도 차이, 윗사람·아래 직원 = 직책 글자의 직급 순서(사원<대리<과장<차장<부장<…). 단체 메시지는 각자에게 1:1 | 사용자 요구(01 제품 개요), 새 통신 형식 없이 기존 대화로 | | 2026-10-26 | 이직 이력은 회사 명함이 바뀔 때 자동 기록(바뀐 해=받은 해), 처음 안 회사의 들어간 해는 모름, 기간은 사용자가 고칠 수 있음. 주변 사람 = 내 기록의 같은 그룹 + 같은 회사 겹침(연도를 모르면 겹침으로 봄) | 사용자 요구(01 제품 개요) |