{"id":608,"date":"2020-10-21T10:26:15","date_gmt":"2020-10-21T01:26:15","guid":{"rendered":"http:\/\/batmask.dothome.co.kr\/?p=608"},"modified":"2025-09-12T17:39:42","modified_gmt":"2025-09-12T08:39:42","slug":"android-data-binding-basics","status":"publish","type":"post","link":"http:\/\/batmask.net\/index.php\/2020\/10\/21\/608\/","title":{"rendered":"Android: Data binding basics"},"content":{"rendered":"\n<p>Data Binding\uc740 2018\ub144\ub3c4 Jetpack \ub77c\uc774\ube0c\ub7ec\ub9ac\uc758 \uc77c\ubd80\ub85c \uc18c\uac1c\ub418\uc5c8\ub2e4. \uc77c\ub2e8, \uadf8 \uc774\uc804\uc5d0 UI\ub97c \ub2e4\ub8e8\ub294 \ubc29\uc2dd\uc744 \uc54c\uc544\ubcf4\uc790. \uc774\uc804\uc5d0\ub294 \ucf54\ub4dc\ub0b4\uc5d0\uc11c(\ubcf4\ud1b5 onCreate()\ub098 onCreateView()) LayoutInflater\ub97c \uc774\uc6a9\ud558\uc5ec XML\uc744 \ud30c\uc2f1 \ud6c4 View \uc624\ube0c\uc81d\ud2b8\ub85c \ubcc0\ud658\ud558\ub294 \uc791\uc5c5\uc744 \ud574\uc57c\ud588\ub2e4.  UI\ub97c \uad6c\uc131\ud558\ub294 \ubcc0\ud658\ub41c View \uc624\ube0c\uc81d\ud2b8\ub294 \ud2b8\ub9ac\ud615\ud0dc\ub85c \ub418\uc5b4\uc788\uc73c\uba70, \uc6d0\ud558\ub294 View\ub97c \uc5bb\uc5b4\uc624\ub824\uba74 findViewById()\ub4f1\uc744 \uc774\uc6a9\ud574 \uc774 \ud2b8\ub9ac\uad6c\uc870\ub97c \uac80\uc0c9\ud574\uc57c \uac00\ub2a5\ud588\ub2e4. XML\ud30c\uc2f1\ub3c4 \uac80\uc0c9\ub3c4 \ubaa8\ub450 \ubd80\ud558\uac00 \uc0c1\ub2f9\ud55c \uc791\uc5c5\ub4e4\uc774\uc5c8\ub2e4. <\/p>\n\n\n\n<p>\uc774\ub97c \uac1c\uc120\ud558\uace0\uc790, Data Binding \ub77c\uc774\ube0c\ub7ec\ub9ac\uac00 \uc18c\uac1c\ub418\uc5c8\ub2e4. Data binding\uc744 \uc0ac\uc6a9\ud558\uba74, \ucef4\ud30c\uc77c \ub2e8\uacc4\uc5d0\uc11c XML\uc744 \ubcc0\ud658\ud55c \ucf54\ub4dc\ub97c \uc790\ub3d9\uc0dd\uc131\ud574\uc900\ub2e4. View \ud558\ub098\ub97c \uc5bb\uc5b4\uc624\uae30 \uc704\ud574 findViewById()\ub3c4 \uc0ac\uc6a9\ud560 \ud544\uc694\uac00 \uc5c6\uc774 \uc0dd\uc131\ub41c \uac1d\uccb4\uc758 \uba64\ubc84\ub85c \uc874\uc7ac\ud55c\ub2e4. <\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity is-style-dots\"\/>\n\n\n\n<p>\uc774\uc81c, \uc2e4\uc81c \uc0ac\uc6a9\ud558\uae30 \uc704\ud55c \ubc29\ubc95\uc744 \ud558\ub098\uc529 \uc54c\uc544\ubcf4\uc790.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">build.gradle<\/h3>\n\n\n\n<p>Data Binding\uc744 \uc0ac\uc6a9\ud558\ub824\uba74, \uccab\ubc88\uc9f8\ub85c gradle \ud30c\uc77c\uc758 \uc218\uc815\uc774 \ud544\uc694\ud558\ub2e4. \ubaa8\ub4c8 build.gradle \uc5d0 \ub2e4\uc74c\uacfc \uac19\uc774 \ub4e4\uc5b4\uac04\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-Roboto-Mono.ttf\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Roboto-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#adbac7;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#22272e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>android {\n    ...\n    buildFeatures {\n        dataBinding true\n    }\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #DCBDFB\">android<\/span><span style=\"color: #ADBAC7\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #F47067\">..<\/span><span style=\"color: #ADBAC7\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #DCBDFB\">buildFeatures<\/span><span style=\"color: #ADBAC7\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">        dataBinding <\/span><span style=\"color: #6CB6FF\">true<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>dataBinding { enabled = true } \uc640 \uac19\uc774 \uc0ac\uc6a9\ub418\ub2e4\uac00 buildFeatures \ud56d\ubaa9\uc73c\ub85c \ubcc0\uacbd\ub418\uc5c8\uc73c\ubbc0\ub85c \uc54c\uc544\ub450\uc790.<\/p>\n\n\n\n<p>\uc704 \ub0b4\uc6a9\uc744 \ucd94\uac00\ud558\uba74 kotlin-kapt \ud50c\ub7ec\uadf8\uc778\uc774 \ud544\uc694\ud558\ub2e4\uace0 \uacbd\uace0\uac00 \ub730 \uac83\uc774\ub2e4. \uc0ac\uc6a9\uc911\uc774 \uc544\ub2c8\ub77c\uba74 \ud50c\ub7ec\uadf8\uc778\uc744 \ucd94\uac00\ud558\uc790.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-Roboto-Mono.ttf\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Roboto-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#adbac7;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#22272e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>plugins {\n     id 'com.android.application'\n     id 'kotlin-android'\n     id 'kotlin-kapt' \/\/ &lt;-- \uc694\uac70 \n }<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #DCBDFB\">plugins<\/span><span style=\"color: #ADBAC7\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">     id <\/span><span style=\"color: #96D0FF\">&#39;com.android.application&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">     id <\/span><span style=\"color: #96D0FF\">&#39;kotlin-android&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">     id <\/span><span style=\"color: #96D0FF\">&#39;kotlin-kapt&#39;<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #768390\">\/\/ &lt;-- \uc694\uac70 <\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\"> }<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Layout XML<\/h3>\n\n\n\n<p>Layout XML \ud30c\uc77c\ub4e4\ub3c4 \uc870\uae08 \ub2e4\ub978 \ud615\ud0dc\uac00 \ub418\uc5b4\uc57c \ud55c\ub2e4. \uc6b0\uc120 root tag\uac00 &lt;layout&gt;\uc774 \ub418\uc5b4\uc57c \ud55c\ub2e4. \uadf8 \uc548\uc5d0, &lt;data&gt; tag\ub85c \ucf54\ub4dc\uad00\ub828 \ud56d\ubaa9\uc774 \ucd94\uac00\ub418\uc5c8\uc73c\uba70, \uadf8 \uc544\ub798\ub85c \uae30\uc874\uc5d0 \uc0ac\uc6a9\ud558\ub358 layout \ud3fc\uc744 \uc0ac\uc6a9\ud558\uac8c \ub41c\ub2e4. \uac00\uc774\ub4dc\uc5d0 \uc788\ub294 XML \ud30c\uc77c\uc744 \ubcf4\uba74 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-Roboto-Mono.ttf\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Roboto-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#adbac7;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#22272e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?>\n&lt;layout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\">\n   &lt;data>\n       &lt;variable name=\"user\" type=\"com.example.User\"\/>\n   &lt;\/data>\n   &lt;LinearLayout\n       android:orientation=\"vertical\"\n       android:layout_width=\"match_parent\"\n       android:layout_height=\"match_parent\">\n       &lt;TextView android:layout_width=\"wrap_content\"\n           android:layout_height=\"wrap_content\"\n           android:text=\"@{user.firstName}\"\/>\n       &lt;TextView android:layout_width=\"wrap_content\"\n           android:layout_height=\"wrap_content\"\n           android:text=\"@{user.lastName}\"\/>\n   &lt;\/LinearLayout>\n&lt;\/layout><\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #ADBAC7\">&lt;?<\/span><span style=\"color: #8DDB8C\">xml<\/span><span style=\"color: #6CB6FF\"> version<\/span><span style=\"color: #ADBAC7\">=<\/span><span style=\"color: #96D0FF\">&quot;1.0&quot;<\/span><span style=\"color: #6CB6FF\"> encoding<\/span><span style=\"color: #ADBAC7\">=<\/span><span style=\"color: #96D0FF\">&quot;utf-8&quot;<\/span><span style=\"color: #ADBAC7\">?&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">&lt;<\/span><span style=\"color: #8DDB8C\">layout<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">xmlns:android<\/span><span style=\"color: #ADBAC7\">=<\/span><span style=\"color: #96D0FF\">&quot;http:\/\/schemas.android.com\/apk\/res\/android&quot;<\/span><span style=\"color: #ADBAC7\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   &lt;<\/span><span style=\"color: #8DDB8C\">data<\/span><span style=\"color: #ADBAC7\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">       &lt;<\/span><span style=\"color: #8DDB8C\">variable<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">name<\/span><span style=\"color: #ADBAC7\">=<\/span><span style=\"color: #96D0FF\">&quot;user&quot;<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">type<\/span><span style=\"color: #ADBAC7\">=<\/span><span style=\"color: #96D0FF\">&quot;com.example.User&quot;<\/span><span style=\"color: #ADBAC7\">\/&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   &lt;\/<\/span><span style=\"color: #8DDB8C\">data<\/span><span style=\"color: #ADBAC7\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   &lt;<\/span><span style=\"color: #8DDB8C\">LinearLayout<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">       <\/span><span style=\"color: #6CB6FF\">android:orientation<\/span><span style=\"color: #ADBAC7\">=<\/span><span style=\"color: #96D0FF\">&quot;vertical&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">       <\/span><span style=\"color: #6CB6FF\">android:layout_width<\/span><span style=\"color: #ADBAC7\">=<\/span><span style=\"color: #96D0FF\">&quot;match_parent&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">       <\/span><span style=\"color: #6CB6FF\">android:layout_height<\/span><span style=\"color: #ADBAC7\">=<\/span><span style=\"color: #96D0FF\">&quot;match_parent&quot;<\/span><span style=\"color: #ADBAC7\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">       &lt;<\/span><span style=\"color: #8DDB8C\">TextView<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">android:layout_width<\/span><span style=\"color: #ADBAC7\">=<\/span><span style=\"color: #96D0FF\">&quot;wrap_content&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">           <\/span><span style=\"color: #6CB6FF\">android:layout_height<\/span><span style=\"color: #ADBAC7\">=<\/span><span style=\"color: #96D0FF\">&quot;wrap_content&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">           <\/span><span style=\"color: #6CB6FF\">android:text<\/span><span style=\"color: #ADBAC7\">=<\/span><span style=\"color: #96D0FF\">&quot;@{user.firstName}&quot;<\/span><span style=\"color: #ADBAC7\">\/&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">       &lt;<\/span><span style=\"color: #8DDB8C\">TextView<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">android:layout_width<\/span><span style=\"color: #ADBAC7\">=<\/span><span style=\"color: #96D0FF\">&quot;wrap_content&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">           <\/span><span style=\"color: #6CB6FF\">android:layout_height<\/span><span style=\"color: #ADBAC7\">=<\/span><span style=\"color: #96D0FF\">&quot;wrap_content&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">           <\/span><span style=\"color: #6CB6FF\">android:text<\/span><span style=\"color: #ADBAC7\">=<\/span><span style=\"color: #96D0FF\">&quot;@{user.lastName}&quot;<\/span><span style=\"color: #ADBAC7\">\/&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">   &lt;\/<\/span><span style=\"color: #8DDB8C\">LinearLayout<\/span><span style=\"color: #ADBAC7\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">&lt;\/<\/span><span style=\"color: #8DDB8C\">layout<\/span><span style=\"color: #ADBAC7\">&gt;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\ucd5c\uc0c1\uc704 \ud0dc\uadf8\uac00 &lt;layout&gt;\uc778 \uac83\uc774 \ubcf4\uc774\uba70, &lt;data&gt; \ud0dc\uadf8\uc548\uc5d0 \uc2e4\uc81c \ucf54\ub4dc\uc640 \uacb0\ud569\ub41c \ubcc0\uc218\uac00 \uc815\uc758\ub418\uc5b4 \uc788\uc74c\uc744 \ubcfc \uc218 \uc788\ub2e4. \ub610\ud55c, \uc544\ub798\ucabd TextView\uc758 text\ub97c \ubcf4\uba74 @{user.firstName} \ucc98\ub7fc \uc774 \ubcc0\uc218\uc758 \uba64\ubc84\ub97c \uc9c1\uc811 \uc5f0\uacb0\ud558\uace0 \uc788\ub294\uac8c \ubcf4\uc778\ub2e4. \uc774 \ud45c\ud604\uc2dd\uc5d0\uc11c \uc0ac\uc6a9\uac00\ub2a5\ud55c \ud45c\ud604\uc740 <a href=\"https:\/\/developer.android.com\/topic\/libraries\/data-binding\/expressions#expression_language\">\uacf5\uc2dd \ubb38\uc11c\uc758 \ud574\ub2f9\ud56d\ubaa9\uc744 \ucc38\uace0<\/a>\ud558\uc790.<\/p>\n\n\n\n<p>android studio\uc5d0\uc11c \uae30\ubcf8\uc73c\ub85c \uc0dd\uc131\ub418\ub294 xml\ud30c\uc77c\ub4e4\uc740 \uc608\uc804 \ud615\ud0dc\uc774\ub2e4. \ud558\ub098\uc529 \uc190\uc73c\ub85c \uace0\uce60 \ud544\uc694\ub294 \uc5c6\uace0, \ucd5c\uc0c1\uc704 xml \ud0dc\uadf8\uc5d0\uc11c alt+enter\ub97c \ub20c\ub7ec\ubcf4\uba74, &#8220;convert to data binding layout&#8221;\ud56d\ubaa9\uc774 \ub72c\ub2e4. \uc774\ub97c \uc774\uc6a9\ud574 \uc27d\uac8c \ubcc0\uacbd \uac00\ub2a5\ud558\ub2e4. \uc774 \uae30\ub2a5\uc740 \uc55e\uc11c \uc124\uba85\ud55c gradle\ud30c\uc77c \ubcc0\uacbd\uc0ac\ud56d\uc774 \uc801\uc6a9\ub418\uc5b4\uc57c \uc0ac\uc6a9\uac00\ub2a5 \ud560 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<p>\uc6b0\uc120, \ucd5c\uc0c1\uc704 &lt;layout&gt; \ud0dc\uadf8\ub85c \ub458\ub7ec\uc313\uc774\uba74, \uc774 \ub808\uc774\uc544\uc6c3\uc5d0 \ud574\ub2f9\ud558\ub294 \ud074\ub798\uc2a4\uac00 \ucef4\ud30c\uc77c\ub7ec\uc5d0 \uc758\ud574 \uc0dd\uc131\ub41c\ub2e4. android studio\uc548\uc5d0\uc120 \ud655\uc778\uc774 \uc548\ub418\uba70, \uc18c\uc2a4 \ub514\ub809\ud1a0\ub9ac\uc5d0\uc11c app&gt;build&gt;generated&gt;data_binding_base_class_source_out \uc5d0\uc11c \ud655\uc778\ub41c\ub2e4. <\/p>\n\n\n\n<p>&lt;data&gt; \ubd80\ubd84\uc740 \uc0ac\uc6a9\uc790\uac00 \uad6c\ud604\ud55c \ucf54\ub4dc\uc640 \uc5f0\ub3d9\uc774 \ub418\uace0 \uc788\ub2e4. \uc608\uc81c\uc758 User \ud074\ub798\uc2a4\ub294 \ub2e4\uc74c\uacfc\uac19\uc774 \uc815\uc758\ub418\uc5b4 \uc788\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-Roboto-Mono.ttf\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Roboto-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#adbac7;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#22272e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>data class User(val firstName: String, val lastName: String)<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F47067\">data<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">class<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F69D50\">User<\/span><span style=\"color: #ADBAC7\">(<\/span><span style=\"color: #F47067\">val<\/span><span style=\"color: #ADBAC7\"> firstName: <\/span><span style=\"color: #F69D50\">String<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #F47067\">val<\/span><span style=\"color: #ADBAC7\"> lastName: <\/span><span style=\"color: #F69D50\">String<\/span><span style=\"color: #ADBAC7\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\uc774\uac78 \ucc38\uc870\ud558\uc5ec, XML\uc5d0\uc11c binding class\uac00 \uc0dd\uc131\ub420 \ub54c, &#8220;user&#8221; \ubcc0\uc218\uc758 \ud0c0\uc785\uc744 \uc815\ud560 \uc218 \uc788\ub2e4. \ub4a4\uc5d0 \ub098\uc624\ub294 text\uc5d0\uc11c @{user.firstName} \uacfc \uac19\uc740 \ud45c\ud604\ub3c4 \uac00\ub2a5\ud574\uc9c4\ub2e4. text\uc758 \ud45c\ud604\uc2dd\uc740 \ubcf4\uba74 \uc54c\uaca0\uc9c0\ub9cc, Kotlin\uc5d0\uc11c \ubcc0\uc218\ub098 \ucf54\ub4dc\ub97c \uc0ac\uc6a9\ud558\ub294 \ubb38\uc790\uc5f4 \ud3ec\ub9f7\uc744 \uc0ac\uc6a9\ud558\uace0 \uc788\ub2e4. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Binding Data<\/h2>\n\n\n\n<p>\uc774\ub85c\uc11c \uc0ac\uc6a9\ud560 \ud074\ub798\uc2a4\ub294 \ubaa8\ub450 \uc900\ube44\uac00 \ub418\uc5c8\ub2e4. \uc2e4\uc81c \ucf54\ub4dc\ub0b4\uc5d0\uc11c \uc778\uc2a4\ud134\uc2a4\ub97c \uc0dd\uc131\ud558\uace0 \uc2e4\uc81c \ub370\uc774\ud130\ub97c \uc5f0\uacb0\ud574\ubcf4\uc790. \uc77c\ubc18\uc801\uc73c\ub85c \ub2e4\uc74c\uacfc \uac19\uc740 \ubc29\ubc95\uc744 \uc0ac\uc6a9\ud55c\ub2e4. <\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-Roboto-Mono.ttf\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Roboto-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#adbac7;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#22272e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>override fun onCreate(savedInstanceState: Bundle?) {\n    super.onCreate(savedInstanceState)\n\n    val binding: ActivityMainBinding = DataBindingUtil.setContentView(\n            this, R.layout.activity_main)\n\n    binding.user = User(\"Test\", \"User\")\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F47067\">override<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">fun<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #DCBDFB\">onCreate<\/span><span style=\"color: #ADBAC7\">(savedInstanceState: <\/span><span style=\"color: #F69D50\">Bundle<\/span><span style=\"color: #ADBAC7\">?) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #6CB6FF\">super<\/span><span style=\"color: #ADBAC7\">.<\/span><span style=\"color: #DCBDFB\">onCreate<\/span><span style=\"color: #ADBAC7\">(savedInstanceState)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #F47067\">val<\/span><span style=\"color: #ADBAC7\"> binding: <\/span><span style=\"color: #F69D50\">ActivityMainBinding<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #ADBAC7\"> DataBindingUtil.<\/span><span style=\"color: #DCBDFB\">setContentView<\/span><span style=\"color: #ADBAC7\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">            <\/span><span style=\"color: #6CB6FF\">this<\/span><span style=\"color: #ADBAC7\">, R.layout.activity_main)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    binding.user <\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #DCBDFB\">User<\/span><span style=\"color: #ADBAC7\">(<\/span><span style=\"color: #96D0FF\">&quot;Test&quot;<\/span><span style=\"color: #ADBAC7\">, <\/span><span style=\"color: #96D0FF\">&quot;User&quot;<\/span><span style=\"color: #ADBAC7\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>DataBindingUtil \ud074\ub798\uc2a4\ub97c \uc0ac\uc6a9\ud558\uace0 \uc788\uc73c\uba70, \ub9ac\ud134\uac12\uc73c\ub85c binding \uac1d\uccb4\ub97c \ubc1b\uc544\uc624\uace0 \uc788\ub2e4. \uc774\uac83\uc740 \uc55e\uc11c \uc815\uc758\ud55c XML\uc5d0 \uae30\ubc18\ud558\uc5ec \uc790\ub3d9\uc73c\ub85c \uc0dd\uc131\ub41c \ud074\ub798\uc2a4\uc758 \uac1d\uccb4\uc774\ub2e4. XML\uc5d0\uc11c &#8216;User class&#8217; \ud0c0\uc785\uc758 &#8216;user&#8217;\ub77c\ub294 \ubcc0\uc218\ub97c \uc120\uc5b8\ud588\ub294\ub370, \uadf8 \ubcc0\uc218\uc5d0 \uc0dd\uc131\ud55c \uc778\uc2a4\ud134\uc2a4\ub97c \ud560\ub2f9\ud574\uc8fc\uace0 \uc788\ub2e4. \uc774\ub97c \ucc38\uc870\ud558\ub294 XML\uc758 text \uac12\ub4e4\uc740 \uc774 \uc778\uc2a4\ud134\uc2a4\uc758 \uac12\ub4e4\uc744 \ud45c\uc2dc\ud574\uc8fc\uac8c \ub41c\ub2e4.<\/p>\n\n\n\n<p>\uc77c\ubc18\uc801\uc73c\ub85c, Fragment\ub098 \uae30\ud0c0 view\uc758 \uc0ac\uc6a9\uc2dc\uc5d0\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 \uc9c1\uc811 inflate()\ub97c \ubd88\ub7ec\uc900\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-Roboto-Mono.ttf\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-Roboto-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#adbac7;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#22272e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>val listItemBinding = ListItemBinding.inflate(layoutInflater, viewGroup, false)\n\/\/ or\nval listItemBinding = DataBindingUtil.inflate(layoutInflater, R.layout.list_item, viewGroup, false)\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F47067\">val<\/span><span style=\"color: #ADBAC7\"> listItemBinding <\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #ADBAC7\"> ListItemBinding.<\/span><span style=\"color: #DCBDFB\">inflate<\/span><span style=\"color: #ADBAC7\">(layoutInflater, viewGroup, <\/span><span style=\"color: #6CB6FF\">false<\/span><span style=\"color: #ADBAC7\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #768390\">\/\/ or<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F47067\">val<\/span><span style=\"color: #ADBAC7\"> listItemBinding <\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #ADBAC7\"> DataBindingUtil.<\/span><span style=\"color: #DCBDFB\">inflate<\/span><span style=\"color: #ADBAC7\">(layoutInflater, R.layout.list_item, viewGroup, <\/span><span style=\"color: #6CB6FF\">false<\/span><span style=\"color: #ADBAC7\">)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\uc704\uc640\uac19\uc774 \uc5bb\uc5b4\uc628 binding \uac1d\uccb4\uc5d0\ub294 id\ub97c \uac16\ub294 ui view\ub4e4\uc774 \uba64\ubc84\ub85c \ud3ec\ud568\ub418\uc5b4 \uc788\uc5b4 \ubc14\ub85c \uc0ac\uc6a9\uac00\ub2a5\ud558\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity is-style-dots\"\/>\n\n\n\n<p>Data binding\uc740 XML\uc744 \ud558\ub098\uc758 \ud074\ub798\uc2a4\ub85c \uc0dd\uac01\ud560 \uc218 \uc788\uac8c \ud574\uc900\ub2e4. \uc704 \ub0b4\uc6a9\uc740 \uc2dc\uc791\uc77c \ubfd0\uc774\uace0, LiveData\uc640 \uc5f0\uacb0\ud558\uc5ec \uac12\uc758 \ubcc0\uacbd\uc744 \ubc14\ub85c \uc801\uc6a9\ud574\uc8fc\ub294 observer pattern\ub3c4 \uc27d\uac8c \uc0ac\uc6a9\uac00\ub2a5\ud558\uace0, onClick\uacfc \uac19\uc740 \uc774\ubca4\ud2b8 \ud578\ub4e4\ub7ec\ub098 \ub370\uc774\ud130\ub97c \uac00\uacf5\ud574 \ud560\ub2f9\ud574\uc8fc\ub294 Adapter\ub3c4 \uc0ac\uc6a9\uc774 \uac00\ub2a5\ud574\uc9c4\ub2e4. \uc0ac\uc2e4 \uc774 \ubaa8\ub4e0\uac8c MVVM Design pattern\uc744 \uad6c\uc131\ud558\ub294 \ud070 \uadf8\ub9bc\uc758 \uc77c\ubd80\ub2e4. \uc774 \ud6c4, \ud3ec\uc2a4\ud305\uc5d0\uc11c \ucd94\uac00\ub85c \ub2e4\ub904\ubcf4\ub3c4\ub85d \ud558\uaca0\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Data Binding\uc740 2018\ub144\ub3c4 Jetpack \ub77c\uc774\ube0c\ub7ec\ub9ac\uc758 \uc77c\ubd80\ub85c \uc18c\uac1c\ub418\uc5c8\ub2e4. \uc77c\ub2e8, \uadf8 \uc774\uc804\uc5d0 UI\ub97c \ub2e4\ub8e8\ub294 \ubc29\uc2dd\uc744 \uc54c\uc544\ubcf4\uc790. \uc774\uc804\uc5d0\ub294 \ucf54\ub4dc\ub0b4\uc5d0\uc11c(\ubcf4\ud1b5 onCreate()\ub098 onCreateView()) LayoutInflater\ub97c \uc774\uc6a9\ud558\uc5ec XML\uc744 \ud30c\uc2f1 \ud6c4 View \uc624\ube0c\uc81d\ud2b8\ub85c \ubcc0\ud658\ud558\ub294 \uc791\uc5c5\uc744 \ud574\uc57c\ud588\ub2e4. UI\ub97c \uad6c\uc131\ud558\ub294 \ubcc0\ud658\ub41c View \uc624\ube0c\uc81d\ud2b8\ub294 \ud2b8\ub9ac\ud615\ud0dc\ub85c \ub418\uc5b4\uc788\uc73c\uba70, \uc6d0\ud558\ub294 View\ub97c \uc5bb\uc5b4\uc624\ub824\uba74 findViewById()\ub4f1\uc744 \uc774\uc6a9\ud574 \uc774 \ud2b8\ub9ac\uad6c\uc870\ub97c \uac80\uc0c9\ud574\uc57c \uac00\ub2a5\ud588\ub2e4. XML\ud30c\uc2f1\ub3c4 \uac80\uc0c9\ub3c4 \ubaa8\ub450 \ubd80\ud558\uac00 \uc0c1\ub2f9\ud55c \uc791\uc5c5\ub4e4\uc774\uc5c8\ub2e4. \uc774\ub97c \uac1c\uc120\ud558\uace0\uc790, Data Binding \ub77c\uc774\ube0c\ub7ec\ub9ac\uac00 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,34],"tags":[186,187,38,20,41],"class_list":["post-608","post","type-post","status-publish","format-standard","hentry","category-android","category-kotlin","tag-android-2","tag-data-binding","tag-kotlin","tag-android","tag-kotlin-kr"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/posts\/608","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/comments?post=608"}],"version-history":[{"count":8,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/posts\/608\/revisions"}],"predecessor-version":[{"id":3509,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/posts\/608\/revisions\/3509"}],"wp:attachment":[{"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/media?parent=608"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/categories?post=608"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/batmask.net\/index.php\/wp-json\/wp\/v2\/tags?post=608"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}