{"id":1314,"date":"2020-04-09T12:02:45","date_gmt":"2020-04-09T03:02:45","guid":{"rendered":"http:\/\/yoonhada.com\/?p=1314"},"modified":"2023-12-26T23:48:11","modified_gmt":"2023-12-26T14:48:11","slug":"gradle-%ea%b0%9c%ec%9a%94","status":"publish","type":"post","link":"http:\/\/yoonhada.com\/?p=1314","title":{"rendered":"Gradle \uac1c\uc694"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Gradle OverView<\/strong><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/t1.daumcdn.net\/cfile\/tistory\/22613C3B5960FB2B24\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Gradle\uc740 Gradle \uc0ac\uc5d0\uc11c \ub9cc\ub4e0 \ubc94\uc6a9 \ube4c\ub4dc \ub3c4\uad6c\uc911\uc5d0 \ud558\ub098\uc785\ub2c8\ub2e4. \uc548\ub4dc\ub85c\uc774\ub4dc\uc5d0\uc11c \ube4c\ub4dc \ubfd0\ub9cc \uc544\ub2c8\ub77c, java, c\/c++ \ub4f1\uc758 \ubaa8\ub4e0 \ubc94\uc6a9 \uc5b8\uc5b4\ub97c \uc9c0\uc6d0\ud569\ub2c8\ub2e4. \uadf8\ub7ec\ubbc0\ub85c \uc5c4\uccad \uac15\ub825\ud55c \ud234\uc774\uc9c0\uc694. \uadf8\ub798\uc11c Gradle\uc744 \ud55c\ubc88 \ubc30\uc6cc\ub450\uba74 \ub2e4\ub978\uc5b8\uc5b4\ub85c \uac1c\ubc1c\ud558\ub354\ub77c\ub3c4 \ube4c\ub4dc \uc2a4\ud06c\ub9bd\ud2b8\ub97c \ucc98\uc74c\ubd80\ud130 \ub2e4\uc2dc \uc791\uc131\ud560 \ud544\uc694\uc5c6\uc774 \uc7ac\uc0ac\uc6a9\ud558\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub204\ucc28 \uac15\uc870\ud558\uc9c0\ub9cc \uaf2d gradle\uc744 \ubc30\uc6cc\ubcf4\ub3c4\ub85d \ud569\uc2dc\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\uc74c\uc740 gradle\uc758 \uc8fc\uc694 \ud2b9\uc9d5 4\uac00\uc9c0 \uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. Polyglot Build<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gradle\uc740 \uac01 \uc5b8\uc5b4\ub97c \ud50c\ub7ec\uadf8\uc778\uc73c\ub85c \uad6c\ubcc4\ud569\ub2c8\ub2e4. java\ub294 java, java \uc6f9 \ud504\ub85c\uc81d\ud2b8\ub294 war, \uc548\ub4dc\ub85c\uc774\ub4dc \uc571\uc740 com.android.application \ud50c\ub85c\uadf8\uc778\uc744 \uc0ac\uc6a9\ud558\uba74 \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. \ub3c4\uad6c\ud1b5\ud569<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">gradle\uc740 \uc774\ud074\ub9bd\uc2a4, \uc548\ub4dc\ub85c\uc774\ub4dc \uc2a4\ud29c\ub514\uc624 \uc640 \uac19\uc740 IDE\uc5d0\uc11c \uc815\ub9d0 \ud3b8\ub9ac\ud558\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ucc3d\uc744 \uc81c\uacf5\ud558\uace0\uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c \uc820\ud0a8\uc2a4\uc640 \ud568\uaed8 \ud65c\uc6a9\ud560 \uc218 \ub3c4\uc788\uc2b5\ub2c8\ub2e4. \uc18c\uc2a4\ucf54\ub4dc\uac00 git\uc5d0 \uc5c5\ub85c\ub4dc\ub418\uba74 \uc11c\ubc84\uc5d0\uc11c CheckStyle, FindBugs \ub4f1\uc758 \ud50c\ub7ec\uadf8\uc778\uc744 \ud65c\uc6a9\ud558\uc5ec \uc18c\uc2a4\ucf54\ub4dc\uac00 \uc7a0\uc7ac\uc801\uc73c\ub85c \uac00\uc9c4 \ubb38\uc81c\ub97c \uac80\ucd9c\ud558\uc5ec \uac1c\ubc1c\uc790\uc5d0\uac8c \ud1b5\ubcf4\ud558\uac70\ub098 \uc704\ud5d8\ud55c \ucf54 \ub4dc\ub97c merge\ud560 \uc218 \uc5c6\ub3c4\ub85d \uac15\uc81c\uc801\uc73c\ub85c \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. \uc678\ubd80 \ub77c\uc774\ube0c\ub7ec\ub9ac \uad00\ub9ac \uc790\ub3d9\ud654<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gradle\uc758 \ub610\ub2e4\ub978 \uc7a5\uc810\uc911 \ud558\ub098\ub294 \uac1c\ubc1c\uc790\uac00 \ub354\ub294 \uc678\ubd80\ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uad00\ub9ac\ud558\uc9c0 \uc54a\uc544\ub3c4 \ub41c\ub2e4\ub294 \uc810\uc785\ub2c8\ub2e4. \uac1c\uc778\uc801\uc73c\ub85c \uc774\uc810\uc774 \uac00\uc7a5 \ub9c8\uc74c\uc5d0 \ub4ed\ub2c8\ub2e4. \uc774\ud074\ub9bd\uc2a4\uc5d0\uc11c \uac1c\ubc1c\ud588\ub358 \uacfc\uac70\uc758 \uacbd\uc6b0\uc5d0\ub294 libs \ud3f4\ub354\uc5d0 \uc6d0\ud558\ub294 \uc678\ubd80\ub77c\uc774\ube0c\ub7ec\ub9ac \ud30c\uc77c\uc744 \uc9c1\uc811 \ubcf5\uc0ac\ud558\uc600\uc9c0\ub9cc, Gradle \uc5d0\uc11c\ub294 \ub2e8\uc21c\ud788 \uc678\ubd80 \uc800\uc7a5\uc18c \uc704\uce58\uc640 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc758 \uadf8\ub8f9, \uc774\ub984, \ubc84\uc804 \ub4f1\uc744 \uc9c0\uc815\ud574\uc8fc\uba74 \uc54c\uc544\uc11c \ub2e4\uc6b4\ub85c\ub4dc\ud558\uace0 \ube4c\ub4dc\uc5d0 \ud3ec\ud568\uc2dc\ud0a4\uac8c \ub429\ub2c8\ub2e4. \uc774\uc5bc\ub9c8\ub098 \ud3b8\ud558\uace0 \uc88b\uc2b5\ub2c8\uae4c.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. \uace0\uc131\ub2a5 \ube4c\ub4dc<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gradle\uc740 \uc810\uc9c4\uc801 \ube4c\ub4dc, \ube4c\ub4dc\uce90\uc2f1, \ubcd1\ub82c \ube4c\ub4dc \uae30\ub2a5\uc744 \uc9c0\uc6d0\ud558\ub294 \uace0\uc131\ub2a5 \ube4c\ub4dc\ub97c \uc9c0\ud5a5\ud569\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc2e4\uc81c\ub85c \uc6b0\ub2c8\ub3c4\uc6b0 \ud658\uacbd\uc5d0\uc11c \uc548\ub4dc\ub85c\uc774\ub4dc \uc571\uc744 \ube4c\ub4dc\ud574\ubcf4\uba74 gradle \uba54\ubaa8\ub9ac \uc0ac\uc6a9\ub7c9\uc774 \ub9ce\uace0 \ube4c\ub4dc\uc2dc CPU \uc810\uc720\uc728\uc774 \uc5c4\uccad \ub192\uac8c \uc7a1\ud799\ub2c8\ub2e4. \uc2e4\ubb34\uc5d0\uc11c \uad8c\uc7a5\ud558\ub294 \uc0ac\uc591\uc740 \uba54\ubaa8\ub9ac 8GB\uc640 SSD \uc7a5\ucc29\uc785\ub2c8\ub2e4. \uba54\ubaa8\ub9ac 4GB\uc5d0\uc11c \ubaa8\ub4c8\uc758 \uc218\uac00 \ub298\uc5b4\ub098\uba74 Out of memery \ud604\uc0c1\uc774 \ubc1c\uc0dd\ud569\ub2c8\ub2e4. \ub610\ud55c heap\uc774 \ubd80\uc871\ud558\ub2e4\uace0 \ub09c\ub9ac\uce58\uae30\ub3c4 \ud55c\ub2f5\ub2c8\ub2e4.(\uc9c4\uc9dc \uacbd\ud5d8)<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/t1.daumcdn.net\/cfile\/tistory\/21685B405960FD3431\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\uc548\ub4dc\ub85c\uc774\ub4dc \uc2a4\ud29c\ub514\uc624\uc5d0\uc11c Gradle\uc758 \ud2b9\uc9d5\uc744 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. \uba40\ud2f0 \ud504\ub85c\uc81d\ud2b8 \uad6c\uc870<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc548\ub4dc\ub85c\uc774\ub4dc \uc2a4\ud29c\ub514\uc624\uc5d0\uc11c \ud504\ub85c\uc81d\ud2b8\ub97c \uc0dd\uc131\ud558\uba74 \uba40\ud2f0 \ud504\ub85c\uc81d\ud2b8\ub85c \uc0dd\uc131\ub429\ub2c8\ub2e4. app\uc774\ub77c\ub294 \ud3f4\ub354\uac00 \uc788\ub294\ub370 \uc774\ub97c Gradle\uc5d0\uc11c\ub294 \ubaa8\ub4c8\uc774\ub77c\uace0 \ubd80\ub985\ub2c8\ub2e4. gradle\uc5d0\uc11c\ub294 app \ubaa8\ub4c8\ubfd0\ub9cc \uc544\ub2c8\ub77c \uc0c8\ub85c\uc6b4 \ubaa8\ub4c8\uc744 \ucd94\uac00\ud558\uc5ec \ubaa8\ub4c8\ubcc4\ub85c src \ud3f4\ub354\ub97c \ud3ec\ud568\ud558\uac8c \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. src\ud3f4\ub354 \uad6c\uc870\uac00 \ub2e4\ub984<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">androidTest, main, test \ud3f4\ub354\ub97c \ud655\uc778\ud558\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Test \ud3f4\ub354\ub294 Local Unit Test \ub97c \uc9c0\uc6d0\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. libs \ud3f4\ub354<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ud074\ub9bd\uc2a4 libs \ud3f4\ub354\uc5d0\ub294 \ube4c\ub4dc\ud558\ub294\ub370 \ud544\uc694\ud55c \uc678\ubd80\ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc9c1\uc811 \ud3ec\ud568\uc2dc\ucf1c\uc57c \ud588\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc gradle\uc5d0\uc11c\ub294 \uc758\uc874\uc131 \uad00\ub9ac\ub97c gradle\uc774 \ub2f4\ub2f9\ud558\ubbc0\ub85c libs \ud3f4\ub354\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uc544\ub3c4\ub429\ub2c8\ub2e4. \ud544\uc694\ud55c \uc2a4\ud06c\ub9bd\ud2b8 \ud30c\uc77c\uc5d0\uc11c \uc678\ubd80\ub77c\uc774\ube0c\ub7ec\ub9ac\uc758 \uc800\uc7a5\uc18c\uc640 \ubc84\uc804\ub4f1\uc744 \uc9c0\uc815\ud558\uba74 \ube4c\ub4dc\ud560 \ub54c \uc54c\uc544\uc11c \ud574\ub2f9 \ubc84\uc804\uc744 \ub2e4\uc6b4\ub85c\ub4dc\ud558\uc5ec \ud3ec\ud568\ud569\ub2c8\ub2e4. \ub610\ud55c, +\uc635\uc158\ub4f1\uc744 \uc801\uc6a9\ud558\uba74 \ucd5c\uc2e0\ubc84\uc804\uc744 \uc790\ub3d9\uc73c\ub85c \ub2e4\uc6b4\ub85c\ub4dc \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. bin \ud3f4\ub354<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">gradle\uc5d0\uc11c \ube4c\ub4dc\ub97c\ud558\uba74 build\/output\/apk \ud3f4\ub354\uc5d0 apk \ud30c\uc77c\uc774 \uc704\uce58\ud558\uac8c\ub429\ub2c8\ub2e4. \ud639\uc740 AAR\ud30c\uc77c\ub3c4 \uc788\uac8c \ub429\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gradle OverView Gradle\uc740 Gradle \uc0ac\uc5d0\uc11c \ub9cc\ub4e0 \ubc94\uc6a9 \ube4c\ub4dc \ub3c4\uad6c\uc911\uc5d0 \ud558\ub098\uc785\ub2c8\ub2e4. \uc548\ub4dc\ub85c\uc774\ub4dc\uc5d0\uc11c \ube4c\ub4dc \ubfd0\ub9cc \uc544\ub2c8\ub77c, java, c\/c++ \ub4f1\uc758 \ubaa8\ub4e0 \ubc94\uc6a9 \uc5b8\uc5b4\ub97c \uc9c0\uc6d0\ud569\ub2c8\ub2e4. \uadf8\ub7ec\ubbc0\ub85c \uc5c4\uccad \uac15\ub825\ud55c \ud234\uc774\uc9c0\uc694. \uadf8\ub798\uc11c Gradle\uc744 \ud55c\ubc88 \ubc30\uc6cc\ub450\uba74 \ub2e4\ub978\uc5b8\uc5b4\ub85c \uac1c\ubc1c\ud558\ub354\ub77c\ub3c4 \ube4c\ub4dc \uc2a4\ud06c\ub9bd\ud2b8\ub97c \ucc98\uc74c\ubd80\ud130 \ub2e4\uc2dc \uc791\uc131\ud560 \ud544\uc694\uc5c6\uc774 \uc7ac\uc0ac\uc6a9\ud558\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub204\ucc28 \uac15\uc870\ud558\uc9c0\ub9cc \uaf2d gradle\uc744 \ubc30\uc6cc\ubcf4\ub3c4\ub85d \ud569\uc2dc\ub2e4. \ub2e4\uc74c\uc740 gradle\uc758 \uc8fc\uc694 \ud2b9\uc9d5 4\uac00\uc9c0 \uc785\ub2c8\ub2e4. 1. Polyglot Build [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[83],"tags":[17,54],"class_list":["post-1314","post","type-post","status-publish","format-standard","hentry","category-archive","tag-android","tag-gradle"],"_links":{"self":[{"href":"http:\/\/yoonhada.com\/index.php?rest_route=\/wp\/v2\/posts\/1314","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/yoonhada.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/yoonhada.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/yoonhada.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/yoonhada.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1314"}],"version-history":[{"count":1,"href":"http:\/\/yoonhada.com\/index.php?rest_route=\/wp\/v2\/posts\/1314\/revisions"}],"predecessor-version":[{"id":1315,"href":"http:\/\/yoonhada.com\/index.php?rest_route=\/wp\/v2\/posts\/1314\/revisions\/1315"}],"wp:attachment":[{"href":"http:\/\/yoonhada.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1314"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/yoonhada.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1314"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/yoonhada.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1314"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}