본문으로 건너뛰기
버전: 4.6.1-saas

문제 해결

NetFUNNEL React Native Agent 통합에 대한 일반적인 문제, 해결 방법 및 자주 묻는 질문입니다.


설치 문제

패키지 설치 실패

증상:

  • npm install 실패
  • 패키지를 찾을 수 없음

해결 방법:

  1. 네트워크 연결 확인: 인터넷 연결 상태 확인
  2. 패키지 경로 확인: package.json의 의존성 경로가 올바른지 확인
  3. npm 캐시 정리: npm cache clean --force 실행 후 재시도

초기화 실패

증상:

  • 앱 시작 시 에러 발생
  • NetFUNNEL이 초기화되지 않음

해결 방법:

  1. clientId 확인: clientId가 올바르게 설정되었는지 확인
  2. 빈 문자열 확인: clientId가 빈 문자열이 아닌지 확인
  3. 초기화 위치: App.js 또는 App.tsx의 시작 부분에서 초기화하는지 확인

함수 호출 오류

"nfStart is not a function" 오류

증상:

  • ReferenceError: nfStart is not defined
  • 함수가 호출될 때 정의되지 않음

해결 방법:

  1. 초기화 확인: Netfunnel.initialize()가 먼저 호출되었는지 확인
  2. import 확인: import Netfunnel from 'netfunnel-rn-agent'가 올바른지 확인
  3. 함수 사용법: Netfunnel.nfStart() 형식으로 호출하는지 확인

콜백이 실행되지 않음

증상:

  • nfStart가 호출되었지만 콜백이 실행되지 않음
  • 응답을 받지 못함

해결 방법:

  1. 네트워크 확인: NetFUNNEL 서버에 대한 네트워크 요청 확인
  2. 콘솔 로그: printLog: true로 설정하여 디버깅 로그 확인
  3. 세그먼트 상태: 세그먼트가 Block 상태가 아닌지 확인
  4. Limited Inflow: Limited Inflow가 진입을 허용하는지 확인

네트워크 및 연결 문제

네트워크 타임아웃 오류

증상:

  • NetworkError 상태 코드 1002
  • 요청이 타임아웃됨

해결 방법:

  1. 타임아웃 증가: networkTimeout을 더 높은 값으로 설정 (최대 10000ms)
  2. 재시도 구성: retryCount 증가
  3. 네트워크 복구: useNetworkRecoveryMode: true 활성화
Netfunnel.initialize({
clientId: 'your-client-id',
networkTimeout: 5000,
retryCount: 2,
useNetworkRecoveryMode: true
});

네트워크 연결 오류

증상:

  • NetworkError 상태 코드 1001
  • 인터넷 연결 없음

해결 방법:

  1. 연결 확인: 인터넷 연결 상태 확인
  2. 방화벽: NetFUNNEL 도메인이 차단되지 않았는지 확인
  3. 프록시 설정: 필요한 경우 프록시 구성
  4. 오류 처리: 적절한 NetworkError 처리 구현
function nfCallback(response) {
if (response.status === 'NetworkError') {
// 사용자 친화적인 메시지 표시
Alert.alert('네트워크 연결 문제', '인터넷 연결을 확인해주세요.');
// 선택적으로 재시도하거나 계속 진행
}
}

대기실 문제

대기실이 표시되지 않음

증상:

  • 대기실이 나타나지 않음
  • 사용자가 직접 진행함

해결 방법:

  1. Limited Inflow: 테스트를 위해 0으로 설정
  2. 세그먼트 활성화: 세그먼트가 활성화되어 있는지 확인
  3. 템플릿 설정: useNetfunnelTemplate: true 확인
  4. WebView 컴포넌트: <Netfunnel.WebViewComponent />가 올바르게 추가되었는지 확인

대기실이 멈춤 (끝나지 않음)

증상:

  • 대기실이 나타나지만 진입이 허용되지 않음
  • 무한 대기

해결 방법:

  1. Limited Inflow: Limited Inflow 값 증가
  2. 세그먼트 상태: 세그먼트가 Block 상태인지 확인
  3. 네트워크 문제: 네트워크 연결 상태 확인
  4. 서버 상태: NetFUNNEL 서버 상태 확인

키 관리 문제

키가 반납되지 않음

증상:

  • 다음 사용자가 무한정 대기함
  • 대기열이 진행되지 않음

해결 방법:

  1. nfStop 호출: 항상 nfStop/nfStopSection 호출 확인
  2. 오류 처리: 오류 시나리오에서도 키 반납
  3. 타임아웃 확인: 세그먼트 타임아웃 설정 확인
try {
await performAction();
Netfunnel.nfStop(projectKey, segmentKey);
} catch (error) {
console.error('작업 실패:', error);
// 오류 발생 시에도 키 반납
Netfunnel.nfStop(projectKey, segmentKey);
}

디버깅 팁

로그 확인

디버깅을 위해 printLog: true로 설정하여 로그를 확인할 수 있습니다:

Netfunnel.initialize({
clientId: 'your-client-id',
printLog: true // 디버깅 로그 활성화
});

콘솔에서 [NF4] prefix를 가진 로그를 확인하세요.

일반적인 확인 사항

  1. 초기화 확인: Netfunnel.initialize()가 올바르게 호출되었는지 확인
  2. WebView 컴포넌트: <Netfunnel.WebViewComponent />가 올바른 위치에 추가되었는지 확인
  3. 키 일치: 시작 및 종료 함수에서 동일한 키를 사용하는지 확인
  4. 콜백 구현: 필수 상태(Success, Error, NetworkError)를 처리하는지 확인

관련 문서