intellij 18

깃털보다 가벼운 인텔리J 아이디어(IntelliJ Idea) 팁 13 - JSON Fragment편집

진짜로 백만년 만에 Intellij관련 포스팅입니다. 그 동안 너무 게으르게 지냈던거 같네요. 앞서 포스팅에서 확인하실 수 있듯이, 회사에서는 Eclipse를 사용해야 하는 관계로 예전처럼 인텔리J를 자주 사용못하게 되서 포스팅 기회가 줄어들 수 밖에 없는건 어쩔 수 없는 듯 싶습니다. 그래도 개인적으로 하는 작업은 IntelliJ를 사용할 예정이니, 예전보다는 자주는 아니더라도 최대한 많은 포스팅을 하도록 해야겠습니다. 오늘 공유할 팁은 JSON편집과 관련된 내용입니다. 모두들 아시겠지만, JSON을 단순 문자열로서 편집하는건 보통 귀찮은 일이 아닙니다.이걸 쉽게 할 수 있다면 얼마나 좋을까 하는 생각을 간혹 합니다. 인텔리J에서는 이를 JSON fragment edit기능으로 제공해주고 있습니다. 우..

깃털보다 가벼운 인텔리J 아이디어(IntelliJ Idea) 팁 11 - Method Extract

참으로 오래간만입니다.그 동안 무진장 바빠서 포스팅을 못했던건 아니었고, 사실 그냥 귀찮았었습니다. ㅎㅎ 오늘은 IntelliJ Idea에서 제공하는 기능 중 Method Extract기능에 대해서 알아보도록 하겠습니다.이 기능 역시 Refactoring기능 중 하나로서 어쩌면 상당히 유용하다고 볼 수 있는 기능입니다. 사용방법을 개략적으로 정리하자면, 아래와 같습니다.1. 추출한 대상이 되는 코드 부분을 드래그로 선택2. Refactor > Extract > Method 메뉴를 선택하거나 또는 마우스 오른쪽 context 메뉴를 통해서 선택3. 옵션창에서 생성될 메소드의 접근 제한자 및 이름을 지정, 그리고 필요시 추가 옵션 선택 우선 기본적인 방법을 알아보도록 하겠습니다. 아래와 같이 기본 코드가 있..

깃털보다 가벼운 인텔리J 아이디어(IntelliJ Idea) 팁 10 - File & Code Template

오늘도 가볍게, 진심 큰 도움이 안되는 팁 하나 공유하고자 합니다. 어찌보면 인텔리J만의 독특한 기능도 아니고, 거의 모든 IDE에 포함되어 있는 기능이기도 한, File Template기능에 대해서 소개하고자 합니다. 어쩌면 진심 제목에 충실한 내용이라 할 수 있겠습니다. File Template : 특정 파일을 새로 생성할 때 기본적으로 포함되어질 구성을 만들고, 그 구성이 파일 생성시마다 적용되도록 하는 기능입니다. 설정화면 윈도우 & 리눅스 : File > Settings > File and Code Templates맥 : Preferences > File and Code Templates 설정 화면은 아래와 같습니다. 설정화면에는 총 4개의 탭이 존재합니다. Files : 파일 템플릿의 종류를 ..

깃털보다 가벼운 인텔리J 아이디어(IntelliJ Idea) 팁 9 - Show Values Inline

간단하지만 아주 유용한 기능 하나 소개하고자 합니다. 디버깅시에 각 함수의 반환값 및 변수의 값을 코드상에서 바로 확인할 수 있도록 해주는 기능입니다. 사실 그다지 좋은 방법은 아니지만, 코드상에서 특정 변수값에 대해서 확인하고자 할 때, 보통 log.debug와 같이 logging framework를 통해서 그 값을 콘솔에서 찍어보는 방법을 많이 쓸꺼라(??) 생각이 듭니다. 예를 들어, 위 이미지에서 처럼 특정 객체의 값 구성을 확인해볼 때, 로그를 찍어볼 수 있습니다.그런데, 굳이 collection객체의 개수라던지 primitive 변수들의 값들을 확인하기 위해서 일일히 log.debug를 사용하는건 어찌보면 낭비가 아닐까 합니다. 그런 수고를 조금이나마 덜 수 있는 방법을 IntelliJ에서는 ..

깃털보다 가벼운 인텔리J 아이디어(IntelliJ Idea) 팁 8

오늘도 가볍게 Extract Interface라는 리펙토링 관련 기능에 대해서 알아보도록 하겠습니다. 우선 아래와 같이 두개의 클래스(Class A, Class B)가 있고 ClassB에는 상수와 두개의 메소드가 있습니다. 해당 클래스 내에서 마우스 오른쪽 클릭을 통해서 Refactor --> Extract --> Interface를 선택합니다. 선택시 아래와 같은 설정창이 나타납니다. Extract interface from : 인터페이스를 추출할 대상 클래스Extract Interface / Rename original class and use interface where possibleExtract Interface : 인터페이스를 추출하지만 소스코드에 바로 적용하지는 않습니다.Rename orig..

