{"id":36973,"date":"2024-11-01T09:53:45","date_gmt":"2024-11-01T09:53:45","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=36973"},"modified":"2024-11-01T13:02:05","modified_gmt":"2024-11-01T13:02:05","slug":"title-kotlin-android-app-development-course-getting-user-location","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/36973\/","title":{"rendered":"Kotlin Android App Development Course, Getting User Location"},"content":{"rendered":"<p><body><\/p>\n<p>In this course, we will explore in detail how to obtain user location in Android apps using Kotlin. Location tracking using GPS and technology is a very important feature in modern mobile apps. By utilizing user location information, we can provide more personalized services.<\/p>\n<h2>1. Overview of Android Location Services<\/h2>\n<p>In Android, the <code>FusedLocationProviderClient<\/code> from Google Play services is used to collect location data. This API handles location requests more efficiently and quickly determines the user&#8217;s location by utilizing GPS, Wi-Fi, and cellular networks.<\/p>\n<h2>2. Project Setup<\/h2>\n<p>Before writing direct code, you need to add the required libraries to your project. Please follow the steps below.<\/p>\n<h3>2.1. Add Gradle Dependencies<\/h3>\n<p>Check the project&#8217;s <code>build.gradle<\/code> file. First, you need to add the following dependency:<\/p>\n<pre><code>implementation 'com.google.android.gms:play-services-location:21.0.1'<\/code><\/pre>\n<h3>2.2. Permissions Setup<\/h3>\n<p>To obtain location data, the app needs to request location permissions. Add the following permissions to the AndroidManifest.xml file:<\/p>\n<pre><code>\n&lt;uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"\/&gt;\n&lt;uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"\/&gt;\n    <\/code><\/pre>\n<h2>3. Obtaining User Location<\/h2>\n<p>Now we will write the code to request the location. To do this, we will create an instance of <code>FusedLocationProviderClient<\/code> and set up the location request.<\/p>\n<h3>3.1. Setting Up FusedLocationProviderClient<\/h3>\n<p>The following code shows the process of requesting the user&#8217;s location in the <code>MainActivity.kt<\/code> file:<\/p>\n<pre><code>\nimport android.Manifest\nimport android.content.pm.PackageManager\nimport android.location.Location\nimport androidx.appcompat.app.AppCompatActivity\nimport android.os.Bundle\nimport android.widget.Toast\nimport androidx.core.app.ActivityCompat\nimport com.google.android.gms.location.FusedLocationProviderClient\nimport com.google.android.gms.location.LocationServices\nimport com.google.android.gms.tasks.OnSuccessListener\n\nclass MainActivity : AppCompatActivity() {\n    private lateinit var fusedLocationClient: FusedLocationProviderClient\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        setContentView(R.layout.activity_main)\n\n        fusedLocationClient = LocationServices.getFusedLocationProviderClient(this)\n        getLastLocation()\n    }\n\n    private fun getLastLocation() {\n        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED\n            && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {\n            ActivityCompat.requestPermissions(this,\n                arrayOf(Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION), 1000)\n            return\n        }\n\n        fusedLocationClient.lastLocation.addOnSuccessListener(this, OnSuccessListener<Location?> { location ->\n            if (location != null) {\n                Toast.makeText(this, \"Latitude: ${location.latitude}, Longitude: ${location.longitude}\", Toast.LENGTH_LONG).show()\n            } else {\n                Toast.makeText(this, \"Unable to get location.\", Toast.LENGTH_LONG).show()\n            }\n        })\n    }\n}\n    <\/Location?><\/code><\/pre>\n<h3>3.2. Handling Permission Requests<\/h3>\n<p>To handle the location permission request, add the <code>onRequestPermissionsResult<\/code> method:<\/p>\n<pre><code>\noverride fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {\n    super.onRequestPermissionsResult(requestCode, permissions, grantResults)\n    if (requestCode == 1000) {\n        if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {\n            getLastLocation()\n        } else {\n            Toast.makeText(this, \"Location permission denied.\", Toast.LENGTH_LONG).show()\n        }\n    }\n}    \n    <\/out><\/code><\/pre>\n<h2>4. Real-time Location Updates<\/h2>\n<p>Now let&#8217;s look at how to update the user&#8217;s location in real-time. To do this, we will use the <code>LocationRequest<\/code> object to set up the location request.<\/p>\n<h3>4.1. Setting Up LocationRequest<\/h3>\n<p>You can request real-time location updates with the code below:<\/p>\n<pre><code>\nimport com.google.android.gms.location.LocationCallback\nimport com.google.android.gms.location.LocationRequest\n\nprivate lateinit var locationRequest: LocationRequest\nprivate lateinit var locationCallback: LocationCallback\n\noverride fun onCreate(savedInstanceState: Bundle?) {\n    super.onCreate(savedInstanceState)\n    setContentView(R.layout.activity_main)\n\n    fusedLocationClient = LocationServices.getFusedLocationProviderClient(this)\n    createLocationRequest()\n    createLocationCallback()\n}\n\nprivate fun createLocationRequest() {\n    locationRequest = LocationRequest.create().apply {\n        interval = 10000 \/\/ Location update interval (10 seconds)\n        fastestInterval = 5000 \/\/ Fastest update interval (5 seconds)\n        priority = LocationRequest.PRIORITY_HIGH_ACCURACY\n    }\n}\n\nprivate fun createLocationCallback() {\n    locationCallback = object : LocationCallback() {\n        override fun onLocationResult(locationResult: com.google.android.gms.location.LocationResult?) {\n            locationResult ?: return\n            for (location in locationResult.locations) {\n                Toast.makeText(this@MainActivity, \"Current location: ${location.latitude}, ${location.longitude}\", Toast.LENGTH_LONG).show()\n            }\n        }\n    }\n}\n    <\/code><\/pre>\n<h3>4.2. Requesting Location Updates<\/h3>\n<p>Location requests can be started using the following method:<\/p>\n<pre><code>\nprivate fun startLocationUpdates() {\n    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED \n        && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {\n        ActivityCompat.requestPermissions(this,\n            arrayOf(Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION), 1000)\n        return\n    }\n    fusedLocationClient.requestLocationUpdates(locationRequest, locationCallback, null)\n}\n    <\/code><\/pre>\n<h3>4.3. Stopping Location Updates<\/h3>\n<p>If location updates are no longer needed, you can stop them with the method below:<\/p>\n<pre><code>\nprivate fun stopLocationUpdates() {\n    fusedLocationClient.removeLocationUpdates(locationCallback)\n}    \n    <\/code><\/pre>\n<h2>5. Integrated Code<\/h2>\n<p>We will now provide the final code example by integrating the code we have written so far:<\/p>\n<pre><code>\nimport android.Manifest\nimport android.content.pm.PackageManager\nimport android.location.Location\nimport androidx.appcompat.app.AppCompatActivity\nimport android.os.Bundle\nimport android.widget.Toast\nimport androidx.core.app.ActivityCompat\nimport com.google.android.gms.location.*\n\nclass MainActivity : AppCompatActivity() {\n    private lateinit var fusedLocationClient: FusedLocationProviderClient\n    private lateinit var locationRequest: LocationRequest\n    private lateinit var locationCallback: LocationCallback\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        setContentView(R.layout.activity_main)\n\n        fusedLocationClient = LocationServices.getFusedLocationProviderClient(this)\n        createLocationRequest()\n        createLocationCallback()\n        getLastLocation()\n    }\n\n    private fun createLocationRequest() {\n        locationRequest = LocationRequest.create().apply {\n            interval = 10000 \/\/ 10 seconds\n            fastestInterval = 5000 \/\/ 5 seconds\n            priority = LocationRequest.PRIORITY_HIGH_ACCURACY\n        }\n    }\n\n    private fun createLocationCallback() {\n        locationCallback = object : LocationCallback() {\n            override fun onLocationResult(locationResult: LocationResult?) {\n                locationResult ?: return\n                for (location in locationResult.locations) {\n                    Toast.makeText(this@MainActivity, \"Current location: ${location.latitude}, ${location.longitude}\", Toast.LENGTH_LONG).show()\n                }\n            }\n        }\n    }\n\n    private fun getLastLocation() {\n        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED\n            && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {\n            ActivityCompat.requestPermissions(this,\n                arrayOf(Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION), 1000)\n            return\n        }\n\n        fusedLocationClient.lastLocation.addOnSuccessListener(this) { location ->\n            if (location != null) {\n                Toast.makeText(this, \"Latitude: ${location.latitude}, Longitude: ${location.longitude}\", Toast.LENGTH_LONG).show()\n            } else {\n                Toast.makeText(this, \"Unable to get location.\", Toast.LENGTH_LONG).show()\n            }\n        }\n    }\n\n    private fun startLocationUpdates() {\n        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED\n            && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {\n            ActivityCompat.requestPermissions(this,\n                arrayOf(Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION), 1000)\n            return\n        }\n        fusedLocationClient.requestLocationUpdates(locationRequest, locationCallback, null)\n    }\n\n    private fun stopLocationUpdates() {\n        fusedLocationClient.removeLocationUpdates(locationCallback)\n    }\n\n    override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {\n        super.onRequestPermissionsResult(requestCode, permissions, grantResults)\n        if (requestCode == 1000) {\n            if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {\n                getLastLocation()\n            } else {\n                Toast.makeText(this, \"Location permission denied.\", Toast.LENGTH_LONG).show()\n            }\n        }\n    }\n}\n    <\/out><\/code><\/pre>\n<h2>6. Conclusion<\/h2>\n<p>In this course, we learned how to obtain user location in Android using Kotlin. We explored how to utilize GPS and location service APIs to provide personalized services. With this foundation, you can move on to more complex location-based services.<\/p>\n<h2>7. Next Steps<\/h2>\n<p>Next steps could include displaying the location on a map or implementing radius searching for specific locations. This will provide a richer user experience.<\/p>\n<footer>\n<p>\u00a9 2023, Kotlin Android App Development Course. All rights reserved.<\/p>\n<\/footer>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this course, we will explore in detail how to obtain user location in Android apps using Kotlin. Location tracking using GPS and technology is a very important feature in modern mobile apps. By utilizing user location information, we can provide more personalized services. 1. Overview of Android Location Services In Android, the FusedLocationProviderClient from &hellip; <a href=\"https:\/\/atmokpo.com\/w\/36973\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Kotlin Android App Development Course, Getting User Location&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[143],"tags":[],"class_list":["post-36973","post","type-post","status-publish","format-standard","hentry","category-kotlin-android-app-development"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Kotlin Android App Development Course, Getting User Location - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atmokpo.com\/w\/36973\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kotlin Android App Development Course, Getting User Location - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"In this course, we will explore in detail how to obtain user location in Android apps using Kotlin. Location tracking using GPS and technology is a very important feature in modern mobile apps. By utilizing user location information, we can provide more personalized services. 1. Overview of Android Location Services In Android, the FusedLocationProviderClient from &hellip; \ub354 \ubcf4\uae30 &quot;Kotlin Android App Development Course, Getting User Location&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/36973\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:53:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T13:02:05+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/36973\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36973\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Kotlin Android App Development Course, Getting User Location\",\"datePublished\":\"2024-11-01T09:53:45+00:00\",\"dateModified\":\"2024-11-01T13:02:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36973\/\"},\"wordCount\":376,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Kotlin Android app development\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/36973\/\",\"url\":\"https:\/\/atmokpo.com\/w\/36973\/\",\"name\":\"Kotlin Android App Development Course, Getting User Location - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:53:45+00:00\",\"dateModified\":\"2024-11-01T13:02:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36973\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/36973\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/36973\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kotlin Android App Development Course, Getting User Location\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Kotlin Android App Development Course, Getting User Location - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/atmokpo.com\/w\/36973\/","og_locale":"ko_KR","og_type":"article","og_title":"Kotlin Android App Development Course, Getting User Location - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"In this course, we will explore in detail how to obtain user location in Android apps using Kotlin. Location tracking using GPS and technology is a very important feature in modern mobile apps. By utilizing user location information, we can provide more personalized services. 1. Overview of Android Location Services In Android, the FusedLocationProviderClient from &hellip; \ub354 \ubcf4\uae30 \"Kotlin Android App Development Course, Getting User Location\"","og_url":"https:\/\/atmokpo.com\/w\/36973\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:53:45+00:00","article_modified_time":"2024-11-01T13:02:05+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"5\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/36973\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/36973\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Kotlin Android App Development Course, Getting User Location","datePublished":"2024-11-01T09:53:45+00:00","dateModified":"2024-11-01T13:02:05+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/36973\/"},"wordCount":376,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Kotlin Android app development"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/36973\/","url":"https:\/\/atmokpo.com\/w\/36973\/","name":"Kotlin Android App Development Course, Getting User Location - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:53:45+00:00","dateModified":"2024-11-01T13:02:05+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/36973\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/36973\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/36973\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Kotlin Android App Development Course, Getting User Location"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36973","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=36973"}],"version-history":[{"count":2,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36973\/revisions"}],"predecessor-version":[{"id":38137,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36973\/revisions\/38137"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=36973"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=36973"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=36973"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}