절차지향 프로그래밍으로 프로그래밍을 입문하게 된다.
처음엔 유지보수 측면에서 어려울 것이 없다. 규모가 작고 알고리즘이나 비즈니스 조건의 복잡도가 낮기 때문이다.
아래의 절자 지향 프로그래밍의 코드가 복잡해지는 것을 바라보자.
매우 간단한 코드로 시작한다.
// 인증 API
Account account = findOne(id);
if (account.getState() == DELETED {
}
// 암호 변경 API
Account account = findOne(id);
if (account.getState() ==DELETED){
}
// 인증 API
Account account = findOne(id);
if (account.getState() == DELETED ||
account.getBlockCount() >0) {
}
// 암호 변경 API
Account account = findOne(id);
if (account.getState() ==DELETED) ||
account.getBlockCount() > 0 {
}
인증, 암호 변경 처리 코드에서 getState 메소드를 공유하고 있다.
다시 요구사항이 늘어, 이메일 검증 상태를 확인하고, 해당 유저가 활성화된 유저(휴먼 계정은 아닌지, 정지 계정)인지 까지 판단해달라는 요구가 온다면
if A || B || C || D ... || Z {
}
위와 같이 복잡해지고 수정하기도 어려워 지게 된다.
"그 객체가 어떤 기능을 제공하는가?"
다음 편에 계속