깃털보다 가벼운 인텔리J(IntelliJ) IDEA 팁 7

오늘은 Refactoring기능 중 Class 분리(Delegate)에 대해서 알아보고자 합니다. 이 기능은 특정 Class의 길이가 너무 비대해지거나 해당 Class의 기능이 너무 방대해질 때, 이를 세분화시키고자 할 때 유용할 듯 싶어 보입니다. 클래스 추출하기 우선 위와 같이 두개의 Class가 있다고 가정해봅시다. FirstClass에는 변수1개와 메소드 1개가 존재합니다. 이를 따로 클래스를 만들어서 사용하도록 해야 합니다.Refactoring대상이 되는 Class에 커서를 둔 후, Refactor --> Extract --> Delegate을 선택하거나 동일한 메뉴를 마우스오른쪽 버튼으로 클릭하실 수 있습니다. 아래와 같은 창이 나타납니다. Name for new Class : 새로이 생성될 ..

깃털보다 가벼운 IntelliJ(인텔리J)팁 5 - Class & Method Signature변경

오늘은 IntelliJ의 Refactoring 기능에 대해서 얘기해봅시다. 사실 refactoring이라는게 IDE의 기능을 통해서 뚝딱 효과적으로 될 수 없는것이기는 하지만, 그래도 IDE가 제공하는 기본 기능을 통해서 여기저기 왔다갔다 하면서, 그리고 Copy & Paste를 하면서 코드를 수정하는 수고를 많이 덜 수 있다고 보여집니다. 우선 Class Signature에 대한 refactoring을 알아봅시다. IntelliJ에서 Class level의 signature 변경은 일반 Class를 Generic으로 변경하는 작업을 조금이나마 편하게 해준다. 일단 아래와 같은 형태로 두개의 class가 있다고 가정하자. MyClass는 MyClass2를 아래와 같이 참조한다. 이러한 상황에서 MyCla..

깃털보다 가벼운 Intellij 팁 2

오늘은 음....이거 참 한글로 풀어 쓰는게 요상하긴 하지만, 나름 풀이해보자면 "구현체 미리보기" 정도로 할 수 있을 듯 싶네요. 깃털보다 가벼운 관계로 오늘은 깃털만큼 짧게 소개하고 끝낼까 합니다. 우선 위와 같은 Controller가 있다고 할 때, 서비스의 getGroupNotificationReceiver 를 호출해서 값을 받아오겠죠. 그런데, getGroupNotificationReceiver 함수를 직접 열어보는 대신에 미리 좀 보고 싶은 경우가 분명 많이 있을 수 있다고 생각이 드네요. 그럴때 저 함수명에 커서를 댄 후, ⌥Space키를 누르면 아래와 같이 해당 함수의 내용을 보여줍니다. 위 상태에서 바로 엔터를 치면 해당 파일을 열고, 바로 해당 함수로 이동을 합니다. 위 기능은 클래스 ..

깃털보다 가벼운 IntelliJ Idea 팁

오늘은 Intellij Idea의 몇가지 자동 완성 기능에 대해서 소개를 해볼까 합니다. 아마 비슷한 기능을 이미 많은 IDE에서 지원하고 있다고 생각하기에 제목을 "깃털보다 가벼운" 이라고 정했습니다. 1. new instance 자동 완성 솔직히 이 기능을 얼마나 유용할 지 여부에 대해서는 의구심이 들기는 합니다. 개인적으로 인스턴스 생성이 필요할 경우, 보통 선언부(declare)를 먼저 하기 때문에 그런 생각이 듭니다. 우선 아래 그림과 같이 new 키워드로 객체를 생성합니다.그리고 나서 해당 라인에서 그리고 나서 맥 기준 (option + enter)를 치면 아래와 같이 introduce local variable이라고 일종의 알림이 나타납니다. 그 상태에서 엔터를 치면 자동으로 선언부가 완성이..

인텔리J 북마크 기능 활용하기

참으로 오래간만에 포스팅을 하는 거 같네요. 오늘을 북마크 기능에 대해서 적어볼 까 합니다. 작업을 하다보면 분명한건 특정 파일의 길이가 다소 길어질 수 있습니다. 어느정도 길어지는거는 문제가 안된다 치더라도,수천라인 이상으로 늘어나버리면 사실 파일 내에서 이동도 상당히 귀찮아집니다. 운이 좋아서 본인이 담당하는 부분의 파일 대부분이 길이가 짧다면 다행이지만, 본인처럼 거의 혼자 지지고 볶고 하는 사람이라면, 파일이 길어지면 길어질수록 뇌비게이션(?)으로 커버하는것도 분명 한계에 다다르게 됩니다. 이럴 때 사용할 수 있는게 바로 북마크 기능이 아닐까 합니다. 기본적으로 인텔리 J에서는 북마크 기능을 제공하고 있습니다. 뭐 사실 노트패드나 기본적인 에디터를 제외하고는 거의 모든 에디터들이 지원하는 기능이기..