if문이 많이 중첩 되면 점점 코드 안쪽으로 들여쓰기가 되며 가독성 및 유지보수에 문제가 발생한다.
이를 "Nesting" 이라고 부르는데 해당 문제를 해결하는 방안에는 크게 3가지가 있다.
1. and / or 연산자 사용하기
2. guard clause / invert 적용
예외처리 항목을 위로 올리는 방법
// guard clause 적용 전
if (아이디중복아님) {
if (아이디길이적절) {
if (비번길이적절) {
가입()
} else {
거절('비번짧음')
}
} else {
거절('아이디짧음')
}
} else {
거절('아이디중복')
}
// guard clause 적용 후 (중괄호 생략도 가능할 것)
if (아이디중복) {
거절('아이디중복')
}
if (아이디길이짧음) {
거절('아이디짧음')
}
if (아이디중복) {
거절('아이디중복')
}
그러나 else 없이 if만 사용하게 되면 성능 문제로 이어질 수 있음.
function signup() {
if (아이디중복) return 거절('아이디중복')
if (아이디길이짧음) return 거절('아이디짧음')
if (비번길이짧음) return 거절('비번짧음')
return 가입()
}
signup()
함수를 하나 만들어 놓고 return 시키게 되면 모든 조건문을 검사하지 않고
도중에 작업을 중단하기 때문에 성능 문제를 해결할 수 있다.
댓글 영역