[번역] Core Location / Creating a Location Push Service Extension (애플 공식 문서)

Overview iOS 15부터 제공되는 Location Push Service Extension은 앱이 실행 중이 아닐 때에도 iOS나 iPadOS 기기에 위치를 요청할 수 있게 해주는 에너지 효율적인 방법입니다. 앱에 Location Push Service Extension이 포함되어 있으면, 시스템은 서버로부터 Apple Push Notification service(APNs) 위치 푸시를 받을 때 해당 확장을 활성화합니다. 이 확장이 동작하려면, 앱이 사용자로부터 항상 허용(Always) 권한(CLAuthorizationStatus.authorizedAlways)을 요청하고 승인받아야 합닌다. 항상 허용 권한에 대한 자세한 내용은 Requesting authorization to use location services와 requestAlwaysAuthorization()을 참고하세요. 사용자의 권한이 허용되면, 확장은 사용자의 위치를 조회하고 앱의 목적에 따라 해당 정보를 처리할 수 있습니다. 서버는 location 푸시 타입을 사용해 APNs로 요청을 전송합니다.APNs로 요청을 보내는 방법에 대한 자세한 내용은 Sending noification requests to APNs를 참고하세요. ...

December 15, 2025 · 3 min · 575 words · Me

[번역] Core Location / Suspending Authorization Requests (애플 공식 문서)

