{"id":82372,"date":"2020-10-06T01:40:06","date_gmt":"2020-10-06T01:40:06","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=space&#038;p=82372"},"modified":"2020-10-06T01:40:06","modified_gmt":"2020-10-06T01:40:06","slug":"space-automation","status":"publish","type":"space","link":"https:\/\/blog.jetbrains.com\/ko\/space\/2020\/10\/06\/space-automation\/","title":{"rendered":"Space Automation\uc774 \ubaa8\ub450\uc5d0\uac8c \uacf5\uac1c \ub418\uc5c8\uc2b5\ub2c8\ub2e4"},"content":{"rendered":"<p><a href=\"https:\/\/blog.jetbrains.com\/space\/2020\/09\/17\/space-automation-is-available-for-everyone\/\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-75715 size-full\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/1200x628_facebook_automate-ci-cd.png\" alt=\"Space Automation\" width=\"1200\" height=\"628\" \/><\/a><\/p>\n<\/p>\n<p>EAP \uae30\uac04 \uc911 \uc5bc\ub9ac\uc5b4\ub2f5\ud130 \uc5ec\ub7ec\ubd84 \uc0ac\uc774\uc5d0\uc11c \ud070 \uc778\uae30\ub97c \ub04c\uc5c8\ub358 \ucd94\uac00 \uc608\uc815 \uae30\ub2a5\uc778 Space Automation\uc774 \ubaa8\ub4e0 Space \ubca0\ud0c0 \uace0\uac1d\uc5d0\uac8c \uc81c\uacf5\ub429\ub2c8\ub2e4.<br \/>Automation\uc744 \ud1b5\ud574 Space\uc758 CI\/CD \ud65c\ub3d9\uc744 \uc2e4\ud589\ud558\uace0 \ud504\ub85c\uc81d\ud2b8 \ube4c\ub4dc, \ud14c\uc2a4\ud2b8 \ubc0f \ubc30\ud3ec\ub97c \uc644\ub8cc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>Space\ub294 \ud604\uc7ac \ub204\uad6c\ub098 \ubb34\ub8cc\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \ubca0\ud0c0 \ubc84\uc804\uc73c\ub85c \uc81c\uacf5\ub429\ub2c8\ub2e4. Space \ubca0\ud0c0 \ubc84\uc804\uc758 \ubaa8\ub4e0 \uace0\uac1d\uc740 \ub9e4\uc6d4 10,000 CI \ud06c\ub808\ub527\uc774 \ud3ec\ud568\ub41c Organization \uc694\uae08\uc81c\ub97c \uc774\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc544\uc9c1 \ubca0\ud0c0 \ud504\ub85c\uadf8\ub7a8\uc5d0 \ucc38\uc5ec\ud558\uc9c0 \uc54a\uc73c\uc2e0 \uacbd\uc6b0 <a href=\"https:\/\/jb.gg\/dpsme8\" target=\"_blank\" rel=\"noopener\">\ubb34\ub8cc\ub85c Space\uc5d0 \ub4f1\ub85d<\/a>\ud558\uace0 \uc624\ub298\ubd80\ud130 \uc0ac\uc6a9\ud574\ubcf4\uc138\uc694.<\/p>\n<p>\ub2e4\uc591\ud55c \uc791\uc5c5\uc744 \uc790\ub3d9\ud654\ud558\uace0 \uc9c0\uc18d\uc801\uc778 \ubc30\ud3ec \ud30c\uc774\ud504\ub77c\uc778\uc744 \uad00\ub9ac\ud558\ub294 \ub370 \ub3c4\uc6c0\uc774 \ub420 \uc2dc\uc2a4\ud15c\uc758 \uac04\ub7b5\ud55c \uc18c\uac1c\ub97c \uc900\ube44\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uadf8\ub7fc \uc774\uc81c Space Automation\uc744 \ubcf8\uaca9\uc801\uc73c\ub85c \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4!<\/p>\n<h2>Space Automation \uc18c\uac1c<\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74504\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/what_is_space_automation.png\" alt=\"JetBrains Space Automation\" width=\"697\" height=\"380\"><\/p>\n<p>Automation\uc740 \uc2dc\uc2a4\ud15c\uc758 \ubaa8\ub4e0 CI\/CD \ud65c\ub3d9\uc744 \ub2f4\ub2f9\ud558\ub294 Space \ubaa8\ub4c8\uc785\ub2c8\ub2e4. \uc800\uc7a5\uc18c\uc5d0 \uc800\uc7a5\ub41c \uc2a4\ud06c\ub9bd\ud2b8 \ud30c\uc77c\uc744 \ud65c\uc6a9\ud558\uc5ec \ud504\ub85c\uc81d\ud2b8 \ube4c\ub4dc, \ud14c\uc2a4\ud2b8 \ubc0f \ubc30\ud3ec\ub97c \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\ucf54\ub4dc\ub85c\uc11c \uad6c\uc131<\/h2>\n<p>\uc2a4\ud06c\ub9bd\ud2b8\ub294 Automation\uc744 \uad6c\uc131\ud558\ub294 \uc720\uc77c\ud55c \ubc29\uc2dd\uc785\ub2c8\ub2e4. Space\uc5d0 \ud45c\uc2dc\ub418\ub294 Automation UI\ub294 \uc2a4\ud06c\ub9bd\ud2b8 \uacb0\uacfc(\ub85c\uadf8, \ud14c\uc2a4\ud2b8, \uc544\ud2f0\ud329\ud2b8)\ub97c \uc2dc\uac01\ud654\ud558\ub294 \ub370\ub9cc \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \uc2a4\ud06c\ub9bd\ud2b8\ub294 \ud2b9\uc218\ud55c Kotlin \uae30\ubc18 DSL(\ub3c4\uba54\uc778 \ud2b9\ud654 \uc5b8\uc5b4)\ub85c \uc791\uc131\ub429\ub2c8\ub2e4.<\/p>\n<h2>\uc790\ub3d9\ud654 \uc2a4\ud06c\ub9bd\ud2b8<\/h2>\n<p>\uc790\ub3d9\ud654 \uc2a4\ud06c\ub9bd\ud2b8\ub294 \ud504\ub85c\uc81d\ud2b8 \ub8e8\ud2b8 \ub514\ub809\ud1a0\ub9ac\uc758 .space.kts \ud30c\uc77c\uc5d0 \uc800\uc7a5\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4. .space.kts \ud30c\uc77c\uc744 \uc218\uc815\ud558\ub824\uba74, Space \ucf54\ub4dc \uc6f9 \uc5d0\ub514\ud130 \ub610\ub294 Space \ud50c\ub7ec\uadf8\uc778\uc774 \uc124\uce58\ub41c IntelliJ IDEA\ub97c \uc0ac\uc6a9\ud558\uba74 \ub429\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74720\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Automation-script-.png\" alt=\"Automation \uc2a4\ud06c\ub9bd\ud2b8\" width=\"1999\" height=\"791\"><\/p>\n<h2>Kotlin \uae30\ubc18\uc758 DSL<\/h2>\n<p>Space Automation DSL\uc740 Kotlin\uc744 \uae30\ubc18\uc73c\ub85c \ud558\uc5ec(YAML \uc608\uc815) \ub9ce\uc740 \uc7a5\uc810\uc744 \uac16\uace0 \uc788\uc2b5\ub2c8\ub2e4. Kotlin \ub370\uc774\ud130 \uc720\ud615 \ubc0f \uc5b8\uc5b4 \uad6c\uc870\ub97c \uc790\ub3d9\ud654 \uc2a4\ud06c\ub9bd\ud2b8 \ub0b4\uc5d0\uc11c \ubc14\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\ube0c\ub79c\uce58\uc5d0 \ubd84\ub9ac<\/h2>\n<p>\uc790\ub3d9\ud654 \uad6c\uc131\uc740 \uc2a4\ud06c\ub9bd\ud2b8 \ud30c\uc77c\uc744 \ud1b5\ud574 \uc774\ub8e8\uc5b4\uc9c0\ubbc0\ub85c \ud574\ub2f9 \uad6c\uc131\uc740 Git \ube0c\ub79c\uce58\uc5d0 \uc644\uc804\ud788 \ubd84\ub9ac\ub429\ub2c8\ub2e4. \uadf8\ub807\uae30\uc5d0 \uc790\ub3d9\ud654 \uc2a4\ud06c\ub9bd\ud2b8\ub97c \ub9e4\uc6b0 \uac04\ud3b8\ud558\uac8c \uc2e4\ud5d8\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc0c8 \ube0c\ub79c\uce58\ub97c \uc0dd\uc131\ud558\uace0 .space.kts \ud30c\uc77c\uc744 \ucd94\uac00\ud55c \ud6c4 \uc2e4\ud5d8\uc744 \uc2dc\uc791\ud558\uba74 \ub429\ub2c8\ub2e4.<\/p>\n<h2>\ucee8\ud14c\uc774\ub108<\/h2>\n<p>\ubaa8\ub4e0 \uc790\ub3d9\ud654 \ud65c\ub3d9\uc740 Linux \uae30\ubc18\uc758 Docker \ucee8\ud14c\uc774\ub108\uc5d0\uc11c \uc2e4\ud589\ub429\ub2c8\ub2e4. Automation \uc2a4\ud06c\ub9bd\ud2b8\uc758 \ube4c\ub529 \ube14\ub85d\uc740 Job \uc785\ub2c8\ub2e4. Job\uc744 \uc0ac\uc6a9\ud558\uba74 \ucee8\ud14c\uc774\ub108 \ub0b4\uc5d0\uc11c \ub3c5\ub9bd\uc801 \ub2e8\uacc4\ub97c \uc2e4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c \uc608\uc2dc\uc758 \uacbd\uc6b0 Job\uc740 \uc178 \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc2e4\ud589\ud558\ub294 Ubuntu \ucee8\ud14c\uc774\ub108\ub77c\ub294 \ud55c \ub2e8\uacc4\ub85c \uad6c\uc131\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74700\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Containers.png\" alt=\"\ucee8\ud14c\uc774\ub108\" width=\"1568\" height=\"574\"><\/p>\n<p>Job \uc2e4\ud589 \uacb0\uacfc\uc640 \ucee8\ud14c\uc774\ub108 \ub85c\uadf8\uac00 \ud504\ub85c\uc81d\ud2b8\uc758 <strong>Jobs<\/strong> \ud398\uc774\uc9c0\uc5d0 \ud45c\uc2dc\ub429\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74710\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Automation-Containers-1.png\" alt=\"\" width=\"1631\" height=\"1104\"><\/p>\n<h2>\uc21c\ucc28 \ubc0f \ubcd1\ub82c \ub2e8\uacc4<\/h2>\n<p>\ucee8\ud14c\uc774\ub108\uc758 \ub2e8\uacc4\ub97c \uc21c\ucc28\uc801, \ubcd1\ub82c\uc801\uc73c\ub85c \uc2e4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c \ucee8\ud14c\uc774\ub108\uc758 \uadf8\ub798\ud504\ub97c \uc2e4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74690\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Automation-Sequential-and-parallel-steps.png\" alt=\"Automation \uc21c\ucc28\uc801 \ubcd1\ub82c \ub2e8\uacc4\" width=\"1562\" height=\"1182\"><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74668\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Sequential-and-parallel-steps.png\" alt=\"\uc21c\ucc28\uc801 \ubcd1\ub82c \ub2e8\uacc4\" width=\"1523\" height=\"643\"><\/p>\n<h2>Kotlin \ucf54\ub4dc \uc2e4\ud589<\/h2>\n<p>Kotlin \uae30\ubc18\uc758 DSL\uc744 \uc0ac\uc6a9\ud558\uba74 \ube4c\ub4dc \uc2a4\ud06c\ub9bd\ud2b8 \ub0b4\uc758 \ubcf5\uc7a1\ud55c \ub85c\uc9c1\ub3c4 \uad6c\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub7ec\ud55c \ubaa9\uc801\uc5d0 \ub530\ub77c \ucee8\ud14c\uc774\ub108 \ub0b4\ubd80\uc758 \ud2b9\uc218\ud55c kotlinScript \uc544\uc774\ud15c\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br \/><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74678\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Running-Kotlin-code.png\" alt=\"Kotlin \ucf54\ub4dc \uc2e4\ud589\" width=\"1560\" height=\"616\"><\/p>\n<h2>\uae30\ud0c0 Space \ubaa8\ub4c8\uacfc \ud1b5\ud569<\/h2>\n<p>.space.kts\uc5d0\ub294 Kotlin \uae30\ubc18\uc758 Space HTTP API \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 \ub300\ud55c \uc561\uc138\uc2a4 \uad8c\ud55c\uc774 \uc788\uc2b5\ub2c8\ub2e4. \ubaa8\ub4e0 Space \ubaa8\ub4c8\uc740 API\ub97c \uc81c\uacf5\ud558\ubbc0\ub85c \ub2e4\uc74c\uacfc \uac19\uc740 Space\uc758 \ubaa8\ub4e0 \uc694\uc18c\uc640 \ud1b5\uc2e0\uc774 \uac00\ub2a5\ud569\ub2c8\ub2e4.<\/p>\n<ul>\n<li>api.space().packages<\/li>\n<li>api.space().projects<\/li>\n<li>api.space().todo<\/li>\n<li>api.space().blogs<\/li>\n<li>\uae30\ud0c0 \ub4f1\ub4f1.<\/li>\n<\/ul>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74656\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Space-modules-Integration.png\" alt=\"Space \ubaa8\ub4c8 \ud1b5\ud569\" width=\"1560\" height=\"508\"><\/p>\n<h2>Gradle, Docker \ubc0f \uae30\ud0c0 \ub3c4\uad6c\uc640 \ud1b5\ud569<\/h2>\n<p>\uc678\ubd80 \ub3c4\uad6c\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d API\ub97c \ube44\ub86f\ud55c \ucd94\uac00\uc801 \ub2e8\uacc4 \uc720\ud615\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 Gradle \ube4c\ub4dc \uac04\uc18c\ud654\ub97c \uc704\ud574 Gradle \ub610\ub294 Gradlew \ub2e8\uacc4\ub97c \ud65c\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74626\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Automation-Integration-with-Gradle.png\" alt=\"Automation\uacfc Gradle \ud1b5\ud569\" width=\"1560\" height=\"188\"><\/p>\n<p>\ud14c\uc2a4\ud2b8\uc758 \ucd9c\ub825 \ub0b4\uc5ed\uc774 Job \uac1c\uc694 \ud398\uc774\uc9c0\uc5d0 \ud45c\uc2dc\ub429\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74646\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Automation-Integration.png\" alt=\"Automation \ud1b5\ud569\" width=\"1999\" height=\"1380\"><\/p>\n<p>Docker \uc774\ubbf8\uc9c0\ub97c \ube4c\ub4dc\ud558\uace0 \ud478\uc2dc\ud558\ub294 \ub370 Docker \ub2e8\uacc4\ub97c \ud65c\uc6a9\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74636\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Automation-Integration-with-Docker.png\" alt=\"Automation\uacfc Docker \ud1b5\ud569\" width=\"1564\" height=\"592\"><\/p>\n<p>\ud5a5\ud6c4 .NET, npm, MVN \ubc0f \uae30\ud0c0 \ub3c4\uad6c\uc5d0 \ub300\ud55c \uc9c0\uc6d0\ub3c4 \ucd94\uac00\ud560 \uc608\uc815\uc785\ub2c8\ub2e4.<\/p>\n<h2>\uc678\ubd80 \ub77c\uc774\ube0c\ub7ec\ub9ac \uc0ac\uc6a9<\/h2>\n<p>\uc790\ub3d9\ud654 \uc2a4\ud06c\ub9bd\ud2b8\uc5d0 Kotlin\uc744 \uc0ac\uc6a9\ud560 \uacbd\uc6b0\uc758 \ub2e4\ub978 \uc7a5\uc810\uc740 \uc678\ubd80 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \ucc38\uc870\ud560 \uc218 \uc788\ub2e4\ub294 \uc810\uc785\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74616\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Automation-Using-external-libraries.png\" alt=\"\uc678\ubd80 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\ub294 Automation\" width=\"1562\" height=\"786\"><\/p>\n<h2>IntelliJ IDEA \ud50c\ub7ec\uadf8\uc778<\/h2>\n<p>IntelliJ IDEA\uc6a9 Space \ud50c\ub7ec\uadf8\uc778\uc744 \ud65c\uc6a9\ud558\uba74 Space API\ub97c \uc0ac\uc6a9\ud558\ub294 \ubcf5\uc7a1\ud55c \uc2a4\ud06c\ub9bd\ud2b8\ub97c \ud6e8\uc52c \uac04\ud3b8\ud558\uac8c \uc791\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc790\ub3d9\ud654 \uc2a4\ud06c\ub9bd\ud2b8 \uac80\uc0ac \uae30\ub2a5\uacfc \ub354\ubd88\uc5b4 Space \ud50c\ub7ec\uadf8\uc778\uc740 \uc790\ub3d9\ud654 \ucf54\ub4dc \uc644\uc131 \uae30\ub2a5\ub3c4 \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74606\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Automation-IntelliJ-IDEA-plugin.png\" alt=\"Automation IntelliJ IDEA \ud50c\ub7ec\uadf8\uc778\" width=\"1912\" height=\"904\"><\/p>\n<h2>Space Packages\uc640 \ud1b5\ud569<\/h2>\n<p><strong>Space Packages<\/strong>\ub294 Space\uc5d0 \uad6c\ucd95\ub41c \ubc94\uc6a9 \uc800\uc7a5\uc18c \uad00\ub9ac \ub3c4\uad6c\uc785\ub2c8\ub2e4. \ucee8\ud14c\uc774\ub108 \ub808\uc9c0\uc2a4\ud2b8\ub9ac, Maven \uc800\uc7a5\uc18c, Nuget \ud53c\ub4dc \ubc0f npm \uc800\uc7a5\uc18c\ub97c \ube44\ub86f\ud55c \uc5ec\ub7ec \uc800\uc7a5\uc18c \uc720\ud615\uc774 \uc9c0\uc6d0\ub429\ub2c8\ub2e4. Automation\uc740 \ubcc4\ub3c4\uc758 \uc124\uc815 \uc5c6\uc774 \uc0ac\uc6a9 \uac00\ub2a5\ud55c Packages\uc640 \ud1b5\ud569\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/p>\n<ul>\n<li>Automation \uc2a4\ud06c\ub9bd\ud2b8\uc5d0\ub294 \uc778\uc99d\uc774 \ud544\uc694\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/li>\n<li>\ud328\ud0a4\uc9c0 \ubc84\uc804\uc740 Job \uc2e4\ud589 \ubc88\ud638\uc5d0 \ub530\ub77c \uc790\ub3d9\uc73c\ub85c \ubcc0\uacbd\ub429\ub2c8\ub2e4.<\/li>\n<\/ul>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74596\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Space-Packages-Integration.png\" alt=\"Space Packages \ud1b5\ud569\" width=\"1999\" height=\"1023\"><\/p>\n<h2>\uc11c\ube44\uc2a4 \ucee8\ud14c\uc774\ub108<\/h2>\n<p>\ucee8\ud14c\uc774\ub108 \ub0b4\ubd80\uc5d0\uc11c MySQL, Redis, Elastic \ub4f1 \ub124\ud2b8\uc6cc\ud06c \uc561\uc138\uc2a4 \uac00\ub2a5 \uc11c\ube44\uc2a4\ub97c \uc81c\uacf5\ud558\ub294 \ucd94\uac00 \uc11c\ube44\uc2a4 \ucee8\ud14c\uc774\ub108\ub97c \uc2e4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74586\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Automation-containers.png\" alt=\"Automation \ucee8\ud14c\uc774\ub108\" width=\"1556\" height=\"668\"><\/p>\n<p>\ub610\ud55c \ub2e4\ub978 \ucee8\ud14c\uc774\ub108\uc640 \ub9c8\ucc2c\uac00\uc9c0\ub85c \uc11c\ube44\uc2a4 \ucee8\ud14c\uc774\ub108 \ub85c\uadf8\ub3c4 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74576\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Automation-Service-containers.png\" alt=\"Automation \uc11c\ube44\uc2a4 \ucee8\ud14c\uc774\ub108\" width=\"1827\" height=\"863\"><\/p>\n<h2>\ud30c\uc77c \uacf5\uc720<\/h2>\n<p>\ud30c\uc77c \uacf5\uc720 \uae30\ub2a5\uc744 \ud65c\uc6a9\ud558\uba74 \ube4c\ub4dc \uc544\ud2f0\ud329\ud2b8\ub97c \ud55c \ub2e8\uacc4\uc5d0\uc11c \ub2e4\ub978 \ub2e8\uacc4\ub85c \uc804\ub2ec\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud30c\uc77c \uacf5\uc720\ub294 \uac01 \ucee8\ud14c\uc774\ub108\uc5d0 \ud0d1\uc7ac\ub41c \ubcfc\ub968\uc73c\ub85c, \uc9c1\uc811 \ub610\ub294 \uc804\uc6a9 API\ub97c \ud1b5\ud574 \uc561\uc138\uc2a4\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74565\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/automation-file-sharing.png\" alt=\"Automation \ud30c\uc77c \uacf5\uc720\" width=\"1556\" height=\"684\"><\/p>\n<h2>\uc2dc\ud06c\ub9bf \ubc0f \ub9e4\uac1c\ubcc0\uc218<\/h2>\n<p>CI\/CD \uc2dc\uc2a4\ud15c\uc758 \uc911\uc694\ud55c \ubd80\ubd84 \uc911 \ud558\ub098\ub294, \uc608\ub97c \ub4e4\uc5b4 \uc678\ubd80 \ud328\ud0a4\uc9c0 \uc800\uc7a5\uc18c\uc640 \uac19\uc740 \ub2e4\uc591\ud55c \uc678\ubd80 \ub9ac\uc18c\uc2a4\uc5d0 \uc790\uaca9 \uc99d\uba85\uc744 \uc548\uc804\ud558\uac8c \uc800\uc7a5\ud560 \uc218 \uc788\ub294 \uae30\ub2a5\uc785\ub2c8\ub2e4. \uc774 \ubaa9\uc801\uc5d0 \ub530\ub77c Automation\uc740 \uc2dc\ud06c\ub9bf \ubc0f \ub9e4\uac1c\ubcc0\uc218\ub97c \uc800\uc7a5\ud558\ub294 \uc790\uccb4 \uacf5\uac04\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74545\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/automation-parameter.png\" alt=\"Automation \ub9e4\uac1c\ubcc0\uc218\" width=\"1817\" height=\"1046\"><\/p>\n<p>\uc2dc\ud06c\ub9bf \ubc0f \ub9e4\uac1c\ubcc0\uc218\ub294 \ud0a4 \uac12\uc744 \uc0ac\uc6a9\ud558\uc5ec .space.kts\uc5d0\uc11c \uc27d\uac8c \uc561\uc138\uc2a4\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-75728\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Automation-secrets-and-parame.png\" alt=\"Automation \ube44\ubc00\uae00 \ubc0f \ub9e4\uac1c\ubcc0\uc218\" width=\"1560\" height=\"684\"><\/p>\n<h2>\uccad\uad6c<\/h2>\n<p>\uac01\uac01\uc758 JetBrains <a href=\"https:\/\/www.jetbrains.com\/space\/buy\/#cloud\" target=\"_blank\" rel=\"noopener\">Space \uad6c\ub3c5 \uc694\uae08\uc81c<\/a>\uc5d0\ub294 Automation \ube4c\ub4dc \uc2e4\ud589 \uc2dc \ud544\uc694\ud55c \uac00\uc0c1 \ud654\ud3d0\uc778 CI \ud06c\ub808\ub527\uc774 \uc77c\uc815 \uc218\ub9cc\ud07c \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. CI \ud06c\ub808\ub527 1\uac1c\ub294 \ub514\ud3f4\ud2b8 Linux \ucee8\ud14c\uc774\ub108\uc758 \uc791\uc5c5 1\ubd84\uc5d0 \ud574\ub2f9\ud569\ub2c8\ub2e4(2 vCPU, 7800 MiB RAM). \ub9e4\uc6d4 CI \ud06c\ub808\ub527\uc774 \ub2e4\uc2dc \ucda9\uc804\ub429\ub2c8\ub2e4. \uac01 \uad6c\ub3c5 \uc694\uae08\uc81c\uc5d0\ub294 \uc77c\uc815 \uc218\uc758 CI \ud06c\ub808\ub527\ubfd0 \uc544\ub2c8\ub77c CI \ud06c\ub808\ub527\uc758 \uc548\uc804 \uc7ac\uace0\uc778 \ub9ac\uc800\ube0c \ud06c\ub808\ub527(Reserve Credit)\ub3c4 \ud3ec\ud568\ub429\ub2c8\ub2e4. \ub9e4\uc6d4 \uc81c\uacf5\ub418\ub294 CI \ud06c\ub808\ub527\uc744 \ubaa8\ub450 \uc0ac\uc6a9\ud55c \ud6c4\uc5d0\ub294 Automation\uc774 \ubaa8\ub4e0 \uc800\uc7a5\uc18c\uc758 \uc790\ub3d9\ud654 Job \ud2b8\ub9ac\uac70\ub97c \ube44\ud65c\uc131\ud654\ud569\ub2c8\ub2e4(\uc608: \u2018Git \ud478\uc2dc\u2019\ub85c \ud65c\uc131\ud654\ub41c \ud2b8\ub9ac\uac70). \uc790\ub3d9\ud654 Job \ud2b8\ub9ac\uac70\uac00 \ube44\ud65c\uc131\ud654\ub418\uba74 <strong>Jobs<\/strong> \ud398\uc774\uc9c0\uc5d0\uc11c Job\uc744 \uc2e4\ud589\ud558\uc5ec Job\uc744 \uc218\ub3d9\uc73c\ub85c \ud2b8\ub9ac\uac70 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub9ac\uc800\ube0c \ud06c\ub808\ub527\uc740 \uc774\ub7ec\ud55c Job \uc2e4\ud589\uc5d0 \ub300\ud55c \uacb0\uc81c\uc5d0 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74555\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/space-automation-billing.png\" alt=\"Space Automation \uc694\uae08 \uacb0\uc81c\" width=\"1752\" height=\"800\"><\/p>\n<p>\uc624\ub298 \uc18c\uac1c\ud574\ub4dc\ub9b4 \ub0b4\uc6a9\uc740 \uc5ec\uae30\uae4c\uc9c0\uc785\ub2c8\ub2e4. Space\uc758 Automation \ucee8\uc149\uc5d0 \ub300\ud55c \uac1c\uc694\uac00 \uc798 \uc804\ub2ec\ub418\uc5c8\uae38 \ubc14\ub78d\ub2c8\ub2e4.<br \/>\n\uc9c8\ubb38\uc774\ub098 \uc758\uacac\uc774 \uc788\uc744 \uacbd\uc6b0 \uc544\ub798 \ub313\uae00\ub780\uc744 \ud1b5\ud574 \ud3b8\ud558\uac8c \ubb38\uc758\ud574 \uc8fc\uc138\uc694.<\/p>\n<p><a href=\"https:\/\/jb.gg\/nyxqlz\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74525\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Space-Automation-CICD-Webinar.png\" alt=\"Space Automation CI CD \uc6e8\ube44\ub098\" width=\"1200\" height=\"676\"><\/a><\/p>\n<p>2020\ub144 10\uc6d4 6\uc77c \uc624\ud6c4 4\uc2dc(CEST \uae30\uc900)\uc5d0 <a href=\"https:\/\/jb.gg\/nyxqlz\" target=\"_blank\" rel=\"noopener\">\ubb34\ub8cc \ub77c\uc774\ube0c \uc6e8\ube44\ub098<\/a>\uc778 Introduction to Automation: CI\/CD in Space\uac00 \uc5f4\ub838\uc2b5\ub2c8\ub2e4. \uc6e8\ube44\ub098\uc5d0\uc11c\ub294 JetBrains\uc758 \uac1c\ubc1c\uc790 \uc560\ub4dc\ubc84\ud0b7 Maarten Balliauw\uac00 Automation \uae30\ub2a5\uc758 \uc2e4\uc2dc\uac04 \ub370\ubaa8\ub97c \uc120\ubcf4\uc774\uace0 Automation \ud300 \ub9ac\ub354\uc778 Evgeniy Koshkin\uc774 \uc9c4\ud589\ud558\ub294 Q&amp;A \uc138\uc158\uc774 \uc788\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc790\ub3d9\ud654 DSL, \ube4c\ub4dc \uc2e4\ud589, Space \ud328\ud0a4\uc9c0 \ub808\uc9c0\uc2a4\ud2b8\ub9ac\uc5d0 \uac8c\uc2dc, \uc2dc\ud06c\ub9bf \ubc0f \ub9e4\uac1c\ubcc0\uc218 \ub4f1 \ub2e4\uc591\ud55c \uc8fc\uc81c\ub97c \ub2e4\ub8e8\uc5c8\uc73c\uba70, \uc9c8\uc758\uc751\ub2f5 \uc2dc\uac04\ub3c4 \uac00\uc84c\uc2b5\ub2c8\ub2e4. \ud5a5\ud6c4\uc5d0 \ub179\ud654 \uc601\uc0c1\uc744 \uacf5\uc720\ud574\ub4dc\ub9ac\uaca0\uc2b5\ub2c8\ub2e4!<\/p>\n<p><em>JetBrains \ud300<br \/>\n\u2014 The Drive to Develop<\/em><\/p>\n<p>\n<em>\uc774 \uac8c\uc2dc\ubb3c\uc740 <a href=\"https:\/\/blog.jetbrains.com\/author\/alexandra-charikova-jetbrains-com\/\">Alexandra Charikova<\/a>\uac00 \uc791\uc131\ud55c <a href=\"https:\/\/blog.jetbrains.com\/space\/2020\/09\/17\/space-automation-is-available-for-everyone\/\">Space Automation Is Available for Everyone<\/a>\uc744 \ubc88\uc5ed \ubc0f \uc77c\ubd80 \uc218\uc815\ud55c \uae00\uc785\ub2c8\ub2e4.<\/em><\/p>\n","protected":false},"author":964,"featured_media":75720,"comment_status":"closed","ping_status":"closed","template":"","categories":[],"tags":[],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/space\/82372"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/space"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/types\/space"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/users\/964"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/comments?post=82372"}],"version-history":[{"count":2,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/space\/82372\/revisions"}],"predecessor-version":[{"id":82374,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/space\/82372\/revisions\/82374"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media\/75720"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media?parent=82372"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/categories?post=82372"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/tags?post=82372"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/cross-post-tag?post=82372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}