평소에 인텔리제이에 IdeaVim을 켜서 쓰는 편이다. 그것만으로 충분히 좋은 IDE라고 생각했는데 최근에 김영한님의 스프링 강의를 들으면서 더 강력한 기능들을 많이 배울 수 있었다.
그래서 좋은거 나눠가지자는 생각으로 내가 쓰는 좋은 기능들을 함께 공유하고자 한다.
내 키보드는 capslock의 위치에 ctrl이 들어가있다. 이걸 감안하고 보길 바란다. 그리고 나는 Mac 유저다. 그러니 윈도우 유저들은 기능만 참고하고 위치는 알아서 쓰면 된다.
Keymap
Tool window
화면 전환과 관련된 키맵들이다.
run
현재 실행중인 어플리케이션의 출력물을 확인할 수 있다. 테스트코드를 돌리고 있었다면 테스트 코드, 어플리케이션 코드를 작성하고 있었다면 어플리케이션 코드를 볼 수 있다.
cmd + 4
git
깃 히스토리와 브랜치를 확인할 수 있다. 이 안에서 업데이트, 체크아웃, 리베이스를 할 수 있어서 유용하다.
cmd + 9
git commit
변경내용을 볼 수 있고 여기에서 커밋 메세지를 담아서 커밋할 수 있다. conflict가 나거나 unversion된 상태의 파일도 여기서 볼 수 있으니 유용하게 쓸 수 있다. Intellij의 깃 관리 시스템은 라인수준에서 깃을 관리 할 수 있게 해준다. 저 변경파일을 클릭하면 어떤 줄을 이번 커밋에 포함할지 말지를 결정할 수 있다. 깃 히스토리를 관리해주기에 유용하다.
단축키는
cmd + k
services
아래 사진 왼쪽을 보면 빈 표시에 웹 심볼이 자그마하게 들어가있는데 클릭하면 엔드포인트에 접근해서 테스트할 수 있다. 이 테스트 내용을 볼 수 있어서, e2e 테스트를 계속 작성할때 자주 썼었다.
cmd + 8
terminal
터미널은 항상 쓸일이 많다. 기본키는 opt + F12에 배치되어있었다. function key들이 mac 환경에 따라서 쓰는 방법이 너무 다르고, 키보드를 갈아끼울때마다 설정해줘야해서 불편했다. 그래서 cmd + 0에 넣어뒀다. Tool window류들이 보통 cmd + <number>가 기본키로 배치되어있고, cmd를 엄지로 누르는 습관상 오른손 배치에서 가장 편하게 쓸 수 있는 숫자는 0이었다. 내가 자주 쓰는 기능이기 때문에 기꺼이 0의 자리를 terminal에 양보했다.
cmd + 0
Choose Test
작성된 클래스, 메소드의 테스트코드를 찾을 수 있게 해주는 단축키이다. ToolWindow에 소속된 것은 아니지만 reference search를 잘 해주기 때문에 Toolwindowdml하위 항목으로 넣어두었다. 이 단축키의 추가 기능은 테스트코드가 없는 경우 테스트코드를 위한 껍데기를 자동완성해주는 점이다. 유용하다.
cmd + shift + t
FileChooser
프로젝트 툴 윈도우로 이동하게 해준다. 여기에서 단어를 입력하면 파일을 찾을 수 있다. 유용하다.
cmd+1
Setting
이건 맥 유저들에게 너무 친숙하지만 단축키 안쓰는 사람을 위해서 적는다.
cmd + ,(comma)
Project structure
뭔가 안돌아간다. 뭔가 파일을 못찾는다. 분명 파일이 여기 있는데 모듈로 인식을 못한다. 아니면 언어의 버전이 안맞는다! 하면 프로젝트 스트럭쳐를 열어라. 단축키는
cmd + ;
SearchEveryWhereWindow
가장 중요한 단축키이다. 모든 기능이 다 이 단축키를 통해서 접근 가능하다. 과장이 아니라 구현이 실제로 그러하다.
1. 기본적으로 파일의 검색이 가능하다.
2. intellij의 기능을 검색해서 실행할 수 있다. 예를 들어 현재 있는 라인의 문장을 수정하고 싶다면 저 검색창에 auto completion을 검색해보면 해당 기능을 사용할 수 있다. 혹은 존재를 모르는 기능이지만 있을 것 같아!라는 생각이 들면 저 검색창에 쳐보면 존재할 가능성이 높다. 예를 들어 fix라고 쳐보면 아래 결과처럼 다양한 결과를 찾을 수 있고, 이를 선택해서 바로 적용할 수 있다.
단축키는
Double shift
쉬프트를 두번 쳐라
LiveTemplate
라이브 템플릿은 상황에 따라서 축약어를 입력하면 사전에 작성해둔 코드를 작성할 수 있다.
말로는 단순하지만, 나는 이 기능을 통해서 정말 많은 시간을 아낄 수 있었음을 체감했다. 예를 들어, 문자열 내부에 포매팅된 시간을 넣으려고 할때, DateTimeUtil.toString(LocalDateTime.now())같은 코드가 반복적으로 나타날 수 있는데, Ambiguous 해서 잘 먹히지도 않는 자동완성을 패스하고 3~5개의 입력만으로 긴 입력을 뽑아낼 수 있음은 두말할 필요 없이 강력하다.
이 외에도 유용한 기능은 너무나도 많다. 그러나 시간이 없어서 여기서 마무리하겠다.
기회가 되면 2편을 쓰도록 하겠다.
'Web' 카테고리의 다른 글
트랜잭션후 메시지 전송을 보장하는 방법, How to guarantee to send events after Transaction (0) | 2024.04.22 |
---|---|
MSA에서 다른 서비스의 트랜잭션이 실패된다면 어떻게 해야할까?, Saga (0) | 2024.04.13 |
JWT, Json Web Token (0) | 2020.03.30 |