{"id":5015,"date":"2018-04-17T10:00:01","date_gmt":"2018-04-17T17:00:01","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=5015"},"modified":"2025-06-13T21:37:10","modified_gmt":"2025-06-14T04:37:10","slug":"xcode-playground-couchbase-mobile","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/xcode-playground-couchbase-mobile\/","title":{"rendered":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ub77c\uc774\ud2b8 2.0\uc5d0\uc11c \ucffc\ub9ac API \ud0d0\uc0c9\uc744 \uc704\ud55c Xcode \ud50c\ub808\uc774\uadf8\ub77c\uc6b4\ub4dc"},"content":{"rendered":"<p>\uc774 \uac8c\uc2dc\ubb3c\uc740 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ubaa8\ubc14\uc77c 2.0\uc758 \uc0c8\ub85c\uc6b4 \ucffc\ub9ac API\ub97c \ud0d0\uc0c9\ud558\uae30 \uc704\ud574 Xcode \ud50c\ub808\uc774\uadf8\ub77c\uc6b4\ub4dc\ub97c \uc0ac\uc6a9\ud558\ub294 \ub2e8\uacc4\ubcc4 \uac00\uc774\ub4dc\uc785\ub2c8\ub2e4. The <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/couchbase-mobile-2-0\/\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ub77c\uc774\ud2b8 2.0 \ub9b4\ub9ac\uc2a4<\/a> \uc5d0 \uae30\ubc18\ud55c \uac04\uc18c\ud654\ub41c \ucffc\ub9ac API\ub97c \ub3c4\uc785\ud569\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/products\/n1ql\/\">N1QL<\/a>\ub294 JSON\uc6a9 SQL\uc744 \ud655\uc7a5\ud558\ub294 Couchbase\uc758 \uc120\uc5b8\uc801 \ucffc\ub9ac \uc5b8\uc5b4\uc785\ub2c8\ub2e4. SQLite\uc5d0 \uc775\uc219\ud558\uc2e0 \ubd84\ub4e4\uc740 \uc0c8\ub85c\uc6b4 <em>\ucffc\ub9ac \ube4c\ub354<\/em> \uc778\ud130\ud398\uc774\uc2a4\uc785\ub2c8\ub2e4. \ucffc\ub9ac API\ub294 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Fluent_interface\">\uc720\ucc3d\ud55c API \ub514\uc790\uc778 \ud328\ud134<\/a>\uba54\uc11c\ub4dc \uce90\uc2a4\ucf00\uc774\ub529\uc744 \uc0ac\uc6a9\ud558\uc5ec \ub3c4\uba54\uc778 \ud2b9\uc815 \uc5b8\uc5b4\ucc98\ub7fc \uc77d\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/en.wikipedia.org\/wiki\/Domain-specific_language\">(DSL)<\/a>. \ub530\ub77c\uc11c \uc778\ud130\ud398\uc774\uc2a4\uac00 \ub9e4\uc6b0 \uc9c1\uad00\uc801\uc774\uace0 \uc774\ud574\ud558\uae30 \uc27d\uc2b5\ub2c8\ub2e4.<\/p>\n<p>Xcode Playground\ub294 \uc2e0\uc18d\ud55c \ucf54\ub4dc\ub97c \uc989\uc2dc \uc791\uc131\ud558\uace0 \uc2e4\ud589\ud560 \uc218 \uc788\ub294 \ub300\ud654\ud615 \ud658\uacbd\uc73c\ub85c, \ubcf8\uaca9\uc801\uc778 Xcode \uc571 \ud504\ub85c\uc81d\ud2b8\ub97c \ub9cc\ub4e4\uc9c0 \uc54a\uace0\ub3c4 API\ub97c \ud3b8\ub9ac\ud558\uac8c \ud559\uc2b5\ud558\uace0 \ud0d0\uc0c9\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc774\ub294 \ucfe0\ud06c\ubca0\uc774\uc2a4 \ub77c\uc774\ud2b8 2.0 API\ub97c \ud0d0\uc0c9\ud558\uae30 \uc704\ud55c \uc644\ubcbd\ud55c \uc0ac\uc6a9 \uc0ac\ub840\uc785\ub2c8\ub2e4. \uc5ec\uae30\uc11c\ub294 \ud50c\ub808\uc774\uadf8\ub77c\uc6b4\ub4dc\ub97c \ub9cc\ub4e4\uc9c0 \uc54a\uc744 \uac83\uc785\ub2c8\ub2e4. \uc5ec\uae30\uc11c\ub294 \ucffc\ub9ac API \ud14c\uc2a4\ud2b8\ub97c \uc704\ud574 \ud2b9\ubcc4\ud788 \uad6c\uc131\ud55c \ub180\uc774\ud130\ub97c \uc0ac\uc6a9\ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p>Xcode \ud50c\ub808\uc774\uadf8\ub77c\uc6b4\ub4dc\uc5d0\uc11c\ub294 \ucffc\ub9ac\ub97c \uc2e0\uc18d\ud558\uac8c \ubcf4\uc5ec \uc8fc\uc9c0\ub9cc, \uc5b8\uc5b4\ubcc4 \uad00\uc6a9\uad6c\ub97c \uc81c\uc678\ud558\uace0\ub294 \ub2e4\uc591\ud55c Couchbase Lite \ud50c\ub7ab\ud3fc\uc5d0\uc11c QueryBuilder API\uc758 \ud1b5\ud569\ub41c \ud2b9\uc131\uc744 \uace0\ub824\ud560 \ub54c Couchbase Lite\uc5d0\uc11c \uc9c0\uc6d0\ub418\ub294 \ub2e4\ub978 \ud50c\ub7ab\ud3fc \uc5b8\uc5b4\ub85c \ucffc\ub9ac\ub97c \uc27d\uac8c \ubc88\uc5ed\ud560 \uc218 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4. \ub530\ub77c\uc11c \ub2e4\uc74c\uacfc \uac19\uc740 \uacbd\uc6b0\uc5d0\ub3c4 <em>not<\/em> Swift \uac1c\ubc1c\uc790\ub77c\uba74 API \ud0d0\uc0c9\uc744 \uc704\ud574 Xcode \ud50c\ub808\uc774\uadf8\ub77c\uc6b4\ub4dc\ub97c \ud65c\uc6a9\ud560 \uc218 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4. \uc774 \uac8c\uc2dc\ubb3c\uc740 Swift \ub610\ub294 iOS \uac1c\ubc1c\uc5d0 \uc775\uc219\ud558\ub2e4\ub294 \uac00\uc815\uc744 \uc804\uc81c\ub85c \ud558\uc9c0 \uc54a\uc73c\ubbc0\ub85c iOS \uac1c\ubc1c \ucd08\ubcf4\uc790\ub77c\ub3c4 \ub530\ub77c\ud560 \uc218 \uc788\uc744 \uac83\uc785\ub2c8\ub2e4. \ubb3c\ub860 Mac\uc774 \ud544\uc694\ud569\ub2c8\ub2e4!<\/p>\n<p>\ucffc\ub9ac \ube4c\ub354 API\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 \ub2e4\uc74c\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/2.0\/couchbase-lite\/index.html\">API \ucc38\uc870<\/a> \uac00\uc774\ub4dc.<\/p>\n<p><!--more--><\/p>\n<h3 id=\"recommendedreading\">\ucd94\ucc9c \uc77d\uae30<\/h3>\n<p>\uc774 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc5d0\uc11c\ub294 \ub2e4\uc591\ud55c \ucffc\ub9ac \uae30\ub2a5\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc124\uba85\ud569\ub2c8\ub2e4.<br \/>\n&#8211; <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/sql-for-json-query-interface-couchbase-mobile\/\">\ucffc\ub9ac API\uc758 \uae30\ubcf8 \uc0ac\ud56d<\/a><br \/>\n&#8211; <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/querying-array-collections-couchbase-mobile\/\">\ubc30\uc5f4 \uceec\ub809\uc158 \ucffc\ub9ac<\/a><br \/>\n&#8211; <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/full-text-search-couchbase-mobile-2-0\/\">\uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9 \uae30\ub2a5.<\/a><br \/>\n&#8211; <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/join-queries-couchbase-mobile\/\">\uae30\ubcf8 \uc870\uc778 \ucffc\ub9ac<\/a><\/p>\n<h3 id=\"background\">\ubc30\uacbd<\/h3>\n<p>1.x \ubc84\uc804\uc758 Couchbase Mobile\uc744 \uc0ac\uc6a9 \uc911\uc774\ub77c\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \ub0b4\uc6a9\uc744 \uc798 \uc54c\uace0 \uacc4\uc2e4 \uac83\uc785\ub2c8\ub2e4. <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/1.4\/training\/develop\/using-the-database\/index.html#query-documents\">\ub9f5 \ubcf4\uae30<\/a> \ub97c \uc0ac\uc6a9\ud558\uc5ec \uc778\ub371\uc2a4\uc640 \ucffc\ub9ac\ub97c \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. 2.0\uc5d0\uc11c\ub294 \ub354 \uc774\uc0c1 \ubdf0\uc640 \ub9f5 \ud568\uc218\ub97c \ub9cc\ub4e4 \ud544\uc694\uac00 \uc5c6\uc2b5\ub2c8\ub2e4! \ub300\uc2e0, \uac04\ub2e8\ud55c \uc778\ud130\ud398\uc774\uc2a4\ub97c \ud1b5\ud574 \uc778\ub371\uc2a4\ub97c \ub9cc\ub4e4\uace0 \ucffc\ub9ac \ube4c\ub354 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud574 \ucffc\ub9ac\ub97c \uad6c\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc0c8\ub85c\uc6b4 \ucffc\ub9ac \uc778\ud130\ud398\uc774\uc2a4\ub294 \uc0ac\uc6a9\ud558\uae30 \ub354 \uac04\ub2e8\ud558\uace0 \ud6e8\uc52c \ub354 \uac15\ub825\ud569\ub2c8\ub2e4.<\/p>\n<h3 id=\"tldr\">TL;DR<\/h3>\n<p>\uc6d0\ud558\ub294 \uacbd\uc6b0 \uc774 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc5d0\uc11c \uc124\uba85\ud558\ub294 \ubaa8\ub4e0 \ub0b4\uc6a9\uc744 \ub3d9\uc601\uc0c1\uc73c\ub85c \ub179\ud654\ud574 \ubcf4\uc138\uc694.<\/p>\n<p><iframe loading=\"lazy\" title=\"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ubaa8\ubc14\uc77c\uc5d0\uc11c \ucffc\ub9ac API \ud14c\uc2a4\ud2b8 \ubc0f \ud0d0\uc0c9\uc744 \uc704\ud55c Xcode \ud50c\ub808\uc774\uadf8\ub77c\uc6b4\ub4dc\" width=\"900\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/9NA2OXdSiqA?feature=oembed&#038;enablejsapi=1&#038;origin=https:\/\/www.couchbase.com\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe><\/p>\n<h3 id=\"pre-requisites\">\uc0ac\uc804 \uc694\uad6c \uc0ac\ud56d<\/h3>\n<ul>\n<li>Xcode 8.3.3+ , \ucd5c\uc2e0 \ubc84\uc804\uc740 \ub2e4\uc74c\uc5d0\uc11c \ub2e4\uc6b4\ub85c\ub4dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/itunes.apple.com\/us\/app\/xcode\/id497799835?mt=12\">Mac App Store<\/a><\/li>\n<\/ul>\n<p>\ud50c\ub808\uc774\uadf8\ub77c\uc6b4\ub4dc\ub294 Swift 3.1+\uc640 \ud638\ud658\ub429\ub2c8\ub2e4.<\/p>\n<h4 id=\"installation\">\uc124\uce58<\/h4>\n<ul>\n<li>\ubcf5\uc81c <em>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4-\ub77c\uc774\ud2b8-ios-api-\ud50c\ub808\uc774\uadf8\ub77c\uc6b4\ub4dc<\/em> \ud130\ubbf8\ub110\uc5d0\uc11c \ub2e4\uc74c \uba85\ub839\uc744 \uc2e4\ud589\ud558\uc5ec \uae43\ud5c8\ube0c\uc758 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<pre><code> $ git clone https:\/\/github.com\/couchbaselabs\/couchbase-lite-ios-api-playground<\/code><\/pre>\n<ul>\n<li>\uc6b0\ub9ac\ub294 \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud560 \uac83\uc785\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/Carthage\/Carthage\">\uce74\ub974\ud0c0\uace0<\/a> \ub97c \ud074\ub9ad\ud558\uc5ec CouchbaseLite\ub97c \ub2e4\uc6b4\ub85c\ub4dc\ud558\uace0 \uc124\uce58\ud558\uc138\uc694. Carthage\ub294 Cocoa \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc704\ud55c \uc885\uc18d\uc131 \uad00\ub9ac \uc2dc\uc2a4\ud15c\uc785\ub2c8\ub2e4. iOS\uc6a9 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ub77c\uc774\ud2b8\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/2.0\/couchbase-lite\/swift.html#getting-started\">\ubd84\uc0b0<\/a> \ub97c \ud1b5\ud574 \ub2e4\uc6b4\ub85c\ub4dc\ud558\uac70\ub098 \uc800\ud76c\uc758 <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/downloads\/\">\ub2e4\uc6b4\ub85c\ub4dc<\/a> \ud398\uc774\uc9c0\ub85c \uc774\ub3d9\ud569\ub2c8\ub2e4. \uc5ec\uae30\uc11c\ub294 \uce74\ub974\ud0c0\uace0\ub97c \uc0ac\uc6a9\ud558\uaca0\uc2b5\ub2c8\ub2e4.<br \/>\n\uce74\ub974\ud0c0\uace0\uac00 \uc5c6\ub294 \uacbd\uc6b0 \ub2e4\uc74c\uc744 \ub530\ub974\uc138\uc694. <a href=\"https:\/\/github.com\/Carthage\/Carthage#installing-carthage\">\uc9c0\uce68<\/a> \ub97c \ud074\ub9ad\ud558\uc5ec MacOS\uc5d0 \uce74\ub974\ud0c0\uace0\ub97c \uc124\uce58\ud569\ub2c8\ub2e4.<\/li>\n<li>\ud130\ubbf8\ub110 \ucc3d\uc5d0 \ub2e4\uc74c \uba85\ub839\uc744 \uc785\ub825\ud558\uc5ec \uce74\ud2f0\uc9c0 \uc124\uce58\ub97c \ud655\uc778\ud569\ub2c8\ub2e4. \uc124\uce58\ub41c \uce74\ub974\ud0c0\uace0 \ubc84\uc804\uc774 \ud45c\uc2dc\ub429\ub2c8\ub2e4.<\/li>\n<\/ul>\n<pre><code> $ carthage version<\/code><\/pre>\n<ul>\n<li>\ud30c\uc77c\uc774 \ub4e4\uc5b4 \uc788\ub294 \ud3f4\ub354\ub85c \uc804\ud658\ud569\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/Carthage\/Carthage\/blob\/master\/Documentation\/Artifacts.md#cartfile\"><em>\uce74\ud2b8 \ud30c\uc77c<\/em><\/a>. \uc774\uac83\uc740 <em>\uce74\ub974\ud0c0\uace0<\/em> \ud3f4\ub354\uc5d0 \uc800\uc7a5\ud569\ub2c8\ub2e4. Cartfile\uc740 \ud504\ub85c\uc81d\ud2b8 \uc885\uc18d\uc131\uc744 \uc9c0\uc815\ud558\uba70, \uc774 \uacbd\uc6b0 Couchbase Lite \ud504\ub808\uc784\uc6cc\ud06c\uc785\ub2c8\ub2e4.<\/li>\n<\/ul>\n<pre><code> $ cd \/path\/to\/couchbase-lite-ios-api-playground\/carthage<\/code><\/pre>\n<ul>\n<li>Carthage\ub97c \uc0ac\uc6a9\ud558\uc5ec Couchbase Lite\ub97c \ub2e4\uc6b4\ub85c\ub4dc\ud569\ub2c8\ub2e4. \uc0ac\uc6a9\ub418\ub294 Couchbase Lite\uc758 \ubc84\uc804\uc740 <em>\uce74\ud2b8 \ud30c\uc77c<\/em>. \uc6b0\ub9ac\ub294 <code>--\uad6c\ucd95 \uc5c6\uc74c<\/code> \uc635\uc158\uc744 \uc124\uc815\ud558\uc5ec \uce74\ud2f0\uc9c0\uac00 \uc18c\uc2a4\ub97c \ube4c\ub4dc\ud558\uc9c0 \uc54a\uace0 \uc9c0\uc815\ub41c GitHub \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc758 \ud30c\uc77c\ub9cc \uccb4\ud06c\uc544\uc6c3\ud558\ub3c4\ub85d \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub807\uac8c \ud558\uba74 \uc2dc\uac04\uc774 \uc808\uc57d\ub429\ub2c8\ub2e4.<\/li>\n<\/ul>\n<pre><code> $ carthage update \u2013platform ios \u2013no-build<\/code><\/pre>\n<ul>\n<li>\ud130\ubbf8\ub110\uc5d0\uc11c \ub2e4\uc74c \uba85\ub839\uc744 \uc2e4\ud589\ud558\uc5ec Couchbase Lite \ud504\ub808\uc784\uc6cc\ud06c\uac00 \uc131\uacf5\uc801\uc73c\ub85c \uccb4\ud06c\uc544\uc6c3\ub418\uc5c8\ub294\uc9c0 \ud655\uc778\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<pre><code> $ cd \/path\/to\/couchbase-lite-ios-api-playground\/carthage\r\n $ ls -l Carthage\/Checkouts\/couchbase-lite-ios\/\r\n total 24\r\n -rw-r\u2013r\u2013 1 priya.rajagopal 141224203 957 Apr 11 17:06 CouchbaseLite.podspec\r\n drwxr-xr-x@ 6 priya.rajagopal 141224203 192 Apr 11 17:09 CouchbaseLite.xcodeproj\r\n -rw-r\u2013r\u2013 1 priya.rajagopal 141224203 987 Apr 11 17:06 CouchbaseLiteSwift.podspec\r\n -rw-r\u2013r\u2013 1 priya.rajagopal 141224203 10273 Apr 11 17:06 LICENSE\r\n drwxr-xr-x 117 priya.rajagopal 141224203 3744 Apr 11 17:06 Objective-C\r\n -rw-r\u2013r\u2013 1 priya.rajagopal 141224203 2426 Apr 11 17:06 README.md\r\n drwxr-xr-x 11 priya.rajagopal 141224203 352 Apr 11 17:06 Scripts\r\n drwxr-xr-x 70 priya.rajagopal 141224203 2240 Apr 11 17:06 Swift\r\n drwxr-xr-x 4 priya.rajagopal 141224203 128 Apr 11 17:06 docs\r\n drwxr-xr-x 4 priya.rajagopal 141224203 128 Apr 11 17:06 vendor\r\n drwxr-xr-x 13 priya.rajagopal 141224203 416 Apr 11 17:06 xcconfigs<\/code><\/pre>\n<h4 id=\"setup\">\uc124\uc815<\/h4>\n<p>\ucffc\ub9ac\ub97c \uc2e4\ud589\ud558\uae30 \uc704\ud574 \ubbf8\ub9ac \ube4c\ub4dc\ub41c \ub450 \uac1c\uc758 Couchbase Lite \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud560 \uac83\uc785\ub2c8\ub2e4. Xcode Playground\uc5d0\uc11c \uc774\ub7ec\ud55c \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc561\uc138\uc2a4\ud560 \uc218 \uc788\uc73c\ub824\uba74 \ud574\ub2f9 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uac00 \ud2b9\ubcc4\ud55c \uc704\uce58\uc5d0 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4. <em>\"\uacf5\uc720 \ub180\uc774\ud130 \ub370\uc774\ud130\"<\/em> \ud3f4\ub354 \ub0b4 <em>\ubb38\uc11c<\/em> \ud3f4\ub354\ub85c \uc774\ub3d9\ud569\ub2c8\ub2e4.<br \/>\nPlayground\ub97c \ucc98\uc74c \uc124\uc815\ud560 \ub54c\ub294 \ub2e4\uc74c \ub2e8\uacc4\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \uc774\ud6c4\uc5d0\ub294 \ub2e4\uc74c \ub2e8\uacc4\ub97c \ub530\ub77c\uc57c \ud569\ub2c8\ub2e4. <em>\ub2e4\uc74c\uacfc \uac19\uc740 \uacbd\uc6b0\uc5d0\ub9cc<\/em> \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \ubcc0\uacbd\ud558\ub294 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<ul>\n<li>Mac\uc758 '\ubb38\uc11c' \ud3f4\ub354 \ub0b4\uc5d0 '\uacf5\uc720 \ub180\uc774\ud130 \ub370\uc774\ud130'\ub77c\ub294 \uc774\ub984\uc758 \ud3f4\ub354\ub97c \ub9cc\ub4ed\ub2c8\ub2e4(\ud3f4\ub354\uac00 \uc5c6\ub294 \uacbd\uc6b0).<\/li>\n<\/ul>\n<pre><code> $ mkdir ~\/Documents\/Shared\\ Playground\\ Data\/<\/code><\/pre>\n<ul>\n<li>\uc5d0\uc11c \uac00\uc838\uc628 \"travel-sample.cblite2\" \ud3f4\ub354\ub97c \ubcf5\uc0ac\ud569\ub2c8\ub2e4. <em>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4-\ub77c\uc774\ud2b8-ios-api-\ud50c\ub808\uc774\uadf8\ub77c\uc6b4\ub4dc<\/em> \uc800\uc7a5\uc18c\ub97c \"\uacf5\uc720 \ub180\uc774\ud130 \ub370\uc774\ud130\"\uc5d0 \ucd94\uac00\ud569\ub2c8\ub2e4. \uc774 \ubbf8\ub9ac \ube4c\ub4dc\ub41c \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub294 \ucffc\ub9ac\ub97c \ud14c\uc2a4\ud2b8\ud558\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.<\/li>\n<\/ul>\n<pre><code> $ cd \/path\/to\/couchbase-lite-ios-api-playground\/\r\n $ cp -r travel-sample.cblite2 ~\/Documents\/Shared\\ Playground\\ Data\/<\/code><\/pre>\n<ul>\n<li>\uc5d0\uc11c \uac00\uc838\uc628 \"joindb.cblite2\" \ud3f4\ub354 \ud3f4\ub354\ub97c \ubcf5\uc0ac\ud569\ub2c8\ub2e4. <em>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4-\ub77c\uc774\ud2b8-ios-api-\ud50c\ub808\uc774\uadf8\ub77c\uc6b4\ub4dc<\/em> \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \"\uacf5\uc720 \ub180\uc774\ud130 \ub370\uc774\ud130\"\uc5d0 \ucd94\uac00\ud569\ub2c8\ub2e4. \uc774 \ubbf8\ub9ac \ube4c\ub4dc\ub41c \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub294 \uc870\uc778\uacfc \uad00\ub828\ub41c \ucffc\ub9ac\ub97c \ud14c\uc2a4\ud2b8\ud558\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.<\/li>\n<\/ul>\n<pre><code> $ cd \/path\/to\/couchbase-lite-ios-api-playground\/\r\n $ cp -r joindb.cblite2 ~\/Documents\/Shared\\ Playground\\ Data\/<\/code><\/pre>\n<ul>\n<li>\ub2e4\uc74c \uba85\ub839\uc744 \uc0ac\uc6a9\ud558\uc5ec \ud30c\uc77c\uc774 \uc131\uacf5\uc801\uc73c\ub85c \ubcf5\uc0ac\ub418\uc5c8\ub294\uc9c0 \ud655\uc778\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<pre><code> $ ls -l ~\/Documents\/Shared\\ Playground\\ Data\/<\/code><\/pre>\n<h4 id=\"exploringtheproject\">\ud504\ub85c\uc81d\ud2b8 \uc0b4\ud3b4\ubcf4\uae30<\/h4>\n<p>\uc774 \uae00\uc758 \uc55e\ubd80\ubd84\uc5d0\uc11c Xcode Playground\uc5d0\ub294 \ubcf8\uaca9\uc801\uc778 \uc571 \ud504\ub85c\uc81d\ud2b8\uac00 \ud544\uc694\ud558\uc9c0 \uc54a\ub2e4\uace0 \uc5b8\uae09\ud588\uc2b5\ub2c8\ub2e4. \uc774\ub294 \uc5ec\uc804\ud788 \uc0ac\uc2e4\uc785\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \uc6b0\ub9ac\uc758 \uacbd\uc6b0\uc5d0\ub294 <code>CouchbaseLite.framework<\/code> \ub97c \uc0ac\uc6a9\ud588\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \uc635\uc158\uc774 \uc788\uc744 \uc218 \uc788\uc9c0\ub9cc \uc81c\uac00 \uc0ac\uc6a9\ud55c \ubc29\ubc95\uc740 \ub2e4\uc74c\uacfc \uac19\uc740 \ub354\ubbf8 Xcode \ud504\ub85c\uc81d\ud2b8\ub97c \ub9cc\ub4dc\ub294 \uac83\uc774\uc5c8\uc2b5\ub2c8\ub2e4. <em>CBLTestBed.xcodeproj<\/em> \ud50c\ub808\uc774\uadf8\ub77c\uc6b4\ub4dc\uc640 <code>CouchbaseLite.xcodeproj<\/code>.<\/p>\n<p>\ub530\ub77c\uc11c <em>CBLTestBed<\/em> \ud504\ub85c\uc81d\ud2b8\ub97c \uc0dd\uc131\ud558\uba74 CouchbaseLiteSwift \ud504\ub808\uc784\uc6cc\ud06c\ub97c \ube4c\ub4dc\ud55c \ub2e4\uc74c Playground\uc5d0\uc11c \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4. \uc774\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<ul>\n<li>\uc5f4\uae30 <code>CBLTestBed.xcodeproj<\/code> Xcode \uc0ac\uc6a9<\/li>\n<\/ul>\n<pre><code> $ cd \/path\/to\/couchbase-lite-ios-api-playground\/\r\n $ open CBLTestBed.xcodeproj\/<\/code><\/pre>\n<ul>\n<li>\ub2e4\uc74c\uc744 \ud655\uc778\ud574\uc57c \ud569\ub2c8\ub2e4. <code>CBLQueryPlayground.playground<\/code> \uadf8\ub9ac\uace0 <code>CouchbaseLite.xcodeproj<\/code> \uc5d0 \ud3ec\ud568\ub41c <code>CBLTestBed.xcodeproj<\/code><\/li>\n<\/ul>\n<figure><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/04\/exploring_project.png\" alt=\"\" \/><\/figure>\n<ul>\n<li>\ub2e4\uc74c \uc0ac\ud56d\uc744 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. <code>CBLQueryPlayground.playground<\/code>. \ud504\ub85c\uc81d\ud2b8 \ud0d0\uc0c9\uae30\uc5d0 \uc5ec\ub7ec \uac1c\uc758 \ud50c\ub808\uc774\uadf8\ub77c\uc6b4\ub4dc \ud398\uc774\uc9c0\uac00 \ud45c\uc2dc\ub420 \uac83\uc785\ub2c8\ub2e4. \uc5b4\ub5a4 \ud50c\ub808\uc774\uadf8\ub77c\uc6b4\ub4dc \ud398\uc774\uc9c0\uc5d0\uc11c \uc2dc\uc791\ud574\ub3c4 \uc88b\uc9c0\ub9cc \"\ubaa9\ucc28\" \ud398\uc774\uc9c0\ubd80\ud130 \uc2dc\uc791\ud558\ub294 \uac83\uc774 \uac00\uc7a5 \ud569\ub9ac\uc801\uc77c \uac83\uc785\ub2c8\ub2e4. \uc774 \ud398\uc774\uc9c0\ub294 \"\ubaa9\ucc28\"\uc774\uba70 \ub2e4\ub978 \ud398\uc774\uc9c0\ub85c \ub4e4\uc5b4\uac00\ub294 \uc9c4\uc785\uc810\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/li>\n<li>\uc720\ud2f8\ub9ac\ud2f0 \ucc3d\uc5d0\uc11c '\ubb38\uc11c \ub80c\ub354\ub9c1' \ud655\uc778\ub780\uc744 \uc120\ud0dd\ud558\uc5ec \ub180\uc774\ud130 \ud398\uc774\uc9c0\uc758 \ub80c\ub354\ub9c1\uc744 \ucf2d\ub2c8\ub2e4.<br \/>\n<img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/04\/pages.png\" alt=\"\" \/><\/li>\n<li>\"ToC\" \ud398\uc774\uc9c0\uc5d0\uc11c \ub2e4\ub978 \ud50c\ub808\uc774\uadf8\ub77c\uc6b4\ub4dc \ud398\uc774\uc9c0\ub85c \uc774\ub3d9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uac01 \ud50c\ub808\uc774\uadf8\ub77c\uc6b4\ub4dc \ud398\uc774\uc9c0\uc5d0\ub294 \"travel-sample.cblite\" \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ub610\ub294 \"joindb.cblite\" \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \ub300\ud574 \ucffc\ub9ac API\ub97c \uc801\uc808\ud788 \uc2e4\ud589\ud558\ub294 \ucffc\ub9ac \uc608\uc81c \uc9d1\ud569\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. '\uc124\uc815' \uc139\uc158\uc5d0\uc11c \uc124\uba85\ud55c \ub300\ub85c \uc774\ub7ec\ud55c \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub294 \"~\/Documents\/Shared\\ Playground\\ Data\/\" \ud3f4\ub354\uc5d0 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<li>\ubaa8\ub4e0 Playground \ud398\uc774\uc9c0\ub294 \ub3d9\uc77c\ud55c \ud328\ud134\uc744 \ub530\ub985\ub2c8\ub2e4. \ub85c\uceec \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc5f0 \ub2e4\uc74c \ucffc\ub9ac \ube4c\ub354 API\ub97c \uc0ac\uc6a9\ud558\uc5ec \ucffc\ub9ac\ub97c \uc218\ud589\ud558\ub294 \ud568\uc218\ub97c \ud638\ucd9c\ud569\ub2c8\ub2e4.<br \/>\n\uae30\ubcf8 \uad6c\uc870\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4 ....<\/li>\n<\/ul>\n<pre class=\"lang:swift decode:true\">do {\r\n   \/\/ Open or Create Couchbase Lite Database\r\n   if let db:Database = try createOrOpenDatabase() {\r\n      let results1 = try queryForDocumentsByTestingArrayContainment(db, limit: 5)\r\n      print(\"\\n*****\\nResponse to queryForDocumentsByTestingArrayContainment : \\n \\(results1)\")\r\n  }\r\n}\r\ncatch {\r\n   print (\"Exception is (error.localizedDescription)\")\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<h4 id=\"buildandrun\">\ube4c\ub4dc \ubc0f \uc2e4\ud589<\/h4>\n<p>\ud50c\ub808\uc774\uadf8\ub77c\uc6b4\ub4dc\ub97c \uc2e4\ud589\ud560 \uc218 \uc788\uc73c\ub824\uba74 \uba3c\uc800 <em>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4\ub77c\uc774\ud2b8\uc2a4\uc704\ud504\ud2b8<\/em> \ud504\ub808\uc784\uc6cc\ud06c\ub97c \uc0ac\uc6a9\ud558\uc138\uc694. \uc774 \uc791\uc5c5\uc744 \uc218\ud589\ud558\ub824\uba74 \ub2e4\uc74c\uc744 \ud3ec\ud568\ud558\ub294 <code>CBLTestBed.xcodeproj<\/code>.<\/p>\n<ul>\n<li>\"CBLTestBed\" \uccb4\uacc4\ub97c \uc120\ud0dd\ud558\uace0 \uc2dc\ubbac\ub808\uc774\ud130\ub97c \ub300\uc0c1\uc73c\ub85c \uc120\ud0dd\ud569\ub2c8\ub2e4. \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec \ud504\ub85c\uc81d\ud2b8\ub97c \ube4c\ub4dc\ud569\ub2c8\ub2e4. <em>Cmd-B<\/em>.<br \/>\n<img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/04\/project_build.png\" alt=\"\" \/><\/li>\n<li>\ud504\ub85c\uc81d\ud2b8\uac00 \uc131\uacf5\uc801\uc73c\ub85c \ube4c\ub4dc\ub418\uba74 \"\uc2e4\ud589\" \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uc5ec \ud50c\ub808\uc774\uadf8\ub77c\uc6b4\ub4dc\ub97c \uc2e4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br \/>\n<img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/04\/run_page.gif\" alt=\"\" \/><\/li>\n<li>\uacb0\uacfc\ub294 \ucd9c\ub825 \ucf58\uc194\uc5d0 \ud45c\uc2dc\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/li>\n<li>\ubb3c\ub860 \uc774\uacf3\uc740 \ub180\uc774\ud130\uc774\uae30 \ub54c\ubb38\uc5d0 \uc778\ub77c\uc778\uc73c\ub85c \uacb0\uacfc\ub97c \ud655\uc778\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<h4 id=\"exploringotherqueryoptions\">\ub2e4\ub978 \ucffc\ub9ac \uc635\uc158 \uc0b4\ud3b4\ubcf4\uae30<\/h4>\n<p>\uc0d8\ud50c \ub180\uc774\ud130\uc640 \ud568\uaed8 \uc81c\uacf5\ub41c \ucffc\ub9ac\ub294 \ucc38\uace0\uc6a9\uc73c\ub85c \uc0ac\uc6a9\ud558\uae30 \uc704\ud55c \uac83\uc785\ub2c8\ub2e4. \ucffc\ub9ac\ub97c \uc5c5\ub370\uc774\ud2b8\ud558\uc5ec \ub2e4\ub978 \ucffc\ub9ac \uc635\uc158\uc744 \ud0d0\uc0c9\ud560 \uc218 \uc788\ub2e4\ub294 \uac83\uc744 \uc27d\uac8c \uc54c \uc218 \uc788\uc744 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc608\ub97c \ub4e4\uc5b4 \uc544\ub798 \uc608\uc81c\uc5d0\uc11c 'type' \uc18d\uc131\uacfc 'limit' \uac12\uc744 \ub2e4\ub978 \uac12\uc73c\ub85c \ubcc0\uacbd\ud558\uace0 \uacb0\uacfc\uac00 \uc5b4\ub5bb\uac8c \ub2ec\ub77c\uc9c0\ub294\uc9c0 \ud655\uc778\ud569\ub2c8\ub2e4. \uc9c1\uc811 \ucffc\ub9ac\ub97c \ucd94\uac00\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:swift decode:true\">func queryForDocumentsOfSpecificTypeFromDB(_ db:Database,limit:Int = 10 ) throws -&gt; [Data]? {\r\n  let searchQuery = QueryBuilder\r\n     .select(SelectResult.all())\r\n     .from(DataSource.database(db))\r\n     .where(Expression.property(&amp;amp;quot;type&amp;amp;quot;).equalTo(Expression.string(&amp;amp;quot;hotel&amp;amp;quot;)))\r\n     .limit(Expression.int(limit))\r\n\r\n  var matches:[Data] = [Data]()\r\n  do {\r\n    for row in try searchQuery.execute() {\r\n        matches.append(row.toDictionary())\r\n    }\r\n }\r\n return matches\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<h3 id=\"whatnext\">\ub2e4\uc74c \ub2e8\uacc4<\/h3>\n<p>\uc774 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc5d0\uc11c\ub294 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ubaa8\ubc14\uc77c 2.0\uc758 \uc0c8\ub85c\uc6b4 \ucffc\ub9ac API\ub97c \ud3b8\ub9ac\ud558\uac8c \ud0d0\uc0c9\ud558\uace0 \ud14c\uc2a4\ud2b8\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc73c\ub85c Xcode \ud50c\ub808\uc774\uadf8\ub77c\uc6b4\ub4dc\ub97c \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95\uc744 \ubcf4\uc5ec\ub4dc\ub838\uc2b5\ub2c8\ub2e4. \uc0c8\ub85c\uc6b4 \ucffc\ub9ac\ub97c \ucd94\uac00\ud558\uace0 \uc2f6\uc73c\uc2dc\uba74 Github <a href=\"https:\/\/github.com\/couchbaselabs\/couchbase-lite-ios-api-playground\">PR<\/a>.<\/p>\n<p>\uc9c8\ubb38\uc774\ub098 \ud53c\ub4dc\ubc31\uc774 \uc788\uc73c\uba74 \uc544\ub798\uc5d0 \ub313\uae00\uc744 \ub0a8\uae30\uac70\ub098 \ud2b8\uc704\ud130\ub85c \uc5b8\uc81c\ub4e0\uc9c0 \ubb38\uc758\ud574 \uc8fc\uc138\uc694.\u00a0<a href=\"https:\/\/twitter.com\/rajagp\">@rajagp<\/a>\u00a0\ub610\ub294 \uc774\uba54\uc77c\uc744 \ubcf4\ub0b4\uc8fc\uc138\uc694.\u00a0<a href=\"mailto:priya.rajagopal@couchbase.com\">priya.rajagopal@couchbase.com<\/a>.  .\u00a0<a href=\"https:\/\/www.couchbase.com\/blog\/ko\/forums\/\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ud3ec\ub7fc<\/a> \ub97c \ud1b5\ud574 \uc9c8\ubb38\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>This post is a step-by-step guide for using an Xcode Playground for exploring the new querying API in Couchbase Mobile 2.0. The Couchbase Lite 2.0 Release introduces a simplified query API based on N1QL, Couchbase\u2019s declarative query language that extends [&hellip;]<\/p>","protected":false},"author":1423,"featured_media":11842,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[2370,1815,7667,1810,2165,9410,1812],"tags":[1536,1909],"ppma_author":[8948],"class_list":["post-5015","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","category-best-practices-and-tutorials","category-couchbase-lite","category-couchbase-mobile","category-full-text-search","category-objective-c","category-n1ql-query","tag-ios","tag-swift"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.7.1 (Yoast SEO v25.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Xcode Playground for Exploring Couchbase Mobile Query API<\/title>\n<meta name=\"description\" content=\"This post is a step-by-step guide to using Xcode Playground to test and explore the Query API in Couchbase Mobile 2.0. Given the unified nature of the QueryBuilder API you should be able to easily translate the swift queries to any of the other platform languages supported in Couchbase Lite\" \/>\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\/xcode-playground-couchbase-mobile\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Xcode Playground for Exploring Query API in Couchbase Lite 2.0\" \/>\n<meta property=\"og:description\" content=\"This post is a step-by-step guide to using Xcode Playground to test and explore the Query API in Couchbase Mobile 2.0. Given the unified nature of the QueryBuilder API you should be able to easily translate the swift queries to any of the other platform languages supported in Couchbase Lite\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/xcode-playground-couchbase-mobile\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-04-17T17:00:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T04:37:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/04\/xcode-playground-couchbase-lite-2-0.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"728\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Priya Rajagopal, Senior Director, Product Management\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@rajagp\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Priya Rajagopal, Senior Director, Product Management\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/\"},\"author\":{\"name\":\"Priya Rajagopal, Senior Director, Product Management\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c\"},\"headline\":\"Xcode Playground for Exploring Query API in Couchbase Lite 2.0\",\"datePublished\":\"2018-04-17T17:00:01+00:00\",\"dateModified\":\"2025-06-14T04:37:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/\"},\"wordCount\":1277,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/04\/xcode-playground-couchbase-lite-2-0.png\",\"keywords\":[\"ios\",\"swift\"],\"articleSection\":[\"Android\",\"Best Practices and Tutorials\",\"Couchbase Lite\",\"Couchbase Mobile\",\"Full-Text Search\",\"Objective-C\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/\",\"name\":\"Xcode Playground for Exploring Couchbase Mobile Query API\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/04\/xcode-playground-couchbase-lite-2-0.png\",\"datePublished\":\"2018-04-17T17:00:01+00:00\",\"dateModified\":\"2025-06-14T04:37:10+00:00\",\"description\":\"This post is a step-by-step guide to using Xcode Playground to test and explore the Query API in Couchbase Mobile 2.0. Given the unified nature of the QueryBuilder API you should be able to easily translate the swift queries to any of the other platform languages supported in Couchbase Lite\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/04\/xcode-playground-couchbase-lite-2-0.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/04\/xcode-playground-couchbase-lite-2-0.png\",\"width\":1200,\"height\":728,\"caption\":\"An Xcode playground for Couchbase Lite 2.0\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Xcode Playground for Exploring Query API in Couchbase Lite 2.0\"}]},{\"@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\/c2da90e57717ee4970c48a87a131ac2c\",\"name\":\"Priya Rajagopal, Senior Director, Product Management\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4b50a54778b979d8c345b036ab138734\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g\",\"caption\":\"Priya Rajagopal, Senior Director, Product Management\"},\"description\":\"Priya Rajagopal is a Senior Director of Product Management at Couchbase responsible for developer platforms for the cloud and the edge. She has been professionally developing software for over 20 years in several technical and product leadership positions, with 10+ years focused on mobile technologies. As a TISPAN IPTV standards delegate, she was a key contributor to the IPTV standards specifications. She has 22 patents in the areas of networking and platform security.\",\"sameAs\":[\"https:\/\/x.com\/rajagp\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/priya-rajagopalcouchbase-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Xcode Playground for Exploring Couchbase Mobile Query API","description":"This post is a step-by-step guide to using Xcode Playground to test and explore the Query API in Couchbase Mobile 2.0. Given the unified nature of the QueryBuilder API you should be able to easily translate the swift queries to any of the other platform languages supported in Couchbase Lite","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\/xcode-playground-couchbase-mobile\/","og_locale":"ko_KR","og_type":"article","og_title":"Xcode Playground for Exploring Query API in Couchbase Lite 2.0","og_description":"This post is a step-by-step guide to using Xcode Playground to test and explore the Query API in Couchbase Mobile 2.0. Given the unified nature of the QueryBuilder API you should be able to easily translate the swift queries to any of the other platform languages supported in Couchbase Lite","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/xcode-playground-couchbase-mobile\/","og_site_name":"The Couchbase Blog","article_published_time":"2018-04-17T17:00:01+00:00","article_modified_time":"2025-06-14T04:37:10+00:00","og_image":[{"width":1200,"height":728,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/04\/xcode-playground-couchbase-lite-2-0.png","type":"image\/png"}],"author":"Priya Rajagopal, Senior Director, Product Management","twitter_card":"summary_large_image","twitter_creator":"@rajagp","twitter_misc":{"Written by":"Priya Rajagopal, Senior Director, Product Management","Est. reading time":"8\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/"},"author":{"name":"Priya Rajagopal, Senior Director, Product Management","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c"},"headline":"Xcode Playground for Exploring Query API in Couchbase Lite 2.0","datePublished":"2018-04-17T17:00:01+00:00","dateModified":"2025-06-14T04:37:10+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/"},"wordCount":1277,"commentCount":1,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/04\/xcode-playground-couchbase-lite-2-0.png","keywords":["ios","swift"],"articleSection":["Android","Best Practices and Tutorials","Couchbase Lite","Couchbase Mobile","Full-Text Search","Objective-C","SQL++ \/ N1QL Query"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/","url":"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/","name":"Xcode Playground for Exploring Couchbase Mobile Query API","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/04\/xcode-playground-couchbase-lite-2-0.png","datePublished":"2018-04-17T17:00:01+00:00","dateModified":"2025-06-14T04:37:10+00:00","description":"This post is a step-by-step guide to using Xcode Playground to test and explore the Query API in Couchbase Mobile 2.0. Given the unified nature of the QueryBuilder API you should be able to easily translate the swift queries to any of the other platform languages supported in Couchbase Lite","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/04\/xcode-playground-couchbase-lite-2-0.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/04\/xcode-playground-couchbase-lite-2-0.png","width":1200,"height":728,"caption":"An Xcode playground for Couchbase Lite 2.0"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Xcode Playground for Exploring Query API in Couchbase Lite 2.0"}]},{"@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\/c2da90e57717ee4970c48a87a131ac2c","name":"\ud504\ub9ac\uc57c \ub77c\uc790\uace0\ud314, \uc81c\ud488 \uad00\ub9ac \ubd80\ubb38 \uc120\uc784 \uc774\uc0ac","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4b50a54778b979d8c345b036ab138734","url":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","caption":"Priya Rajagopal, Senior Director, Product Management"},"description":"\ud504\ub9ac\uc57c \ub77c\uc790\uace0\ud314\uc740 \ud074\ub77c\uc6b0\ub4dc \ubc0f \uc5e3\uc9c0\uc6a9 \uac1c\ubc1c\uc790 \ud50c\ub7ab\ud3fc\uc744 \ub2f4\ub2f9\ud558\ub294 Couchbase\uc758 \uc81c\ud488 \uad00\ub9ac \uc218\uc11d \uc774\uc0ac\uc785\ub2c8\ub2e4. \uadf8\ub140\ub294 20\ub144 \uc774\uc0c1 \uc5ec\ub7ec \uae30\uc220 \ubc0f \uc81c\ud488 \ub9ac\ub354\uc2ed \uc9c1\ucc45\uc744 \ub9e1\uc73c\uba70 \uc804\ubb38\uc801\uc73c\ub85c \uc18c\ud504\ud2b8\uc6e8\uc5b4\ub97c \uac1c\ubc1c\ud574 \uc654\uc73c\uba70, \uadf8\uc911 10\ub144 \uc774\uc0c1\uc740 \ubaa8\ubc14\uc77c \uae30\uc220\uc5d0 \uc9d1\uc911\ud588\uc2b5\ub2c8\ub2e4. TISPAN IPTV \ud45c\uc900 \ub300\ud45c\ub85c\uc11c IPTV \ud45c\uc900 \uc0ac\uc591\uc5d0 \ud575\uc2ec\uc801\uc778 \uae30\uc5ec\ub97c \ud588\uc2b5\ub2c8\ub2e4. \ub124\ud2b8\uc6cc\ud0b9 \ubc0f \ud50c\ub7ab\ud3fc \ubcf4\uc548 \ubd84\uc57c\uc5d0\uc11c 22\uac1c\uc758 \ud2b9\ud5c8\ub97c \ubcf4\uc720\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.","sameAs":["https:\/\/x.com\/rajagp"],"url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/priya-rajagopalcouchbase-com\/"}]}},"authors":[{"term_id":8948,"user_id":1423,"is_guest":0,"slug":"priya-rajagopalcouchbase-com","display_name":"Priya Rajagopal, Senior Director, Product Management","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","first_name":"Priya","last_name":"Rajagopal, Senior Director, Product Management","user_url":"","author_category":"","description":"\ud504\ub9ac\uc57c \ub77c\uc790\uace0\ud314\uc740 \ud074\ub77c\uc6b0\ub4dc \ubc0f \uc5e3\uc9c0\uc6a9 \uac1c\ubc1c\uc790 \ud50c\ub7ab\ud3fc\uc744 \ub2f4\ub2f9\ud558\ub294 Couchbase\uc758 \uc81c\ud488 \uad00\ub9ac \uc218\uc11d \uc774\uc0ac\uc785\ub2c8\ub2e4. \uadf8\ub140\ub294 20\ub144 \uc774\uc0c1 \uc5ec\ub7ec \uae30\uc220 \ubc0f \uc81c\ud488 \ub9ac\ub354\uc2ed \uc9c1\ucc45\uc744 \ub9e1\uc73c\uba70 \uc804\ubb38\uc801\uc73c\ub85c \uc18c\ud504\ud2b8\uc6e8\uc5b4\ub97c \uac1c\ubc1c\ud574 \uc654\uc73c\uba70, \uadf8\uc911 10\ub144 \uc774\uc0c1\uc740 \ubaa8\ubc14\uc77c \uae30\uc220\uc5d0 \uc9d1\uc911\ud588\uc2b5\ub2c8\ub2e4. TISPAN IPTV \ud45c\uc900 \ub300\ud45c\ub85c\uc11c IPTV \ud45c\uc900 \uc0ac\uc591\uc5d0 \ud575\uc2ec\uc801\uc778 \uae30\uc5ec\ub97c \ud588\uc2b5\ub2c8\ub2e4. \ub124\ud2b8\uc6cc\ud0b9 \ubc0f \ud50c\ub7ab\ud3fc \ubcf4\uc548 \ubd84\uc57c\uc5d0\uc11c 22\uac1c\uc758 \ud2b9\ud5c8\ub97c \ubcf4\uc720\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/5015","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\/1423"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=5015"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/5015\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/11842"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=5015"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=5015"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=5015"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=5015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}