자바 프로그래밍을 하다보면 코드가 더러워지는 경우들이 있다. 특히 조건문들이 붙으면서 코드가 지저분해지고 가독성이 떨어지게 되는 경우가 많다. 조건문을 조금만 다른 관점으로 접근하면 가독성이 훼손되지 않으면서 동일한 로직을 좀 더 깔금하게 구현할 수 있다.
Bubble Style
우선 코드의 로직을 보강하면서 조건문을 붙여나갈 때 제일 많이 등장하는 패턴의 코드는 다음과 같을 것이다.
if (condition1) {
if (condition2) {
if (condition3) {
return "All condition is true";
}
return "Condition3 is false";
}
return "Condition2 is false";
}
return "Condition1 is false";
의식의 흐름대로 따라가면서 코드를 작성하다보면 if 문이 중첩되는 이런 형태의 코드가 만들어 질 것이다. 겹겹이 둘러쌓인 조건문들의 형상이 마치 방울방울 뭉쳐있다고해서 'Buuble Style'의 코드라고 한다.
이런 형태의 코드는 여러 조건문들이 겹쳐있어서 로직이 한눈에 잘 들어오지 않는다.
Gateway Style
위 코드와 같은 동작을 하는 로직을 Gateway 스타일로 변경할 수 있다.
if (!condition1) {
return "Condition1 is false";
}
if (!condition2) {
return "Condition2 is false";
}
if (!condition3) {
return "Condition3 is false";
}
return "All condition is true";
Bubble 스타일의 코드가 대부분 값의 유무 확인과 null 값 체크, 필수값 체크 등으로 구성되어 있다. 이런 경우 조건을 반대로 생각해서 조건이 만족되지 않으면 통과시키지 않는 스타일로 변경할 수 있다. 마치 문지기가 다음 로직으로 통과시키지 않는 것처럼 코드를 작성했다고해서 '게이트웨이(Gateway)' 스타일이라고 부른다.
코드에서 들여쓰기, 인덴트의 깊이는 최대한 줄이는게 좋다. 버블 스타일로 작성되어 있는 코드는 인덴트가 많아서 가독성이 떨어지는데 게이트웨이 스타일로 변경할 수 있는지 고민해봐야한다.
댓글