{"id":1939,"date":"2015-09-01T16:48:43","date_gmt":"2015-09-01T16:48:43","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1939"},"modified":"2023-09-09T03:15:16","modified_gmt":"2023-09-09T10:15:16","slug":"building-beacon-apps-with-couchbase-mobile","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/building-beacon-apps-with-couchbase-mobile\/","title":{"rendered":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ubaa8\ubc14\uc77c\ub85c \ube44\ucf58 \uc571 \uad6c\ucd95\ud558\uae30"},"content":{"rendered":"<p style=\"text-align:center\">\u00a0<\/p>\n<p>2013\ub144\uc5d0 Apple Inc.\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \uae30\uc220\uc744 \ub3c4\uc785\ud588\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/en.wikipedia.org\/wiki\/IBeacon\">\uc544\uc774\ube44\ucf58<\/a> \ub85c \uc54c\ub824\uc9c4 \ube14\ub8e8\ud22c\uc2a4 4.0 \ud504\ub85c\ud1a0\ucf5c \uc704\uc5d0\uc11c \uc2e4\ud589\ub429\ub2c8\ub2e4. <a href=\"https:\/\/en.wikipedia.org\/wiki\/Bluetooth_low_energy\">\ube14\ub8e8\ud22c\uc2a4 \uc800\uc5d0\ub108\uc9c0<\/a> \ub610\ub294 BLE.  \ube14\ub8e8\ud22c\uc2a4 \uc9c0\uc6d0 \ub514\ubc14\uc774\uc2a4\ub294 \uc2a4\uc2a4\ub85c\ub97c \uc2dd\ubcc4\ud560 \uc218 \uc788\uc9c0\ub9cc, \uc77c\ubc18\uc801\uc73c\ub85c \uc2a4\ub9c8\ud2b8\ud3f0\uacfc \ube14\ub8e8\ud22c\uc2a4 \ud5e4\ub4dc\uc14b\uc744 \ud398\uc5b4\ub9c1\ud558\ub294 \uac83\ucc98\ub7fc \ud638\uc2a4\ud2b8\uac00 \ub514\ubc14\uc774\uc2a4\uc640 1\ub3001\ub85c \ud398\uc5b4\ub9c1\ud558\ub294 \ubc29\uc2dd\uc73c\ub85c \uc774\ub8e8\uc5b4\uc9d1\ub2c8\ub2e4.  \uc544\uc774\ube44\ucf58\uc740 \ubbf8\ub9ac \uad6c\uc131\ub41c \uba87 \uac00\uc9c0 \uc815\ubcf4\ub97c \uc804\uc1a1\ud558\ub294 \ube0c\ub85c\ub4dc\uce90\uc2a4\ud2b8 \uc11c\ube44\uc2a4\uc77c \ubfd0\uc774\uba70 \ub2e4\ub978 \ube14\ub8e8\ud22c\uc2a4 \uc11c\ube44\uc2a4\uc640 \ubcd1\ub82c\ub85c \uc2e4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.  \ub17c\uc758\ub97c \uc704\ud574 \ub2e4\uc74c\uacfc \uac19\uc740 \uc194\ub8e8\uc158\uc5d0\uc11c \ube44\ucf58 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub9cc\ub4e4 \ub54c \uad00\uc2ec \uc788\ub294 \ub124 \uac00\uc9c0 \ub9e4\uac1c \ubcc0\uc218\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/estimote.com\/\">Estimote<\/a> \ub610\ub294 <a href=\"https:\/\/www.gimbal.com\/\">\uc9d0\ubc8c<\/a> \ub294 UUID \ubb38\uc790\uc5f4, \uc8fc 16\ube44\ud2b8 \uc22b\uc790, \ubd80 16\ube44\ud2b8 \uc22b\uc790, \uc2e0\ud638 \uac15\ub3c4 \uac12\uc785\ub2c8\ub2e4.<\/p>\n<p style=\"text-align:justify\">iOS7\uc5d0\uc11c Apple\uc740 \uc544\uc774\ube44\ucf58 \uc791\uc5c5\uc744 \uc704\ud55c \ub77c\uc774\ube0c\ub7ec\ub9ac \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\uba70, 3<sup>rd<\/sup> \ub2e4\ub978 \ud50c\ub7ab\ud3fc\uc6a9 \ud30c\ud2f0 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc18c\uac1c\ud558\uc9c0\ub9cc, \uc5ec\uae30 \ube14\ub85c\uadf8\uc5d0\uc11c\ub294 iOS\uc5d0 \ucd08\uc810\uc744 \ub9de\ucd9c \uac83\uc785\ub2c8\ub2e4.  \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ubaa8\ubc14\uc77c \uae30\uc220\uc744 \uacb0\ud569\ud55c \uc5d0\ub4dc \uc544\ub80c\ubc84\uadf8\uc640 <a href=\"https:\/\/arenberg@epage.com\">EPage \ud300<\/a> \ub294 iBeacon\uc744 \ub9ce\uc774 \ud65c\uc6a9\ud558\uace0 \ub85c\uceec \uc2a4\ud1a0\ub9ac\uc9c0\uc5d0 Couchbase Lite\ub97c \ud65c\uc6a9\ud558\ub294 \ub3d9\uc2dc\uc5d0 Couchbase Sync Gateway\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc218\ub9ce\uc740 \uae30\uae30 \uac04\uc5d0 \ub370\uc774\ud130\ub97c \ub3d9\uae30\ud654\ud558\ub294 \uc11c\ube44\uc2a4\ub97c \uac1c\ubc1c \uc911\uc785\ub2c8\ub2e4.<\/p>\n<p style=\"text-align:justify\">\uc774\uc81c \uc774 iBeacon \uc11c\ube44\uc2a4\uc758 3\uac00\uc9c0 \uc8fc\uc694 \uad6c\uc131 \uc694\uc18c\uc640 Couchbase Mobile \uae30\uc220\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc774\ub7ec\ud55c \ud575\uc2ec \uae30\ub2a5\uc744 \uad6c\ud604\ud558\ub294 \ubc29\ubc95\uc744 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \ubaa8\ub4e0 \ucf54\ub4dc\ub294 Swift 1.2\ub85c \uc791\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<h3><strong>\uc7a5\uce58\uc5d0 \ub85c\uceec\ub85c \ub370\uc774\ud130\ub97c Couchbase Lite\uc5d0 \uc800\uc7a5\ud558\uae30<\/strong><\/h3>\n<p>\uc774 \uc11c\ube44\uc2a4\ub294 \uba3c\uc800 \uc8fc\ubcc0 \ube44\ucf58\uc5d0\uc11c \uc815\ubcf4\ub97c \uc218\uc9d1\ud558\uace0 \uc7a5\uce58 \uc815\ubcf4\ub97c \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uae30\ub85d\ud569\ub2c8\ub2e4.  \ud0d0\uc0c9\uc744 \uc704\ud574 Apple\uc740 \ub9ce\uc740 \uc591\uc758 <a href=\"https:\/\/developer.apple.com\/library\/ios\/documentation\/UserExperience\/Conceptual\/LocationAwarenessPG\/RegionMonitoring\/RegionMonitoring.html\">\ubb38\uc11c<\/a> \ub97c \ucc38\uc870\ud558\uc5ec \uadfc\ucc98\uc758 \uc544\uc774\ube44\ucf58\uc744 \ucc3e\uace0 \ubc94\uc704\ub97c \uc9c0\uc815\ud558\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf4\uc138\uc694.  \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ub77c\uc774\ud2b8\ub97c \ubaa8\ubc14\uc77c \uc571\uc5d0 \ud1b5\ud569\ud558\ub824\uba74 \ub2e4\uc74c \ub9c1\ud06c\ub97c \ucc38\uc870\ud558\uc138\uc694. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/developers\/mobile\/\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ubaa8\ubc14\uc77c \uac1c\ubc1c\uc790 \ud3ec\ud138<\/a> \ub97c \ucc38\uc870\ud558\uc5ec \uc0d8\ud50c \ucf54\ub4dc\ub97c \ud655\uc778\ud558\uc138\uc694.\u00a0<\/p>\n<h3><strong>ORM \uad6c\ud604<\/strong><\/h3>\n<p>\uc571\uc774 \ub124\uc774\ud2f0\ube0c \ud074\ub798\uc2a4\uc5d0 \uac1d\uccb4\ub97c \uc720\uc9c0\ud558\ub3c4\ub85d \ud558\uace0 Couchbase \ud45c\ud604\uc5d0 \ub9e4\ud551\ud558\ub294 ORM\uc744 \uad6c\ud604\ud560 \uac83\uc785\ub2c8\ub2e4.  \uc571\uc774 iBeacon \uadf8\ub8f9\uc744 \ucc3e\uc73c\uba74 \ud574\ub2f9 \ud074\ub798\uc2a4 \uc624\ube0c\uc81d\ud2b8\uac00 \uc0dd\uc131\ub429\ub2c8\ub2e4.  \uc774 \ud074\ub798\uc2a4\uc5d0\ub294 \uac1c\uccb4\ub97c Couchbase\uc5d0 \uc800\uc7a5\ud558\uace0 Couchbase\uc5d0\uc11c \ub85c\ub4dc\ud558\uae30 \uc704\ud55c \ucf54\ub4dc\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.  \ub2e4\uc74c\uc740 iBeacon\uc744 \ubcf4\uc720\ud558\uae30 \uc704\ud55c \ud074\ub798\uc2a4\uc785\ub2c8\ub2e4:<\/p>\n<pre>\r\n<code class=\"language-swift\">\r\n\r\nclass Beacon : EntityDocument {\r\n\r\n    var proximityID = \u201cXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"\r\n    var major : Int? = 0\r\n    var minor : Int? = 0\r\n\r\n    override func save() {\r\n        let dict = NSMutableDictionary()\r\n        dict[\"type\"] = \"gbeacon\"\r\n        dict[\"proximityID\"] = proximityID\r\n        dict[\"major\"] = major ?? 0\r\n        dict[\"minor\"] = minor ?? 0\r\n        super.save(dict)\r\n    }\r\n\r\n    override func load(document: CBLDocument) {\r\n        super.load(document)\r\n        proximityID = document.properties[\"proximityID\"] as! String\r\n        major = document.properties[\"major\"] as? Int\r\n        minor = document.properties[\"minor\"] as? Int\r\n    }\r\n}\r\n\r\n\/\/EntityDocument is a base class for various objects:\r\nclass EntityDocument {\r\n    var document : CBLDocument?\r\n    init () {}\r\n    func save(dict: NSDictionary) {\r\n        if document == nil {\r\n            document = Database.sharedDatabase.createDocument(dict, object:self)\r\n        } else {\r\n            var error: NSError?\r\n            var properties = NSMutableDictionary(dictionary: document!.properties)\r\n            properties.addEntriesFromDictionary(dict as [NSObject : AnyObject])\r\n            if document!.putProperties(properties as [NSObject : AnyObject], error: &amp;error) == nil {\r\n                NSLog(\"%@\", error!)\r\n            }\r\n        }\r\n    }\r\n    func load(document: CBLDocument) {\r\n        self.document = document\r\n    }\r\n    func delete() {\r\n        var error : NSError?\r\n        if let doc = document {\r\n            if !doc.deleteDocument(&amp;error) {\r\n                \/\/ Handle Error\r\n            }\r\n        }\r\n    }\r\n}\r\n\r\n\/\/Now can create Beacon object from a discovered 'foundBeacon'(CLBeacon iOS object) and save it simply with:\r\nlet beacon = Beacon()\r\nbeacon.proximityID = foundBeacon.proximityUUID\r\nbeacon.major = foundBeacon.major\r\nbeacon.minor = foundBeacon.minor\r\nbeacon.save()\r\n}\r\n<\/code><\/pre>\n<p>\u00a0<\/p>\n<h3><strong>\ube44\ucf58 \ub370\uc774\ud130 \ub3d9\uae30\ud654<\/strong><\/h3>\n<p>\ub124\ud2b8\uc6cc\ud06c\uc5d0 \uc5f0\uacb0\ub418\uba74 Couchbase Mobile\uc740 \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec \ub370\uc774\ud130\ub97c \ub3d9\uae30\ud654\ud569\ub2c8\ub2e4. <a href=\"https:\/\/bit.ly\/MobileCBSync\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ub3d9\uae30\ud654 \uac8c\uc774\ud2b8\uc6e8\uc774<\/a>.  \ud478\uc2dc \ubc0f \ud480 \ubcf5\uc81c\ub97c \uc124\uc815\ud558\uba74 \uc774 \uc791\uc5c5\uc774 \uc790\ub3d9\uc73c\ub85c \ucc98\ub9ac\ub418\ubbc0\ub85c \uc2dc\uc2a4\ud15c\uc744 \ub9e4\uc6b0 \uc27d\uac8c \uc870\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.  \uc635\uc800\ubc84 \uba54\uc11c\ub4dc\ub97c \ucd94\uac00\ud558\uc5ec \ud478\uc2dc \ubc0f \ud480 \uc791\uc5c5\uc758 \uc0c1\ud0dc\ub97c \uc218\uc2e0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.  \uadf8\ub7ec\ub098 \uac01 \uc7a5\uce58\ub294 \uc870\uce58\ub97c \ucde8\ud574\uc57c \ud558\ub294 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc758 \ubcc0\uacbd \uc0ac\ud56d\uc744 \uc218\uc2e0\ud574\uc57c \ud558\ubbc0\ub85c \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ubcc0\uacbd \uc54c\ub9bc\uc744 \uc704\ud55c \uc635\uc800\ubc84\ub97c \ucd94\uac00\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.  \ub370\uc774\ud130\ubca0\uc774\uc2a4\uac00 \ubcc0\uacbd\ub418\uba74 \ub85c\uceec \ub124\uc774\ud2f0\ube0c \uac1d\uccb4\ub97c \uc5c5\ub370\uc774\ud2b8\ud569\ub2c8\ub2e4.  \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc0c1\ud638 \uc791\uc6a9\uc744 \uad00\ub9ac\ud558\ub824\uba74 \uc2f1\uae00\ud1a4\uc744 \uc778\uc2a4\ud134\uc2a4\ud654\ud558\ub294 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uac1d\uccb4\ub97c \ub9cc\ub4ed\ub2c8\ub2e4.  \uc8fc\uc694 \uac1c\ub150\uc740 \uc544\ub798 \ucf54\ub4dc\uc5d0 \uc124\uba85\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<pre>\r\n<code class=\"language-swift\">\r\n\r\nprivate let _DatabaseSharedInstance = Database()\r\n\r\nclass Database {\r\n    var manager: CBLManager = CBLManager.sharedInstance()\r\n    var db: CBLDatabase\r\n    var my_push: CBLReplication\r\n    var my_pull: CBLReplication\r\n\r\n    class var sharedDatabase: Database {\r\n        return _DatabaseSharedInstance\r\n    }\r\n    init() {\r\n        var replication_url = NSURL(string: REPLICATION_URL)\r\n        var error :NSError?\r\n        db = manager.databaseNamed(DATABASE_NAME, error: &amp;error)\r\n\r\n        let push = db.createPushReplication(replication_url)\r\n        let pull = db.createPullReplication(replication_url)\r\n        push?.continuous = true\r\n        pull?.continuous = true\r\n\r\n        my_push = push\r\n        my_pull = pull\r\n\r\n        push.start()\r\n        pull.start()\r\n        \r\n        NSNotificationCenter.defaultCenter().addObserver(self, selector: \"replicationChanged:\", name: kCBLReplicationChangeNotification, object: push)\r\n        NSNotificationCenter.defaultCenter().addObserver(self, selector: \"replicationChanged:\", name: kCBLReplicationChangeNotification, object: pull)\r\n        NSNotificationCenter.defaultCenter().addObserver(self, selector: \"databaseChanged:\", name: kCBLDatabaseChangeNotification, object: db)\r\n    }\r\n\r\n    @objc func databaseChanged(notification: NSNotification) {\r\n        if let changes = notification.userInfo![\"changes\"] as? [CBLDatabaseChange] {\r\n            for change in changes {\r\n                NSLog(\"%@ changed\", change.documentID)\r\n                updateObject(change.documentID)\r\n            }\r\n        }\r\n    }\r\n    @objc func replicationChanged(notification: NSNotification) {\r\n        let active = my_pull.status == CBLReplicationStatus.Active || my_push.status == CBLReplicationStatus.Active\r\n        NSLog(\"%@ in replication changed: %@\", notification.object!.description, active)\r\n        \/\/ Now show a progress indicator:\r\n        if active {\r\n            var progress = 0.0\r\n            let total = my_push.changesCount + my_pull.changesCount\r\n            let completed = my_push.completedChangesCount + my_pull.completedChangesCount\r\n            if total &gt; 0 {\r\n                progress = Double(completed) \/ Double(total);\r\n                NSLog(\"progress: %f\", progress)\r\n            }\r\n        }\r\n    }\r\n}\r\n\r\n<\/code><\/pre>\n<p>\uc774\ub294 \ubaa8\ubc14\uc77c \uc571\uc774 \uc8fc\ubcc0 \ube44\ucf58 \ubaa8\ub2c8\ud130\ub9c1, \ub85c\uceec \uc0c1\ud0dc \uc800\uc7a5, \uc571 \uc778\uc2a4\ud134\uc2a4 \uac04\uc758 \uc815\ubcf4 \uc77c\uad00\uc131 \uc870\uc815\uc744 \uc704\ud55c \ub3d9\uae30\ud654 \uc11c\ube44\uc2a4 \uc124\uc815\uacfc \uac19\uc740 \ub85c\uceec \ud65c\ub3d9\uc744 \uc2e4\ud589\ud560 \uc218 \uc788\ub3c4\ub85d \ud558\ub294 \uc8fc\uc694 \ubd80\ubd84\uc785\ub2c8\ub2e4.  \uc774\ub97c \ud1b5\ud574 \ub354 \ub9ce\uc740 \uae30\ub2a5\uc744 \uad6c\ucd95\ud558\uace0 \uc571 \ub124\ud2b8\uc6cc\ud06c \uc804\uccb4\uc5d0\uc11c \uc0c1\ud0dc\ub97c \ub3d9\uae30\ud654\ud560 \uc218 \uc788\ub294 \uc815\uad50\ud55c \uc11c\ube44\uc2a4\ub97c \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c \ube14\ub85c\uadf8\uc5d0\uc11c\ub294 \ube44\ucf58\uc758 \uc0ac\uc6a9\uacfc <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/developers\/mobile\/\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ubaa8\ubc14\uc77c<\/a> \uae30\uc220\uc744 \uacb0\ud569\ud558\uc5ec \ub124\ud2b8\uc6cc\ud06c \uc5f0\uacb0 \uc5c6\uc774\ub3c4 \uc791\ub3d9\ud558\ub294 \uc704\uce58 \uc778\uc2dd \uc571\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/p>","protected":false},"excerpt":{"rendered":"<p>\u00a0 In 2013 Apple Inc. introduced a technology called iBeacon that runs on top of Bluetooth 4.0 protocol which is also known as Bluetooth Low Energy or BLE. \u00a0While Bluetooth enabled devices can identify themselves, the process is generally 1 [&hellip;]<\/p>","protected":false},"author":30,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"ppma_author":[8983],"class_list":["post-1939","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.2 (Yoast SEO v26.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Building Beacon Apps with Couchbase Mobile - The Couchbase Blog<\/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:\/\/www.couchbase.com\/blog\/ko\/building-beacon-apps-with-couchbase-mobile\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Building Beacon Apps with Couchbase Mobile\" \/>\n<meta property=\"og:description\" content=\"\u00a0 In 2013 Apple Inc. introduced a technology called iBeacon that runs on top of Bluetooth 4.0 protocol which is also known as Bluetooth Low Energy or BLE. \u00a0While Bluetooth enabled devices can identify themselves, the process is generally 1 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/building-beacon-apps-with-couchbase-mobile\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-09-01T16:48:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-09T10:15:16+00:00\" \/>\n<meta name=\"author\" content=\"William Hoang, Mobile Developer Advocate, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"William Hoang, Mobile Developer Advocate, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/\"},\"author\":{\"name\":\"William Hoang, Mobile Developer Advocate, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/425717456c198fdf9aaa5d7a6d42ad32\"},\"headline\":\"Building Beacon Apps with Couchbase Mobile\",\"datePublished\":\"2015-09-01T16:48:43+00:00\",\"dateModified\":\"2023-09-09T10:15:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/\"},\"wordCount\":550,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/\",\"name\":\"Building Beacon Apps with Couchbase Mobile - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2015-09-01T16:48:43+00:00\",\"dateModified\":\"2023-09-09T10:15:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Building Beacon Apps with Couchbase Mobile\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/425717456c198fdf9aaa5d7a6d42ad32\",\"name\":\"William Hoang, Mobile Developer Advocate, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/650445f1ea30314c4f3555dd680154f5\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b912c9a97568a859697ee195432d0bd7cc3ed67d720ae2e6588b67313fa49e08?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b912c9a97568a859697ee195432d0bd7cc3ed67d720ae2e6588b67313fa49e08?s=96&d=mm&r=g\",\"caption\":\"William Hoang, Mobile Developer Advocate, Couchbase\"},\"description\":\"William was a Developer Advocate on the Mobile Engineering\/Developer Experience team at Couchbase. His love for coffee and code has transcended him into the world of mobile while appreciating the offline in-person experiences. Prior, William worked on the Developer Relations team over at Twitter, BlackBerry, and Microsoft while also having been a Software Embedded GPS engineer at Research In Motion. William graduated from McGill University in Electrical Software Engineering\",\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/william-hoang\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Building Beacon Apps with Couchbase Mobile - The Couchbase Blog","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:\/\/www.couchbase.com\/blog\/ko\/building-beacon-apps-with-couchbase-mobile\/","og_locale":"ko_KR","og_type":"article","og_title":"Building Beacon Apps with Couchbase Mobile","og_description":"\u00a0 In 2013 Apple Inc. introduced a technology called iBeacon that runs on top of Bluetooth 4.0 protocol which is also known as Bluetooth Low Energy or BLE. \u00a0While Bluetooth enabled devices can identify themselves, the process is generally 1 [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/building-beacon-apps-with-couchbase-mobile\/","og_site_name":"The Couchbase Blog","article_published_time":"2015-09-01T16:48:43+00:00","article_modified_time":"2023-09-09T10:15:16+00:00","author":"William Hoang, Mobile Developer Advocate, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"William Hoang, Mobile Developer Advocate, Couchbase","Est. reading time":"3\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/"},"author":{"name":"William Hoang, Mobile Developer Advocate, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/425717456c198fdf9aaa5d7a6d42ad32"},"headline":"Building Beacon Apps with Couchbase Mobile","datePublished":"2015-09-01T16:48:43+00:00","dateModified":"2023-09-09T10:15:16+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/"},"wordCount":550,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Uncategorized"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/","url":"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/","name":"Building Beacon Apps with Couchbase Mobile - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2015-09-01T16:48:43+00:00","dateModified":"2023-09-09T10:15:16+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/building-beacon-apps-with-couchbase-mobile\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Building Beacon Apps with Couchbase Mobile"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","description":"NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4, Couchbase","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/425717456c198fdf9aaa5d7a6d42ad32","name":"\uc70c\ub9ac\uc5c4 \ud638\uc559, \ubaa8\ubc14\uc77c \uac1c\ubc1c\uc790 \uc639\ud638\uc790, Couchbase","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/650445f1ea30314c4f3555dd680154f5","url":"https:\/\/secure.gravatar.com\/avatar\/b912c9a97568a859697ee195432d0bd7cc3ed67d720ae2e6588b67313fa49e08?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b912c9a97568a859697ee195432d0bd7cc3ed67d720ae2e6588b67313fa49e08?s=96&d=mm&r=g","caption":"William Hoang, Mobile Developer Advocate, Couchbase"},"description":"\uc70c\ub9ac\uc5c4\uc740 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc758 \ubaa8\ubc14\uc77c \uc5d4\uc9c0\ub2c8\uc5b4\ub9c1\/\uac1c\ubc1c\uc790 \uacbd\ud5d8 \ud300\uc758 \uac1c\ubc1c\uc790 \uc639\ud638\uc790\uc600\uc2b5\ub2c8\ub2e4. \ucee4\ud53c\uc640 \ucf54\ub4dc\uc5d0 \ub300\ud55c \uadf8\uc758 \uc0ac\ub791\uc740 \uc624\ud504\ub77c\uc778 \ub300\uba74 \uacbd\ud5d8\uc744 \uc990\uae30\uba74\uc11c \ubaa8\ubc14\uc77c\uc758 \uc138\uacc4\ub85c \ub118\uc5b4\uc654\uc2b5\ub2c8\ub2e4. \uadf8 \uc804\uc5d0\ub294 Twitter, BlackBerry, Microsoft\uc5d0\uc11c \uac1c\ubc1c\uc790 \uad00\uacc4 \ud300\uc5d0\uc11c \uc77c\ud588\uc73c\uba70, Research In Motion\uc5d0\uc11c \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc784\ubca0\ub514\ub4dc GPS \uc5d4\uc9c0\ub2c8\uc5b4\ub85c \uadfc\ubb34\ud558\uae30\ub3c4 \ud588\uc2b5\ub2c8\ub2e4. \uc70c\ub9ac\uc5c4\uc740 \ub9e5\uae38 \ub300\ud559\uad50\uc5d0\uc11c \uc804\uae30 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uacf5\ud559\uc744 \uc804\uacf5\ud588\uc2b5\ub2c8\ub2e4.","url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/william-hoang\/"}]}},"authors":[{"term_id":8983,"user_id":30,"is_guest":0,"slug":"william-hoang","display_name":"William Hoang, Mobile Developer Advocate, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/b912c9a97568a859697ee195432d0bd7cc3ed67d720ae2e6588b67313fa49e08?s=96&d=mm&r=g","author_category":"","last_name":"Hoang","first_name":"William","job_title":"","user_url":"","description":"\uc70c\ub9ac\uc5c4\uc740 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc758 \ubaa8\ubc14\uc77c \uc5d4\uc9c0\ub2c8\uc5b4\ub9c1\/\uac1c\ubc1c\uc790 \uacbd\ud5d8 \ud300\uc758 \uac1c\ubc1c\uc790 \uc639\ud638\uc790\uc600\uc2b5\ub2c8\ub2e4. \ucee4\ud53c\uc640 \ucf54\ub4dc\uc5d0 \ub300\ud55c \uadf8\uc758 \uc0ac\ub791\uc740 \uc624\ud504\ub77c\uc778 \ub300\uba74 \uacbd\ud5d8\uc744 \uc990\uae30\uba74\uc11c \ubaa8\ubc14\uc77c\uc758 \uc138\uacc4\ub85c \ub118\uc5b4\uc654\uc2b5\ub2c8\ub2e4. \uadf8 \uc804\uc5d0\ub294 Twitter, BlackBerry, Microsoft\uc5d0\uc11c \uac1c\ubc1c\uc790 \uad00\uacc4 \ud300\uc5d0\uc11c \uc77c\ud588\uc73c\uba70, Research In Motion\uc5d0\uc11c \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc784\ubca0\ub514\ub4dc GPS \uc5d4\uc9c0\ub2c8\uc5b4\ub85c \uadfc\ubb34\ud558\uae30\ub3c4 \ud588\uc2b5\ub2c8\ub2e4. \uc70c\ub9ac\uc5c4\uc740 \ub9e5\uae38 \ub300\ud559\uad50\uc5d0\uc11c \uc804\uae30 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uacf5\ud559\uc744 \uc804\uacf5\ud588\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/1939","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/users\/30"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=1939"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/1939\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=1939"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=1939"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=1939"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=1939"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}