안녕하세요 makeviibe 입니다.
앱을 켜자마자 가장 먼저 호출되는 API가 있다면,
그건 단순한 기능이 아니라 서비스 운영의 기반이 됩니다.
오늘은 makeviibe 팀이 설계한 check-in API에 대해 소개합니다.
이 API는 앱 실행 시 단 한 번만 호출되며,
사용자의 디바이스, 로그인 상태, FCM 정보 등을 수집하여
푸시 알림 유지, 통계 집계, 장치 식별 등 다양한 기반 역할을 수행합니다.
✅ check-in API는 어떤 역할을 하나요?
check-in은 말 그대로 사용자가 앱을 실행하며 “도착했다”는 신호를 서버에 보내는 API입니다.
이 한 번의 요청으로 다음과 같은 목적을 달성합니다:

📦 요청 파라미터 정리

🔁 호출 방식 예시

🧠 서버에서 처리하는 주요 로직
- device_id가 없는 경우 → 신규 생성 후 응답에 포함
- fcm_key는 항상 최신값으로 업데이트
- user_id가 있다면 → 해당 유저의 활동 로그 기록
- 접속 기록은 MAU/DAU 집계용 로그 테이블에 저장
🧩 왜 이런 구조인가요?
- 앱을 켜는 순간이 가장 정확한 DAU 포인트이기 때문입니다.
- FCM 푸시는 fcm_key가 최신이 아닐 경우 무용지물이 됩니다.
- device_id는 로그인 여부와 상관없이 유저를 식별할 수 있게 해줍니다.
- 예: 비회원 유저의 행동 로그, 추후 로그인 시 연결 가능
🛠️ 클라이언트 개발 시 주의할 점
- 앱이 실행될 때 단 한 번 호출되도록 구성
- device_id는 앱 내에 저장하고, 이후 재사용 필수
- fcm_key는 앱이 새로 실행될 때마다 최신 값으로 갱신
- user_id는 로그인 상태일 때만 포함
✍️ 마무리하며
단순해 보이는 check-in API는
서비스 운영의 근간이 되는 데이터 흐름의 출발점입니다.
makeviibe 팀은 작은 호출 하나도 서비스 성장에 기여할 수 있도록
데이터 구조와 확장성을 고려하여 설계합니다.
'개발일지' 카테고리의 다른 글
| Swagger가 기본 페이지로 열릴 때? 프록시 설정으로 바로잡기 (0) | 2025.07.15 |
|---|---|
| 📘 API 응답 구조, 어디까지 통일해야 할까? (0) | 2025.07.15 |
| 📱 웹앱 + 웹뷰 기반 앱 개발, 괜찮은 선택일까? (2) | 2025.07.15 |
| 우리는 푸시 알림을 이렇게 구현합니다 – FCM 기반 알림 구조와 설정 방법 (0) | 2025.07.15 |
| NestJS로 백엔드를 구성한 이유와 폴더 구조 설계기 (0) | 2025.07.15 |