- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
",t};e.buildCustomizationMenuUi=t;function n(e){let t='
",t}function s(e){let n=e.filter.currentValue||e.filter.defaultValue,t='${e.filter.label}
`,e.filter.options.forEach(s=>{let o=s.id===n;t+=``}),t+="${e.filter.label}
`,t+=`Datadog RUM을 사용하면서 예기지 못한 동작을 경험하였다면 이 가이드를 통해 빠르게 문제를 해결하세요. 문제가 지속되면 Datadog 지원팀에 문의하여 추가 지원을 받으세요.
Datadog SDK를 구성하고 최초로 앱을 실행한 후 Xcode의 디버거 콘솔을 확인합니다. 잘못 구성된 경우, SDK가 여러 일관성 점검과 출력 관련 경고를 구축합니다.
애플리케이션 작성 시 verbosityLevel
값을 설정하여 개발 로그를 활성화할 수 있습니다. 제공된 수준보다 높은 우선순위를 지닌 SDK 관련 메시지는 Xcode의 디버거 콘솔에 출력됩니다.
Datadog.verbosityLevel = .debug
그러면 아래와 같은 유사 출력이 표시되며, 이는 RUM 데이터 배치가 제대로 업로드되었음을 나타냅니다.
[DATADOG SDK] 🐶 → 17:23:09.849 [DEBUG] ⏳ (rum) Uploading batch...
[DATADOG SDK] 🐶 → 17:23:10.972 [DEBUG] → (rum) accepted, won't be retransmitted: success
권장 사항: DEBUG
구성에서 Datadog.verbosityLevel
을 사용하고 RELEASE
에서 설정 해제합니다.
DDURLSessionDelegate
사용하기DDURLSessionDelegate
을 사용해 네트워크 요청을 자동으로 추적하려 하나, 앱에 이미 자체적인 세션 위임이 구현된 경우 상속 또는 구성 패턴을 사용하여 DDURLSessionDelegate
으로 호출을 전달할 수 있습니다.
상속 패턴을 사용할 때는 사용자 정의 위임의 기본 클래스로 DDURLSessionDelegate
을 사용하고 재정의된 메서드에서 super
구현을 호출해야 합니다. 다음 예를 참고하세요.
class YourCustomDelegateURLSessionDelegate: DDURLSessionDelegate {
override func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) {
super.urlSession(session, task: task, didCompleteWithError: error) // forward to Datadog delegate
/* your custom logic */
}
}
구성 패턴을 사용할 때는 Datadog의 __URLSessionDelegateProviding
프로토콜을 활용하여 DDURLSessionDelegate
의 내부 인스턴스를 유지하고 호출을 ddURLSessionDelegate
로 전달합니다 . 다음 예를 참고하세요.
private class YourCustomDelegateURLSessionDelegate: NSObject, URLSessionTaskDelegate, URLSessionDataDelegate, __URLSessionDelegateProviding {
// MARK: - __URLSessionDelegateProviding conformance
let ddURLSessionDelegate = DDURLSessionDelegate()
// MARK: - __URLSessionDelegateProviding handling
func urlSession(_ session: URLSession, task: URLSessionTask, didFinishCollecting metrics: URLSessionTaskMetrics) {
ddURLSessionDelegate.urlSession(session, task: task, didFinishCollecting: metrics) // Datadog 위임으로 전달
/* your custom logic */
}
func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) {
ddURLSessionDelegate.urlSession(session, task: task, didCompleteWithError: error) // Datadog 위임으로 전달
/* your custom logic */
}
func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) {
ddURLSessionDelegate.urlSession(session, dataTask: dataTask, didReceive: data) // Datadog 위임으로 전달
/* your custom logic */
}
}
참고: _구성_을 사용하는 경우 ddURLSessionDelegate
은 __URLSessionDelegateProviding
프로토콜 코멘트 목록에 있는 모든 필수 호출을 수신해야 합니다. 위임에서는 다음이 필요합니다.
URLSessionTaskDelegate
구현 및 전달:URLSessionDataDelegate
구현 및 전달:스택 트레이스에 대한 난독화 해제에 실패하면 경고가 표시됩니다. 스택 트레이스가 아예 난독화되지 않은 경우 이 경고를 무시해도 됩니다. 그렇지 않은 경우, RUM 디버그 기호 페이지를 사용하여 업로드된 모든 dSYM을 확인하세요. RUM 디버그 기호로 난독화된 스택 트레이스 조사를 참조하세요.
추가 유용한 문서, 링크 및 기사: