RubyMine 2019.2에서는 Rails 6 및 Ruby 2.7을 새롭게 지원하며 YARD 지원 및 디버거를 향상하고 다양한 플랫폼 개선 사항을 도입했습니다. 아래에서 모든 새로운 기능을 확인하고 오늘 업데이트하세요. 문제가 있을 경우, JetBrains에 보고하고 RubyMine Slack에 가입해 주세요.
저희 디버거는 TracePoint :line을 사용하여 라인별로 프로그램 실행을 추적했습니다. v2019.2에서는 MRI에 대한 기본 확장 프로그램이 도입되어 디버거가 어느 코드 조각에서 실행을 일시 중단할지 선택할 수 있습니다. 이에 따라 나머지 코드에서 오버헤드가 발생하지 않게 되어 디버거의 속도가 크게 향상되었으며 다음과 같은 신규 기능이 추가되었습니다.
이전에는 디버그 세션에서 수많은 메소드가 포함된 한 줄에 도달하면 RubyMine은 그 줄의 첫 번째 메소드로만 스텝인투할 수 있었습니다. 새로 추가된 Smart Step Into(스마트 스텝인투)를 사용하면 그러한 제한을 넘어 같은 줄에 있는 특정 메소드나 블록을 스텝인투하거나 검사할 수 있습니다.
새 버전을 사용하면 줄뿐만 아니라 블록에서도 중단점을 설정할 수 있습니다. 왼쪽 여백을 클릭하여 블록이 있는 줄에 중단점을 설정하면 RubyMine에서 줄, 블록 또는 둘 다 중 어디에 중단점을 설정할 것인지 묻습니다.
RubyMine에서 디버그하기를 읽고 RubyMine에서 Ruby 및 Rails 스크립트를 디버그하는 방법을 자세히 알아보세요.

RubyMine 2019.2는 Ruby 2.7의 첫 테스트 버전에서 실험적 기능으로 소개된 Pattern Matching(패턴 일치)을 지원합니다. IDE는 새로운 구문을 식별하여 해당 항목으로 이동하고 사용 위치를 검색하고 객체 이름을 변경할 수 있도록 돕습니다.
새로운 버전의 RubyMine은 숫자 지정 매개변수의 구문을 인식하고 그 사용 위치를 표시/검색합니다. 이는 Ruby 2.7의 또 다른 실험적 기능으로, 블록에서 블록 변수를 정의하는 대신 매개변수 숫자를 기본 매개변수로 사용해 값을 지정할 수 있도록 합니다.
RubyMine 2019.2는 Rails 6에 포함된 Action Mailbox를 지원합니다. IDE는 경로 메소드 및 콜백의 자동 완성을 제안하고 구현된 구문과 사용 위치로 이동할 수 있습니다.
또한 사용자가 ApplicationMailbox의 route 호출과 메일함의 process 메소드 추가를 잊은 경우 이를 알려주는 몇 가지 검사 기능도 추가되었습니다. 후자는 빠른 수정도 제안합니다.
자세한 GoRails 에피소드에서 Action Mailbox를 사용하는 방법을 자세히 알아보세요.

ActiveRecord::Enum에 적합한 코드 분석 지원이 추가되었습니다. 이 지원에는 열거형 이름 및 메소드의 코드 자동 완성, 탐색, 사용 위치 검색이 포함됩니다. Rails 6에 도입된 열거형의 네거티브 스코프도 지원됩니다.
YARD에 대한 지원이 점차 개선됨에 따라 YARD 태그를 만들고 관리하며 YARD 주석을 기반으로 RubyMine에서 향상된 코드 자동 완성 기능을 이용할 수 있습니다. 새 버전에서는 @overload 및 @yieldparam 태그에 적절한 유형 주석 및 검사가 추가되었습니다.
RubyMine의 YARD 지원을 읽고 YARD 관련 RubyMine 기능과 새로운 개선 사항의 개요를 자세히 확인해 보세요.
2019.2 버전에서는 팩토리, 시퀀스, 트레이트의 이름을 변경할 수 있습니다(Shift+F6). IDE는 해당 항목의 정의를 검색하여 항목 및 모든 사용 위치의 이름을 비롯해 팩토리 이름과 일치하는 파일 이름의 변경을 제안합니다.
또한 File Structure(파일 구조) 뷰(Cmd/Alt+F7) 및 팝업(Cmd/Ctrl+F12)에 팩토리, 시퀀스, 트레이트가 추가되었으며 해당 항목을 안전하게 삭제할 수 있는 기능(Refactor(리팩토링) | Safe Delete(안전하게 삭제))도 추가되었습니다.
새로운 Propagate to destructuring(구조 분해로 전달) 인텐션(Alt+Enter)을 사용하면, 추가 변수를 또 다른 구조 분해로 대체할 수 있습니다. 구조 분해를 완전히 제거하려면 Replace destructuring with property or index access(구조 분해를 속성 또는 색인 액세스로 대체)라는 인텐션 액션을 사용하세요.
이제 JavaScript 또는 TypeScript 파일에서 심볼의 이름을 변경할 때 IDE가 동적인 사용 위치를 하나로 그룹 지정하고, 기본적으로 리팩토링에서 제외합니다. 이를 통해 리팩토링이 더 정확해져서 Refactoring Preview(리팩토링 미리보기) 도구 창에서 정확하게 어떤 항목의 이름이 변경되어야 하는지 더 효과적으로 제어할 수 있습니다.
이제 Vuetify, BootstrapVue, Quasar 및 기타 Vue 구성 요소 라이브러리의 구성 요소와 속성에 대한 코드 완성이 더 정확해졌습니다. 이는 IDE에서 이 라이브러리로 작업할 수 있도록 새로 적용한 접근 방식을 통해 구현되었습니다.
새로운 Duplicate code fragment(중복 코드 부분) 검사는 코드를 빠르게 검사하여 에디터에서 중복 가능성이 있는 항목을 즉시 강조 표시합니다. 이 기능은 JavaScript, TypeScript, CSS, Sass, SCSS 및 Less에서 작동합니다.
RubyMine 2019.2에서 제공하는 JavaScript의 개선 사항을 자세히 알아보려면 WebStorm의 새로운 기능을 참조하세요.
2019.2 버전에서는 여러 개의 .editorconfig 파일을 추가하여 프로젝트 내 다양한 부분에서 서로 다른 코드 스타일을 유지할 수 있습니다. 이제 오랫동안 지원되어온 표준 EditorConfig 옵션뿐만 아니라 사용할 수 있는 모든 IDE 코드 스타일 옵션을 지원하는 IDE별 속성을 사용할 수 있습니다.
새로운 버전에서는 셸 스크립트에 대한 완벽한 지원이 추가되었습니다. 여기에는 .sh 및 .bash 파일용 코드 완성, 빠른 문서, 텍스트 이름 변경 지원과 셸 스크립트용 실행 구성 지원이 포함됩니다. 또한 IDE가 ShellCheck 및 shfmt와 통합되어 각각 린팅 및 코드 서식 지정을 지원합니다.
.gitignore 파일에서 파일과 폴더에 코드 완성 제안이 제공됩니다.
이름을 Cmd/Ctrl-클릭하면 Project(프로젝트) 도구 창에서 파일 또는 폴더로 이동할 수 있습니다. 또한 Project 뷰 및 Local Changes(로컬 변경 내용)에서 대상 파일을 마우스 오른쪽 버튼으로 클릭하여 Add to .gitignore(.gitignore에 추가)를 선택하면 .gitignore로 파일을 빠르게 추가할 수 있습니다.
이제 데이터의 정확한 위치를 모르더라도 데이터베이스에서 데이터를 검색할 수 있습니다. 검색할 데이터 소스를 마우스 오른쪽 버튼으로 클릭하고 Full-text Search(전체 텍스트 검색, Cmd+Alt+Shift+F)를 선택하세요. 쿼리 결과가 필터링되어 해당 데이터가 있는 문자열만 표시됩니다.
RubyMine 2019.2에서 제공하는 기타 데이터베이스의 개선 사항을 자세히 알아보려면 DataGrip의 새로운 기능을 참조하세요.
docker-compose exec로 Docker를 새롭게 활용RubyMine에 docker-compose exec
지원이 추가되었습니다. 즉, 이 명령어를 사용하면 전보다 빠르게 애플리케이션을 실행 및 디버그하고, 젬을 설치하고, 기타 다른 개발 작업을 수행할 수 있습니다.
자세한 내용은 RubyMine에서 Docker/Docker Compose를 사용하는 방법을 참조하세요.
Experimental features(실험적 기능)에서 ruby.docker.internal.via.exec를 사용하면 Docker SDK를 작업할 때 RubyMine의 속도가 향상됩니다.
이제 Docker 이미지를 다시 빌드하지 않고도 젬을 추가하고, Rake 작업, Rails 명령어 등 환경을 업데이트하는 작업을 실행할 수 있습니다.
새로운 Recent Locations(최근 위치) 팝업을 통해 새로운 방식으로 코드베이스를 탐색할 수 있습니다. 내용은 기억하는데 어디에서 보았는지 생각이 나지 않는 코드가 있을 경우, 이 팝업에서 해당 코드를 찾을 수 있습니다. 입력을 시작해서 결과를 필터링하고 필요한 코드로 점프하세요.
자세한 사항은 RubyMine 탐색: 최근 위치 팝업을 참조하세요.
RubyMine 2019.1은 rbspy를 통합하고 기본 프로파일러를 제공하여 애플리케이션이나 테스트를 느리게 하는 코드 부분을 발견하는 데 도움이 됩니다.
자세한 튜토리얼은 RubyMine에서 rbspy를 사용하여 Ruby 및 Rails 앱 프로파일링하기를 참조하세요.
실행 중인 애플리케이션에 프로파일러를 연결(Find action(액션 검색) / Attach Profiler to Process(프로파일러를 프로세스에 연결))하여 실시간으로 검사할 수 있습니다.

