먹킷
업데이트

v5.7 — 개인화 피드 + 새 앱 아이콘 + 출시 직전 보안 점검 35건

· 먹킷 팀

v5.7은 출시 직전 마지막 사이클입니다. 전반부는 사용자 경험을 한 단계 끌어올리는 개인화 피드와 새 앱 아이콘, 후반부는 보안 점검 35건을 끝낸 보안 강화 라운드입니다.

개인화 피드 알고리즘

기존의 단순 시간순 피드를 점수 기반 개인화 피드로 전환했습니다.

점수 공식

점수 = (좋아요 + 댓글 + 공유×2 + 저장×1.5) × 시간 감쇠
     + 팔로잉 +5 + 같은 구 +5 + 같은 시 +2
  • 시간 감쇠는 1주일 후 점수 절반
  • 양방향 차단 / 비공개+미팔로워 / 숨김 글 모두 자동 필터
  • 본인 글은 항상 노출
  • 무한스크롤을 cursor 방식으로 전환해 누락·중복 제거

신규 게시물 노출 보강 (콜드스타트)

사용자 보고: “새 글이 옛날 글 아래에 표시됨.”

인터랙션 0인 신규 게시물은 점수가 0이 되어 묻히던 문제. 24시간 이내 게시물에 추가 가산점을 부여해, 이제 막 올라온 글도 자연스럽게 상단에 노출되도록 정비했습니다.

새 앱 아이콘

  • 새 런처 아이콘을 자동 생성 도구로 적용
  • Android / iOS 모든 사이즈 갱신
  • App Store 요구에 맞춰 iOS 알파 채널 제거

피드 사진 업로드 timeout fix

사용자 보고: “사진 3장 게시할 때 60초 후 갑자기 안 된다.”

  • 원인: 이미지 압축률이 사실상 무압축으로 설정되어 있어, 갤럭시 원본 사진이 그대로 업로드되어 60초를 초과
  • 해결: 이미지 압축률을 **인스타·페북 표준(85%)**로 조정 (시각 차이 거의 없음) + timeout 90초로 연장

공유 아이콘 인스타식 종이비행기

  • 피드 카드와 공유 모달의 공유 버튼을 동일한 우상향 종이비행기 아이콘으로 통일
  • 사용자 피드백 반영 — 가로 반듯한 모양보다 대각선 모양 선호

출시 직전 보안 점검 35건 일괄 처리

내부 보안 감사에서 도출된 **35건(audit2 21건 + audit3 13건 + 후속 1건)**을 한 사이클에서 모두 처리했습니다.

핵심 보강

1. 핵심 데이터 보호

  • 사용자 프로필의 개인정보(이메일·전화 등) 익명 접근 차단
  • 본인 정보는 별도 안전 채널을 통해서만 조회

2. 위·변조 방지

  • 좋아요/댓글/공유/저장 카운트 위조 방지 트리거
  • 평점 조작·시간당 무제한 등록 방지 (분당/시간당 제한)
  • 작성자 닉네임·프로필 표시 위조 방지
  • 광고/배틀/조회수 익명 INSERT 차단

3. 외부 키 격리

  • Kakao API 키를 앱에서 제거 → Cloudflare Worker 프록시로 이관
  • OpenWeather + GPS 좌표도 동일한 방식으로 이관 (좌표 라운드 처리로 위치 정밀도 마스킹)
  • 앱 내부에 잔존하던 정적 시크릿 모두 제거

4. 입력 검증 강화

  • 텍스트 길이 제한 (DOS 방지)
  • 비밀번호 정책 통일 (8자 / 영문 + 숫자)
  • 이메일 형식 검증 + 별칭 정규화
  • 유니코드 제어·포맷 문자 정리
  • 검색어 sanitize + 길이 제한
  • 매장 태그 자유텍스트 제한 → 권위 데이터 강제

5. 파일 업로드 보안

  • Cloudflare Worker에서 SVG 차단 + 파일 매직 바이트 검증
  • 화이트리스트 기반 업로드만 허용

6. 안드로이드 빌드 보안

  • R8 minify + ProGuard 적용 (앱 코드 난독화)
  • allowBackup=false + 백업 룰 적용 (외부 추출 차단)
  • 인증 정보 암호화 저장소로 이관
  • Crashlytics 로그 PII 마스킹 wrapper

7. 핸들 squat 방지

  • 핸들 변경 시 30일 cooldown + 90일 reserved 기간
  • 변경 이력 추적

8. 약관 동의 화면 (개인정보 보호법 제15조)

빌드 결과

  • release APK R8 minify 첫 적용 빌드 성공 (172.4MB)
  • 정적 분석 신규 워닝 0건

v5.7 사이클을 마치며 먹킷은 출시 직전 보안 검토를 모두 통과했습니다. v5.0의 사이클 시작 이래 35건의 인증·암호화·개인정보·약관 점검을 누적 처리했습니다.