해당 글은 클린 코드의 대한 자유로운 의견을 공유하고 작성된 것으로 다양한 의견이나 잘못된 내용이 있으시면 댓글 남겨주시면 감사하겠습니다.
보통 Boolean 타입으로 부정형을 정의할 때 부정 연산자(!)을 사용하게 됩니다
[n이 null이 아닐 때]
n != null
[n이 10이 아닐 때]
n != 10
[n이 유효하지 않을 때]
validation() : 유효성 확인 Method
!n.validation()
이 글의 제목을 읽어보고 나면 1개의 질문이 떠오르실 것 이라고 생각합니다.
위 코드처럼 부정 연산자(!)을 그대로 사용하면 되지 않나요? Method를 굳이 나눠야 할까요?
저의 주관적인 생각으로는 부정 연산자(!)을 생각하는 로직도 Method 형태로 구분하는 것이 유지보수에 도움이 된다고 생각합니다.
아래와 같은 코드가 존재한다고 가정하겠습니다.
[Info.class]
class Info{
...
booelan validation(){
// 유효성 검증 로직
}
boolean inValidation(){
return !validation();
}
}
[Application.class]
...
//부정 연산자를 메서드로 구현하지 않을 때
public Info method1(Info info){
if(!info.validation()){
//로직
}
}
//부정 연산자를 메서드로 구현할 때
public Info method1(Info info){
if(info.inValidation()){
//로직
}
}
...
위 2가지 코드를 읽을 때 거치는 우리의 생각을 흐름대로 설명하겠습니다.
부정 연산자를 메서드로 구현하지 않을 때
1. if문 안에 존재하는 !valdation() method을 확인한다.
2. validation() method가 어떤 기능을 하는지 확인한다.
3. validation() method 대한 부정 연산자로 반대가 어떤 의미를 가지는지 생각한다.
4. 반대의 의미인 inValidation()을 의미한다는 것을 이해하게 된다.
부정 연산자를 메서드로 구현할 때
1. if문 안에 존재하는 inValdation() method을 확인한다.
2. inValidation() method가 어떤 기능을 하는지 확인한다.
3. inValidation()을 의미한다는 것을 이해하게 된다.
메서드로 구분 여부에 따라 코드를 분석하는데 단계의 차이점이 존재하게 됩니다.
단계가 적어진다는 것은 해당 코드를 이해할 때 더 자연스러운 흐름으로 읽는 효과를 얻을 수 있습니다.
부정 연산자에 따른 method을 구분하여 작성해서 코드의 흐름이 더 자연스럽게 이어지도록 해주는 것이 클린 코딩에 도움이 된다고 생각합니다
제가 생각하고 있는 부정 연산자(NOT, !)을 Method으로 구분의 대한 내용이었으며, 다른 분들의 생각이 궁금합니다.
'JAVA' 카테고리의 다른 글
if-else의 갇혀버린 return 문을 구출하기 위해 Early Return 패턴을 활용하자 (0) | 2025.05.07 |
---|---|
나만의 클린 코드 이야기 - Enum의 description 변수를 사용하자 (0) | 2025.04.03 |
Koltin Gradle, Groovy Gradle 비교 (0) | 2025.01.21 |
R2DBC-Proxy(DB Connection Proxy) 적용하기 (3) | 2024.07.22 |
Jackson Library 이해하기(Feat. Jackson NullPointerException) (0) | 2024.05.04 |
댓글