{"id":33858,"date":"2017-07-19T09:59:50","date_gmt":"2017-07-19T00:59:50","guid":{"rendered":"https:\/\/blog.jetbrains.com\/kr\/?p=152"},"modified":"2024-11-18T18:41:20","modified_gmt":"2024-11-18T17:41:20","slug":"rubymine-2017-2","status":"publish","type":"post","link":"https:\/\/blog.jetbrains.com\/ko\/2017\/07\/19\/rubymine-2017-2\/","title":{"rendered":"RubyMine 2017.2 \ucd9c\uc2dc"},"content":{"rendered":"RubyMine 2017.2 (build 172.3317.60)\u00a0\ubc84\uc804\uc774 \ucd9c\uc2dc\ub418\uc5c8\uc2b5\ub2c8\ub2e4.! \uc62c\ud574 \ub450 \ubc88\uc9f8 \uba54\uc774\uc800 \ubc84\uc804 \uc5c5\ub370\uc774\ud2b8\uc785\ub2c8\ub2e4.\u00a0\uacf5\uc2dd \ud648\ud398\uc774\uc9c0\ub97c \ud1b5\ud574 \ub354 \uc790\uc138\ud55c \ub0b4\uc6a9\uc744 \ud655\uc778\ud558\uace0 \ub2e4\uc6b4\ub85c\ub4dc \ubc1b\uc544 \ubcf4\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.\n\n\n\n\uc77c\ubc18\uc801\uc73c\ub85c, \ubaa8\ub4e0 \uc911\uc694\ud55c \uae30\ub2a5\uc740 \uc6b0\ub9ac\uc758 EAP(Early Access Program) \ubc84\uc804\uc5d0\uc11c \ubc1c\ud45c\ud558\uace0, \ube14\ub85c\uadf8 \ud3ec\uc2a4\ud2b8\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc788\uc744 \uac83\uc785\ub2c8\ub2e4. \uc0c8\ub85c\uc6cc\uc9c4 \uc0c1\uc138 \uae30\ub2a5\uc744 \uc0b4\ud3b4 \ubd05\ub2c8\ub2e4 :\nDocker Compose\n\n \tDocker \uc5d0 \ub300\ud55c \uc9c0\uc6d0\uacfc \uc5c5\uadf8\ub808\uc774\ub4dc \ub41c\u00a0Docker Compose\u00a0!\u00a0\uc9c0\uae08 Docker \ucee8\ud14c\uc774\ub108\uc5d0\uc11c code analysis, completion, \uadf8\ub9ac\uace0 \ub2e4\ub978 IDE \uae30\ub2a5\ub4e4\uc744 \ud65c\uc6a9\ud558\uc5ec \uc5ec\ub7ec\ubd84\uc758 \uc571\uc744 \uc2e4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uad00\ub828 \ube14\ub85c\uadf8 \ud3ec\uc2a4\ud2b8\ub97c\u00a0\ucc38\uace0\ud558\uc5ec \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c Docker Compose \ub97c \uad6c\uc131\ud558\ub294 \ubc29\ubc95\uc744 \ubc30\uc6b8 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \t\uc774\ubc88 \ub9b4\ub9ac\uc988\ub97c \uc2e4\ud589\ud558\uba74, \uc5ec\ub7ec\ubd84\ub4e4\uc740 \ub610\ud55c RubyMine debugger \ub97c \uc0ac\uc6a9\ud558\uc5ec Docker Compose \uac00 \uc2e4\ud589\ub418\uace0 \uc788\ub294 railes \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub514\ubc84\uadf8 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\u00a0\uc774 \ud3ec\uc2a4\ud2b8\ub97c\u00a0\ud1b5\ud574 \ub354 \uc54c\uc544\ubcf4\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.\n\nRuboCop Quick-fixes\n\n \t\uc774 \ub9b4\ub9ac\uc988\ub294 auto-correct found code smells\u00a0\uae30\ub2a5\uacfc \ud568\uaed8 \uc774\uc804\uc5d0 \ucd94\uac00\ub41c\u00a0RuboCop \uc9c0\uc6d0\uc744 \ub354 \uac15\ud654\ud558\uc600\uc2b5\ub2c8\ub2e4. \uc774\u00a0\ube14\ub85c\uadf8\ub97c\u00a0\ub354 \uc77d\uc5b4\uc8fc\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.\n\nBreadcrumbs\n\n \tbreadcrumbs for Ruby \uc758 Structure elements \uac00 \ucd94\uac00 \ub418\uc5c8\uc2b5\ub2c8\ub2e4. :\u00a0\ubaa8\ub4c8, \ud074\ub798\uc2a4, \uba54\uc18c\ub4dc, \ube14\ub85d, RSpec \uadf8\ub8f9 \uc0ac\uc6a9\uc790 \uc815\uc758 \uc774\ub984.\u00a0\uc790\uc138\ud788 \ubcf4\uae30\u00a0.\n \t\ub610\ud55c breadcrumbs for JavaScript \ucd94\uac00, \uadf8\ub9ac\uace0 \ub514\uc790\uc778\uacfc \uc77c\uad00\uc131\uc774 \uc788\ub3c4\ub85d XML \ubc0f HTML \uc744 \ub2e4\uc2dc \ub514\uc790\uc778.\n\n\uc790\ubc14 \uc2a4\ud06c\ub9bd\ud2b8\n\n \t\uc0c8\ub85c\uc6cc\uc9c4\u00a0Move symbol \ub9ac\ud329\ud1a0\ub9c1\uc740\u00a0\uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8\ub098 \ud0c0\uc785\uc2a4\ud06c\ub9bd\ud2b8 \ud30c\uc77c \uc0ac\uc774\uc5d0\uc11c ES6\ubaa8\ub4c8\uc5d0\uc11c \ud074\ub798\uc2a4\ub098 \uc804\uc5ed \ud568\uc218\ub098 \ubcc0\uc218 \uc774\ub3d9\ud560 \uc218 \uc788\ub3c4\ub85d \ud569\ub2c8\ub2e4.\n \t\uc6f9\ud329 \ubaa8\ub4c8 \ud574\uc0c1\ub3c4\ub97c \ud1b5\ud574\u00a0\uc790\ubc14 \uc2a4\ud06c\ub9bd\ud2b8 \ud30c\uc77c\ub4e4\uc5d0\uc11c \ucf54\ub529 \uc9c0\uc6d0\n \t\uc0c8\ub85c\uc6b4\u00a0Arrangement \uc640\u00a0Blank lines \ucf54\ub4dc \uc2a4\ud0c0\uc77c \uc635\uc158\uc744 \uc0ac\uc6a9\ud558\uba74, \ud544\ub4dc \ubc0f \uba54\uc18c\ub4dc\uc640 \uac19\uc740 \ub2e4\ub978 \ucf54\ub4dc\uc758 \ube14\ub85d\ub4e4\uc744 \ub9de\ucd94\uace0 \ubd84\ub9ac\ud558\ub294 \ubc29\ubc95\uc744 \uad6c\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \t\uc774\uc81c IDE\uc758 \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8 \ucf54\ub4dc \uc2a4\ud0c0\uc77c \uc124\uc815\uc5d0\uc11c \uba87\uba87 ESLint code style rules\u00a0\ub97c \uac00\uc838\uc624\uae30 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \t\uc0dd\uc131\ub41c SASS\uacfc SCSS \uc120\ud0dd\uae30\uc758 \uacbd\uc6b0,\u00a0\uc774\uc81c HTML \ud30c\uc77c\uc5d0\uc11c code completion\u00a0\ud560 \uc218 \uc788\uc73c\uba70, definition \uc73c\ub85c \uc774\ub3d9\ud569\ub2c8\ub2e4\u00a0.\n\nVersion Control\n\n \tGit Log \uc5d0\ub294\u00a0\ub450 \uac00\uc9c0 \uc0c8\ub85c\uc6b4 \uae30\ub2a5\uc774 \uc788\uc2b5\ub2c8\ub2e4 :\u00a0Revert \ucee4\ubc0b(\ub354\ubcf4\uae30), \uc5b4\ub5a4 \ub4f1\ub85d \ubcc0\uacbd \uc0ac\ud56d\uc744 \uc81c\uac70\ud560 \uc218 \uc788\ub3c4\ub85d \ud568,\u00a0Reword\u00a0(\ub354\ubcf4\uae30) - \ub85c\uceec\u00a0\ucee4\ubc0b\uc744 \ubc14\uafc0 \uc218 \uc788\ub294 \ud3b8\ub9ac\ud55c \ubc29\ubc95\uc785\ub2c8\ub2e4.\n \t\uc0c8\ub85c\uc6b4\u00a0Commit dialog\u00a0\ub294 \uc81c\ubaa9\uacfc \ubcf8\ubb38 \uc0ac\uc774\uc5d0 \ube48 \uc904\uc744 \ucd94\uac00\ud558\uac70\ub098 \uc81c\uac70\ud558\uace0 \ucd5c\ub300 \uae38\uc774\ub97c \uc124\uc815\ud558\ub294 \ubc29\ubc95\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. IDE\ub294 \uc774\uc81c Commit Message \ub0b4\ubd80\uc758 \ube60\ub978 \uc218\uc815\uacfc Reformat \uc791\uc5c5\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.\n \t\uc0c8\ub86d\uac8c \ub514\uc790\uc778 \ub41c \u00a0Shelf \ub294\u00a0Preview panel \uc774 \uc7a5\ucc29 \ub418\uc5c8\uc73c\uba70, \ub85c\uceec \ubc84\uc804\uc5d0\uc11c\u00a0\"shelved\" \ud30c\uc77c \ube44\uad50\u00a0\ud558\ub294 \uc0c8\ub85c\uc6b4 \uae30\ub2a5\uc774 \uc788\uc2b5\ub2c8\ub2e4.\n\nUser Interface\n\n \tFind in Path\u00a0\uc5d0 \uc788\ub294 Preview \ud328\ub110\uc5d0\ub294 \uc774\uc81c Gutter \uac00 \ucd94\uac00\ub429\ub2c8\ub2e4. - \u00a0\uc5d0\ub514\ud130\uc758 \uc67c\ucabd \ud328\ub110 - \ub77c\uc778 \ub118\ubc84, \ub124\ube44\uac8c\uc774\uc158 \uc544\uc774\ucf58, \ub85c\uceec \ubcc0\uacbd \ub9c8\ucee4\uac00 \uc788\uc2b5\ub2c8\ub2e4.\n \t\ub610\ud55c Find in Path \uac80\uc0c9 \uacb0\uacfc\uc5d0\uc11c \uc911\ubcf5 \ud56d\ubaa9\uc744 \uc81c\uc678\ud569\ub2c8\ub2e4.\n\n\uae30\ud0c0 \uac1c\uc120\n\n \t\ub370\uc774\ud130\ubca0\uc774\uc2a4\u00a0\uac1c\uc120.\n \tDocker \ub85c \ub514\ubc84\uae45.\n \t\uc2a4\ud06c\ub798\uce58 \ud30c\uc77c\uc744 \uac80\uc0ac\ud558\uae30 \uc704\ud574 \ucd94\uac00\ub41c\u00a0RuboCop.\n \t\uc911\uc694\ud55c \uc131\ub2a5\u00a0\ubb38\uc81c \ud574\uacb0.\n \t\ub2e4\ub978 \ubc30\ud3ec \ubc84\uc804\ub4e4\uc5d0\uc11c \uc544\uc774\ud15c\uc744 \ube44\uad50\ud560 \uc218 \uc788\ub294 \uae30\ub2a5 \ucd94\uac00\n \t\ud328\uce58\ub294\u00a0\uc774\uc81c \ud074\ub9bd \ubcf4\ub4dc\uc5d0\uc11c \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n\nWhat\u2019s new page \uc5d0\uc11c\u00a0RubyMine 2017.2 \ub2e4\uc6b4\ub85c\ub4dc\u00a0\ud558\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.\n\n\uc804\uccb4 \uac1c\uc120 \ubaa9\ub85d\uc740\u00a0\ub9b4\ub9ac\uc988 \ub178\ud2b8\ub97c\u00a0\u00a0\ucc38\uace0\ud558\uc5ec \uc8fc\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.\n\n\ud639\uc2dc \uc5b4\ub5a4 \ubb38\uc81c\uc5d0 \ub2f9\uba74\ud55c\ub2e4\uba74, \uc9c0\uc6d0 \ud300\uc5d0 \ubb38\uc758\ud558\uac70\ub098 \uc774\uc288 \ud2b8\ub798\ucee4\u00a0\ub97c \ud1b5\ud574 \uc5b8\uc81c\ub4e0\uc9c0 \ubb38\uc758\uc8fc\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.","protected":false},"excerpt":{"rendered":"RubyMine 2017.2 (build 172.3317.60)\u00a0\ubc84\uc804\uc774 \ucd9c\uc2dc\ub418\uc5c8\uc2b5\ub2c8\ub2e4.! \uc62c\ud574 \ub450 \ubc88\uc9f8 \uba54\uc774\uc800 \ubc84\uc804 \uc5c5\ub370\uc774\ud2b8\uc785\ub2c8\ub2e4.\u00a0\uacf5\uc2dd \ud648\ud398\uc774\uc9c0\ub97c \ud1b5\ud574 \ub354 \uc790\uc138\ud55c \ub0b4\uc6a9\uc744 \ud655\uc778\ud558\uace0 \ub2e4\uc6b4\ub85c\ub4dc \ubc1b\uc544 \ubcf4\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.\n\n\n\n\uc77c\ubc18\uc801\uc73c\ub85c, \ubaa8\ub4e0 \uc911\uc694\ud55c \uae30\ub2a5\uc740 \uc6b0\ub9ac\uc758 EAP(Early Access Program) \ubc84\uc804\uc5d0\uc11c \ubc1c\ud45c\ud558\uace0, \ube14\ub85c\uadf8 \ud3ec\uc2a4\ud2b8\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc788\uc744 \uac83","protected":false},"author":{"name":"JetBrains","link":"https:\/\/blog.jetbrains.com\/ko\/author\/jetbrains"},"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[4156],"tags":[8636,5686],"cross-post-tag":[],"acf":[],"featured_image":null,"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/posts\/33858"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/comments?post=33858"}],"version-history":[{"count":1,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/posts\/33858\/revisions"}],"predecessor-version":[{"id":528316,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/posts\/33858\/revisions\/528316"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/users\/0"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media?parent=33858"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/categories?post=33858"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/tags?post=33858"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/cross-post-tag?post=33858"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}