들여쓰기 지옥의 중첩된 조건문을 개선하자

들여쓰기 지옥의 중첩된 조건문을 개선하자

2023-10-24
0
views

Nested If Statements Meme


개요

개발을 하다보면 코드가 복잡하고 읽고 이해하기 힘들어 질 때가 있습니다. 오늘은 코드의 가독성이 떨어지는 이유 중 가장 흔한 중첩된 조건문을 개선하는 방법에 대해 정리해보도록 하겠습니다.


조건문을 작성하는 방식 두가지

조건문을 작성하는 방식은 크게 두 가지 패턴으로 구분할 수 있습니다. 각각의 패턴은 서로 다른 장단점을 가지고 있어 상황에 따라 적절한 선택이 필요합니다.

sample-01

sample-02

Bubble Style (중첩 조건문)

첫 번째 방식은 전통적인 중첩 조건문 스타일입니다. 이 방식의 특징은 다음과 같습니다:

  • 조건식들이 코드 상단에 집중되어 있어 초기 분기 파악이 용이합니다.
  • 긍정적인 조건을 먼저 처리하여 "정상 흐름"을 먼저 보여줍니다.
  • 하지만 깊이가 깊어질수록 else 블록이 중첩되어 코드 추적이 어려워집니다.
  • 들여쓰기 수준이 깊어져 가독성이 저하될 수 있습니다.

Gateway Style (빠른 반환)

두 번째 방식은 현대적인 접근 방식으로, 빠른 반환(early return) 패턴이라고도 합니다:

  • 유효하지 않은 조건을 먼저 걸러내어 코드의 복잡도를 줄입니다.
  • 들여쓰기 수준이 얕아 코드 가독성이 향상됩니다.
  • 각 조건마다 명확한 출구(exit point)가 있어 코드 흐름 파악이 용이합니다.
  • 함수의 주요 로직이 마지막에 위치하여 핵심 비즈니스 로직이 돋보입니다.

위 예제에선 단순하게 condition1같은 형식으로 적어서 읽기가 편하지만, 실제 개발 환경에서는 아래와 같이 더 복잡한 조건문을 자주 마주치게 됩니다:

sample-03

sample-04

Gateway Style의 추가적인 이점은 코드의 수평 공간 활용에서도 나타납니다:

  • 얕은 들여쓰기로 인해 한 줄에 더 많은 코드를 작성할 수 있습니다.
  • 조건문이 깔끔하게 정렬되어 코드 구조 파악이 용이합니다.
  • 각 조건의 처리가 독립적이어서 유지보수가 용이합니다.

결론

코드 품질 향상을 위해서는 단순히 동작하는 코드를 작성하는 것을 넘어서, 더 나은 구조를 고민하는 것이 중요합니다. 특히 조건문 작성에 있어서 Gateway Style의 적용은 다음과 같은 이점을 제공합니다:

  • 코드의 가독성 향상
  • 유지보수 용이성 증가
  • 버그 발생 가능성 감소
  • 코드 리뷰 효율성 증가

이러한 작은 개선들이 모여 전체 코드베이스의 품질을 향상시키는 초석이 됩니다. 앞으로도 클린 코드 작성을 위한 다양한 기법들을 지속적으로 공유하도록 하겠습니다. 감사합니다!