Overview 앱의 온보딩 과정에 위치 정보 업데이트를 포함하고 있다면, 사용자에게 Core Location 권한을 요청하는 시점을 미루고 싶을 수 있습니다. 앱에서 CLServiceSession을 적절한 시점에 생성함으로써 자동으로 표시되는 권한 요청 알림창을 억제할 수 있습니다. 그럼 다음 diagnostic 프로퍼티를 순회하여 사용자가 선택한 권한 수준을 확인할 수 있습니다. 아래 예제는 권한 요청을 미루는 방법을 보여줍니다. func doPromptingFlow() async { await showHelloPrompt() // Obtain a session. This causes Core Location to display the authorization prompt. let session = CLServiceSession(authorization: .whenInUse) // Wait for interaction with the prompt to complete (successfully or with denial) for try await diagnostic in session.diagnostics { if !diagnostic.authorizationRequestInProgress { // A denial occurred. break } } await doFurtherWork() } 이 동작을 제어하려면 앱의 Info.plist 파일에 CLRequireExplicitServiceSession 속성을 추가하세요. ...

December 10, 2025 · 1 min · 117 words · Me

[번역] Core Location / Handling Location Updates in the Background (애플 공식 문서)

Overview 일부 Apple 기기에서는 운영체제가 백그라운드 앱의 실행을 일시 중단(suspend)하여 배터리 수명을 절약합니다. 예를 들어, iOS, iPadOS, 그리고 watchOS에서는 대부분의 앱이 백그라운드로 전환된 직후 시스템에 의해 실행이 중단됩니다. 이러한 일시 중단 상태에서는 앱이 실행되지 않으며 시스템으로부터 위치 업데이트를 받을 수 없습니다. 대신 시스템은 위치 업데이트를 큐에 저장해두었다가, 앱이 다시 포그라운드나 백그라운드에서 실행될 때 이를 한꺼번에 전달합니다. 앱이 보다 시의적절하게 업데이트를 받아야 하는 경우, 위치 서비스가 활성화되어 있는 동안 시스템이 앱을 일시 중단하지 않도록 요청할 수 있습니다. ...

December 5, 2025 · 2 min · 414 words · Me

[번역] Core Location / Supporting Live Updatesin SwiftUI and Mac Catalyst Apps (애플 공식 문서)

Overview iOS 17 이상에서는 Core Location​이 Swift Concurrency​의 async/await 기능을 사용한 실시간 업데이트를 지원합니다. 실시간 업데이트를 적용하려면 SwiftUI 및 Mac Catalyst 앱에서 라이프사이클 이벤트를 지원해야 하며, 이를 통해 @main 앱이 백그라운드 런-루프의 생성과 재개를 명시적으로 지원하도록 구현해야 합니다. 이 기능을 통해 시스템은 Core Location 이벤트를 앱에 전달할 수 있으며, 앱이 백그라운드에서 다시 돌아오거나 실행될 때, 혹은 크래시 후 재실행될 때에도 이벤트 전달이 다시 이어질 수 있습니다. Adding lifecycle events to SwiftUI 라이프사이클 이벤트를 지원하도록 하려면 앱에 세 가지 컨포넌트를 추가해야 합니다: ...

November 30, 2025 · 3 min · 459 words · Me

[번역] Core Location / Getting Heading and Course Information (애플 공식 문서)

Overview 내베게이션 앱은 사용자가 목적지로 이동하도록 안내하기 위해 보통 방향(heading)과 진행 방향(course) 정보를 사용합니다. 사용자의 기기 방향은 자기 북극(magnetic) 또는 진북을 기준으로 한 현재 기기의 방향을 나타냅니다. GPS가 탑재된 기기는 이동 중인 방향을 나타내는 진행 방향 정보를 제공합니다. iOS의 나침반 앱은 아래 그림과 같이 이 방향 정보를 이용해 자기 나침반 인터페이스를 구현합니다. 증강 현실(AR) 앱은 이 정보를 사용하여 사용자가 어느 방향으로 향하고 있는지를 판단할 수도 있습니다. Get the current heading 방향(heading) 정보는 사용자의 기기가 현재 어떤 방향을 향하고 있는지를 판단하는 데 사용됩니다. 예를 들어, 증강 현실 앱은 현재 방향 정보를 활용하여 사용자의 화면에 어떤 정보를 표시할 지 결정할 수 있습니다. 방향 정보는 일반적으로 기기의 윗부분을 기준으로 판단하지만, CLLocationManager 객체의 headingOrientation 속성을 사용하여 값이 판단되는 기준을 설정할 수도 있습니다. ...

November 25, 2025 · 2 min · 264 words · Me

[번역] Core Location / Monitoring the user's proximity to geographic regions (애플 공식 문서)

Overview 지오펜싱은 사용자가 지리적 영역에 들어오거나 벗어날 때 앱이 알림을 받을 수 있는 방법입니다. 위치 관련 작업을 수행하기 위해 영역 모니터링(region monitoring)을 사용할 수 있습니다. 예를 들어, 아래 그림에 표시된 것처럼 미리 알림 앱은 사용자가 특정 위치에 도착하거나 떠날 때 미리 알림을 트리거하는 데 이를 사용합니다. iOS에서는 시스템이 영역을 모니터링하고, 조건이 충족됨(satisfied)와 충족되지 않음(unsatisifed) 상태 사이에서 변경될 때 필요에 따라 앱을 깨워줍니다. macOS에서는 조건 모니터링이 앱이 실행 중일 때(포그라운드 또는 백그라운드 상태 모두) 그리고 사용자의 시스템이 깨어 있는 동안에만 작동합니다. 시스템은 영역 관련 알림을 전달하기 위해 Mac 앱을 자동으로 실행하지 않습니다. ...

November 20, 2025 · 2 min · 374 words · Me

[번역] Core Location / Getting the current location of a device (애플 공식 문서)

Overview Core Location은 위치 관련 데이터를 가져오기 위해 여러 가지 서비스를 제공하지만, 가장 일반적인 서비스는 기기의 현재 위치를 반환합니다. 이 정보는 아래와 같은 용도로 사용할 수 있습니다. 도보, 자동차 또는 기타 교통수단을 통한 네비게이션을 지원합니다. 주변의 관심 지점(POI)를 식별합니다. 사람과 가까운 거리를 기준으로 검색 결과를 필터링합니다. 사람의 위치를 지도에 표시합니다. 사람의 위치를 친구와 공유합니다. 사진의 위치를 태그합니다. 소셜 미디어에 체크인합니다. 운동이나 하이킹 중 이동 경로를 추적합니다. Core Location은 Wi-Fi, 셀룰러, GPS 라디오 등 다양한 하드웨어를 사용하여 현재 위치를 결정할 수 있습니다. Core Location은 위치를 알아내기 위해 모든 라디오를 사용할 필요는 없습니다. 대신, 필요한 위치 데이터를 가장 전력-효율적인 방식으로 얻기 위해 선택적으로 라디오를 활성화합니다. CLLocationManager 객체의 설정은 시스템이 어떤 라디오를 사용할지와 앱의 전력 소모에 영향을 줍니다. ...

November 15, 2025 · 3 min · 562 words · Me

[번역] Core Location / CLLocationManager / requestAlwaysAuthorization() (애플 공식 문서)

iOS 8.0+ ⏐ iPadOS+ ⏐ Mac Catalyst 13.1+ ⏐ macOS 10.15+ ⏐ watchOS 2.0+ func requestAlwaysAuthorization() Mentioned in Creating a location push service extension Discussion 앱이 위치 정보를 받으려면 이 메서드나 requestWhenInUseAuthorization() 메서드를 반드시 호출해야 합니다. 이 메서드를 호출하려면 앱의 Info.plist 파일에 NSLocationAlwaysUsageDescription 키와 NSLocationWhenInUseUsageDescription 키가 모두 있어야 합니다. requestAlwaysAuthorization()은 현재 권한 상태가 다음 중 하나일 때 호출할 수 있습니다. 결정되지 않음(Not Determined) - CLAuthorizationStatus.notDetermined 앱을 사용하는 동안 허용(When In Use) = CLAuthorizationStatus.authorizedWhenInUse 사용자가 권한 선택을 한 후, 위치 업데이트를 받으려면 CLLocationManager 델리게이트의 locationManager(_:didUpdateLocations:) 메서드를 사용하세요. ...

October 25, 2025 · 3 min · 498 words · Me

[번역] Core Location / Requesting Authorization to Use Location Services (애플 공식 문서)

Overview 위치 데이터는 민감한 정보이며, 이를 사용하는 것은 앱 사용자에게 개인정보 보호와 관련된 영향을 끼칩니다. 사람들이 자신의 정보를 스스로 통제할 수 있도록, 시스템은 앱이 권한을 얻기 전까지 위치 데이터를 사용할 수 없도록 합니다. 이 권한 부여 과정에서 한 번의 인터럽션이 발생하며, 이때 시스템은 사용자에게 앱의 위치 데이터 사용 요청을 허용할지 거부할지 묻습니다. 초기 요청 이후에는 시스템이 앱의 권한 상태를 저장하고, 다시는 사용자에게 요청을 표시하지 않습니다. 사용자가 왜 위치 데이터가 필요한지 이해할 수 있도록, 권한 요청은 반드시 앱에서 해당 데이터가 필요한 기능을 사용할 때만 하세요. 필요한 순간 직전에 요청하면 사용자가 권한을 허용할 가능성이 높아집니다. 반대로 앱이 실행되자마자 요청하거나 위치 데이터를 명확히 사용하지 않는 부분에서 요청하면, 사용자가 의도를 오해하고 권한 요청을 거부할 수 있습니다. ...

October 20, 2025 · 5 min · 892 words · Me

[번역] Core Location / Configuring Your App to Use Location Services (애플 공식 문서)

Overview 대부분의 Apple 기기에서 제공되는 위치 데이터는 앱의 콘텐츠에 추가적인 맥락과 정보를 더할 수 있게 해줍니다. 예를 들어, 사용자의 실제 위치를 지도에 표시하여 주변을 탐색하도록 하거나, 식당과 상점 목록에 위치 데이터를 적용해 근처에 없는 선텍지를 제외할 수 있습니다. 또한 특정 기기나 지정된 지역 근처에 있을 때 알림을 제공하는 데에도 위치 데이터를 활용할 수 있습니다. 이러한 모든 사용 사례와 그 외 다양한 경우에 대해 Core Location 프레임워크는 필요한 위치 데이터에 접근할 수 있도록 지원합니다. ...

October 15, 2025 · 5 min · 917 words · Me