본문 바로가기
Web Technologies 🖥️/java

깔끔한 if문 작성하는 법 좀 알려줘 (feat... 화이트리스트) - JAVA

by dudefromkorea 2023. 9. 29.

 " 왜? "

라는 질문에 답변을 해보자면

 

 

"가독성" 을 위해서

 

 


 

위에선 단지

가독성이라고 답했지만

if문이 많아지면 효율성도 떨어지고

유지보수나 기능 확장 측면에서 적절하지 않다

 

enum을 사용하거나,

map으로 대체하는 등

 

다양한 방법이 많지만,

일단은 조건문에 초점을 잡아보자

 

 

 

먼저 가장 기본적인 수준의

if문부터 살펴보자

 

 

 "Bubble Style"                                         

Bubble Style with Java

 

 

보통 이런 식의

if else 조건문을

많이 사용하게 된다

 

겹겹이 둘러싸인

조건문들의 형상이

마치 방울방울 뭉쳐있다고 해서

"Bubble Style"

이라는 이름이 붙여졌다

 

코드를 살펴보면,

현재 여러 조건문이

겹쳐있어서

if와 else의 범위가

한눈에 잘 들어오지 않는다

 

 

 

그렇다면

대표적인 차선책으로

어떤 스타일이 존재할까?

 

 

"GateWay Style"                                  

Gateway Style with Java

 

 

조건을 반대로 생각해서

 애초에 조건이 만족되지 않으면

통과시키지 않는 문지기 형태의

"Gateway Style"

이라는 스타일 기법 존재한다

 

 

if문을 작성할 때,

가장 주의해야 할 부분은

바로 해당 조건문의 깊이이다

 

앞서

Bubble Style로 작성했던

 코드를 Gateway Style을 사용하여

단 5줄로 요약해 버렸다

 

가능하다면,

최대한 깊이가 1인 분기문을

작성하는 것을 권고한다

 

 

Guard Clause 

방식을 도입했고,

if문 내부 조건이 간단하기에

괄호를 삭제하고 return문 까지

 단 한줄로 마무리했다

 

 

 

스타일을 살펴보았으니,

리펙토링 측면에서

 간단한 기법들을 살펴보자

 

 


#1 boolean 타입을 true / false로 직접 반환하지 말자!

조건절 자체가

boolean 반환 값을 가질 때는

if / else 문을 사용하는 것 보다

직접 반환하는 것이

훨씬 깔끔하다

 

boolean with & without Java

 

#2 삼항 연산자를 적극 활용하자!

 

조건에 따른

return 값을 각각 가진다면,

삼항 연산자를 쓰는 것이

더욱 간결하다

 

Ternary Operator with Java

 

 

 

 

참조: https://wpshout.com/unconditionally-refactoring-nested-statements-cleaner-code/

728x90
반응형