중첩된 조건문

개발을 진행하다 보면, 조건문이 여러번 중첩되는(nesting) 경우가 발생

// ...
if (아이디_중복아님) {
	if (아이디_길이적절) {
		if (비번_길이적절) {
			가입();
		} else {
			거절('비번 길이 부적절');
		}
	} else {
		거절('아이디 길이 부적절');
	}
} else {
	거절('아이디 중복');
}

위와 같이 중첩되는 조건문이 많아지면 가독성이 떨어지며, 그만큼 유지보수도 힘들어짐


가독성을 높이는 방법

1. and / or 연산자로 축약하기

// ...
if (아이디_중복아님 && 아이디_길이적절 && 비번_길이적절) {
	가입();
} else {
	// 로직이 기존과 달라질 수 있음
	거절();
}

2. guard clause(=inversion)

const signUp = () => {
	if (!아이디_중복아님) return 거절('아이디 중복');
	if (!아이디_길이적절) return 거절('아이디 길이 부적절');
	if (!비번_길이적절) return 거절('비번 길이 부적절');
	return 가입();
}

참고

https://www.youtube.com/watch?v=PAR60O5aXTA