규칙 1 : 한 메서드에 오직 한 단계의 들여쓰기만 한다. (Only one level of indentation in a method)
BEFORE 기존 코드
위 saveDiary
method는 한 번에 세 가지 역할을 수행합니다:
기존 일기의 존재 여부를 확인합니다.
기존 일기가 없는 경우, 위치 권한을 확인하여 날씨 정보를 설정하거나 새 일기를 생성합니다.
기존 일기가 있는 경우, 해당 일기를 수정합니다.
즉, 위 method는 코드 내에서 두 번의 조건문 중첩(2단계의 들여쓰기)하며, 여러 작업(일기 저장, 권한 확인, 날씨 정보 설정 등)을 처리하고 있습니다.
AFTER 리팩토링 코드
이 원칙은 단순히 들여쓰기를 줄이는 것이 목적이 아니라, 메서드를 분리하여 각각이 단일한 책임을 가지도록 설계하는 데 중점을 둡니다.
작업 분리의 이점: 작업을 세분화하면 모듈 간의 결합도가 낮아지고, 각 모듈의 응집도가 높아집니다.
결과: 이렇게 구성된 코드는 재사용성이 높아지고, 수정이나 디버깅이 훨씬 용이해집니다. 따라서 메서드는 하나의 주요 역할만 수행하도록 설계하는 것이 이상적이며, 이를 통해 유지보수성과 가독성을 크게 개선할 수 있습니다.
Last updated