오늘은 코드 생산성 높이기 2번째 글을 공유드립니다. 코드 생산성을 높이기 위해 IDE에서 제공하는 기능들을 확인하는 과정에서 Postfix Completion
이라는 굉장한 기능을 찾게 되었습니다.
오늘은 해당 기능에 대한 설명과 사용법에 대해 공유할 예정입니다.
IDE에서 언어별로 사용할 수 있는 단축키 모음이라 생각하면 쉽게 이해하실 수 있습니다.
갑통알
을 쓰면 IDE에서 갑자기 통장을 보니 알바(아르바이트)를 해야겠다
라고 풀어 써주는 기능이라고 이해해주시면 좋을 것 같습니다.
저는 이 중 제가 사용해본 몇몇 postfix를 소개해드릴 예정이며 전체 postfix를 알고싶으신 분들은 Intellij에 들어가 아래 단축키를 사용해 확인해보시길 바랍니다.
command(⌘)
+ ,
=> postfix completion 검색
public class Foo {
void m(Object o) {
o.nn
}
}
public class Foo {
void m(Object o) {
o.null
}
}
public class Foo {
void m(Object o) {
if (o != null){
}
}
}
public class Foo {
void m(Object o) {
if (o == null){
}
}
}
public class Foo {
void m(boolean b) {
b.sout
b.souf
b.serr
b.soutv // 변수 추가
}
}
public class Foo {
void m(boolean b) {
System.out.println(b);
System.out.printf("", b);
System.err.println(b);
System.out.println("b = " + b);
}
}
public class Foo {
void m() {
int[] values = {1, 2, 3};
values.for // iterable
int foo = 100;
foo.fori // index increase
foo.forr // index decrease
}
}
public class Foo {
void m() {
int[] values = {1, 2, 3};
for (int value : values) {
}
int foo = 100;
for (int i = 0; i < foo; i++) {
}
for (int i = foo; i > 0; i--) {
}
}
}
public void m2() {
m().try
}
public void m() throws CheckedException { }
public void m2() {
try {
m();
} catch(CheckedException e) {
e.printStackTrace();
}
}
public void m() throws CheckedException { }
public class Foo {
void m() {
getStream().twr
}
AutoCloseable getStream()
{
return null;
}
}
public class Foo {
void m() {
try (AutoCloseable stream = getStream()) {
} catch (Exception e) {
}
}
AutoCloseable getStream()
{
return null;
}
}
public class Foo {
void m(Object o) {
String.valueOf(123).val
o instanceof String.var
String.valueOf(123).varl
}
}
public class Foo {
void m(Object o) {
lombok.val foo = String.valueOf(123);
boolean foo = o instanceof String;
lombok.var foo = String.valueOf(123);
}
}
public void m(int intValue, double doubleValue, long longValue, Object objValue) {
intValue.opt
doubleValue.opt
longValue.opt
objValue.opt
}
public void m(int intValue, double doubleValue, long longValue, Object objValue) {
OptionalInt.of(intValue)
OptionalDouble.of(doubleValue)
OptionalLong.of(longValue)
Optional.ofNullable(objValue)
}
public class Foo {
void m(Object o) {
o.cast // cast
if (o instanceof String) {
o.castvar //castvar
}
}
}
public class Foo {
void m(Object o) {
(() o)
if (o instanceof String) {
String o = (String)o;
}
}
}
Postfix Completion에 자주 쓰는 코드들을 custom 하게 추가하면 유용하게 이용할 수 있을 것 같지만 아직 그렇게까지는 써본적이 없어 추천드리지는 못하겠습니다.
하지만 기본적으로 Intellij에서 제공하는 postfix를 이용하면 좀 더 생산성 있는 코드를 작성하는데 도움이 많이 될 것 같습니다.
해당 기능을 한 번 이용해 보시는걸 추천드립니다.
감사합니다.