팩토리를 추가할 때 RubyMine이 속성과 값(가능한 경우)을 자동으로 완성합니다. 예를 들어, Rails 모델 팩토리의 경우 해당 필드의 내용과 관련 항목까지 자동으로 완성됩니다. 물론 사용자는 그러한 객체의 정의 및 사용 위치 사이를 탐색할 수 있습니다.
테스트를 작성할 때 create, build, build_stubbed와 같은 팩토리 생성 메소드의 정의를 자동으로 완성하고 탐색할 수 있습니다.
시퀀스, 트레이트, 별칭 등 Factory Bot의 다른 훌륭한 기능들도 완벽히 지원됩니다.


또한 Related files(관련 파일) 팝업(Navigate(탐색) / Related symbol(관련 심볼))에 팩토리가 추가되고, 부분적 팩토리 선언이 있을 경우 해당 위치로 이동할 수 있도록 여백이 추가되었습니다.
새로운 Call Hierarchy(호출 계층 구조) 액션을 사용하면 검사 중인 메소드를 사용하는 메소드('호출자'), 해당 호출자를 호출하는 메소드 등 필요에 따라 계층 구조를 상세하게 검토할 수 있습니다.
자세한 내용은 이 블로그 게시물을 참조하세요.
RubyMine 2019.1에 TruffleRuby 지원이 추가되었습니다. 현재 Ruby SDK를 TruffleRuby로 전환하려면 인터프리터가 설치되어 있는지 확인한 후, Ruby SDK 설정에서 선택하세요.
또한, 이번 릴리스에서는 Ruby 버전 관리자와 관련된 수많은 문제가 수정되었습니다.
PhpStorm은 이제 .vue 파일의 모든 TypeScript 코드에 대해 고유한 TypeScript 지원을 제공하고 TypeScript 언어 서비스를 사용합니다. 따라서 사용자는 이제 더 정확한 유형 검사와 유형 정보를 얻을 수 있고, 해당 서비스가 제공하는 빠른 수정을 사용할 수 있으며, TypeScript 도구 창에서 현재 파일의 모든 TypeScript 오류를 확인할 수 있습니다.
Jest, Karma, Mocha 또는 Protractor로 테스트를 실행했을 때 일부 테스트가 실패한 경우, 문제가 발생한 위치를 에디터에서 바로 확인할 수 있습니다. IDE가 스택 추적 정보를 사용하여 실패한 코드를 강조 표시하면, 해당 코드를 마우스로 가리켜서 테스트 러너의 오류 메시지를 확인하고 테스트 디버그를 즉시 시작할 수 있습니다.
JavaScript 및 Node.js 디버그 도구 창에서 새롭게 개선된 대화형 디버거 콘솔을 만나보세요. 이제 객체는 트리 뷰를 사용해 표시되고, CSS를 사용해 로그 메시지의 스타일을 지정할 수 있으며, console.group() 및 console.groupEnd()를 사용해 그룹화할 수 있습니다. 또한, 모든 종류의 로그 메시지를 필터링할 수 있습니다.
새 스크립트를 package.json 파일에 추가하면, 설치된 패키지에서 제공하는 이용 가능한 명령어가 제안됩니다. node를 입력하면 IDE가 폴더 및 파일 이름을 제안합니다. 그리고 npm run을 입력하면 현재 파일에 정의된 작업 목록이 표시됩니다.
RubyMine 2019.1에서 제공하는 JavaScript의 개선 사항을 자세히 알아보려면 WebStorm의 새로운 기능을 참조하세요.
CSS 속성, HTML 태그 및 속성에 관한 문서(F1)에 MDN의 브라우저 지원에 대한 최신 설명 및 정보와 해당 MDN 문서 전문의 링크가 표시됩니다.
RubyMine에서 다양한 색상의 새로운 UI 테마를 플러그인을 통해 사용할 수 있습니다. 짙은 보라색, 회색, 밝은 청록색 테마 중에서 선택하거나 사용자 지정 테마를 생성해 보세요.
DataGrip 팀 덕분에 RubyMine의 데이터베이스 도구가 멋지게 개선되었습니다.
RubyMine에서 이제 Rails 범위를 더 자세히 파악합니다. 예를 들어 범위에 연관 객체를 추가할 때 RubyMine에서 이용 가능한 파인더 메소드를 제안합니다. 또한 연결된 범위에 사용할 수 있는 코드 자동 완성 및 탐색 기능도 제공됩니다.
RubyMine에서 구조체가 완벽하게 지원됩니다. 이제 여타의 Ruby 클래스 및 해당 인스턴스에서 작업하는 방식과 동일하게 구조체 클래스 객체를 자동 완성하고 탐색하고 리팩토링할 수 있습니다.
Nil dereference(Nil 역참조) 검사에서는 값이 nil일 수 있는 변수의 메소드를 호출하는 경우처럼 현재 컨텍스트 내 코드의 잠재적인 nil 오류를 검사합니다.
새로운 I18n 대화상자를 이용해 모든 사전의 번역을 한 번에 생성할 수 있습니다. 간단히 예전처럼 캐럿을 문자열 위에 배치하고 Alt+Enter를 누른 후 번역하도록 선택하세요. 번역이 생성된 후에 Cmd/Ctrl을 누른 상태에서 생성된 키를 클릭하면 기존 번역으로 이동할 수 있습니다.
또한 새로운 RubyMine 버전에서는 네임스페이스화된 키의 번역을 에디터에서 바로 생성할 수 있으므로 해당 키 및 지연 색인의 번역을 추가 작업 없이 만들 수 있습니다.
RubyMine에서 I18n 키 대신 실제 번역을 표시할 수 있습니다. 컨트롤러 또는 뷰 파일의 어떤 키에서든 Cmd/Ctrl을 누르기만 하세요. 번역 미리보기에 어떤 사전을 사용할지 선택할 수도 있습니다.
v2018.3에 적용된 기타 국제화 개선 사항을 알아보려면 RubyMine의 I18n 기능을 읽어보세요.
새로운 Extract Parameter(매개변수 추출) 대화상자(Refactor(리팩토링) | Refactor this(다음을 리팩토링) | Extract Parameter(매개변수 추출))를 사용하면 인수를 추출할 수 있을 뿐만 아니라 인수에 기본값을 제공하거나 인수를 선택 사항으로 만들거나 블록으로서 전달할 수 있습니다.
Inline(인라인화) 리팩토링이 개선되어 과도한 메소드 및 변수를 더 안전하게 없앨 수 있습니다. 특히 문자열 보간을 사용하여 인수 및 변수를 가진 메소드를 인라인화하는 기능이 훨씬 더 강력해졌습니다.
드디어 문자열의 일부를 변수 및 상수로 추출하는 매우 편리한 기능이 추가되었습니다.
RubyMine 리팩토링: 개요 및 개선 사항에서 리팩토링 옵션에 대한 자세한 내용을 읽어 보세요.
새로운 인텐션 액션을 사용하면 코드의 가독성을 높일 수 있습니다. 예를 들어 드 모르간 법칙 액션을 사용하여 지저분한 무효화를 간소화하고 블록 호출을 메소드로 추출할 수 있습니다. 캐럿을 코드에 배치하고 Alt+Enter를 눌러 적절한 빠른 수정을 적용하기만 하면 됩니다.
RubyMine의 인텐션 액션에서 기타 새로운 인텐션에 대해 읽어 보세요.
또한 RubyMine 2018.3에는 각 테스트 메소드에 편리한 여백이 추가되었습니다. 이러한 여백은 파일에서 실행 가능한 모든 특정 테스트를 표시하는 시각적 기준점의 역할을 합니다. 또한 컨텍스트 메뉴보다 빠르게 테스트를 실행할 수 있는 방법도 제공합니다.
기타 편리한 테스트 기능에 대한 자세한 내용은 RubyMine에서 테스트 실행을 읽어 보세요.
이제 RubyMine 내에서 바로 GitHub pull 요청을 볼 수 있습니다. VCS | Git | View Pull Requests(pull 요청 보기)로 이동하여 pull 요청의 설명, 라벨, 담당자, 실제 변경 내용을 확인하세요.
이밖에도 프로젝트 업데이트, 변경 내용 커밋, Diff 뷰, 충돌 해결 방법 등 Git 통합에서 사용하던 익숙한 모든 기능을 이제 Git 하위 모듈에서 사용할 수 있습니다.
새로운 Darcula 테마로 요란한 색상을 없애 눈을 편안하게 만들고 JetBrains IDE의 다른 프로그래밍 언어용으로 설계된 유사한 구성에 맞게 더 효과적으로 조정할 수 있습니다.
이전 Darcula 테마도 계속 제공됩니다. 이전 버전을 계속 사용하려는 경우, Preferences(기본 설정)/Settings(설정) | Editor(에디터) | Color Scheme(색상 구성) | Ruby로 이동하여 톱니바퀴 아이콘을 클릭한 다음 Transform current scheme to Darcula 2018.2(현재 구성을 Darcula 2018.2로 전환)를 선택하세요.
Search Everywhere(전체 검색) 대화상자(Shift+Shift)도 더욱 편리해지고 새로워졌습니다. Go to Class(클래스로 이동), Go to File(파일로 이동), Go to Symbol(심볼로 이동), Go to Action(액션으로 이동) 등의 기타 모든 대화상자도 더 쉽게 사용할 수 있습니다. 간단히 Tab을 눌러 검색 유형을 전환할 수도 있습니다.
Plugins(플러그인) 섹션(Preferences(기본 설정)/Settings(설정) | Plugins(플러그인))이 업데이트되어 플로그인 관리, 설치, 제거, 업데이트 작업이 수월해졌습니다. 예를 들어 이제 플러그인을 태그별로 검색하고 검색 결과를 다운로드 횟수, 이름, 평점, 추천수 또는 업데이트별로 분류할 수 있습니다.
Angular 작업 시 변수, 파이프, 비동기 파이프, 템플릿 참조 변수에서 향상된 코드 자동 완성 및 탐색 기능을 활용해 보세요.
이제 React 앱에서 코드 완성 기능이 모든 구성 요소의 수명 주기 메소드를 제안합니다. Unresolved variable(해결되지 않은 변수) 검사에서는 잠재적으로 정의되지 않은 구성 요소를 경고합니다.
이제 RubyMine은 JavaScript 파일에서 프로젝트에 정의된 심볼뿐만 아니라 프로젝트의 종속 요소에 있는 심볼에도 import 문을 자동으로 추가할 수 있습니다. 이 기능은 라이브러리에 ES 모듈로 작성된 소스 또는 TypeScript 유형 정의 파일이 있으면 사용할 수 있습니다.
새로운 Extract ruleset(규칙 집합 추출) 액션(Alt-Enter)을 이용하면 CSS 선언을 어느 규칙 집합에서 더 구체적인 새 규칙 집합으로 빠르게 추출할 수 있습니다.
CSS 및 해당 전처리기의 코드 스타일에 빈 줄 사용을 위한 구성이 추가되었습니다. 또한 블록 내에서 CSS 속성을 알파벳 철자 순서 또는 사용자 지정 순서로 분류할 수 있습니다.
RubyMine 2018.3에서 제공하는 JavaScript의 개선 사항을 자세히 알아보려면 WebStorm의 새로운 기능을 참조하세요.
새로운 Introduce reference 액션을 사용하면 인라인화된 링크의 참조를 생성할 수 있습니다. RubyMine은 파일 내 모든 링크 중복을 찾아내고 이를 새로 생성된 참조로 대체할 것을 제안합니다.
그 외에 이제 텍스트에 취소선을 추가하고 헤더 크기를 변경할 수 있습니다. 이러한 새로운 액션은 도구 모음에서 찾을 수 있습니다.