티스토리 뷰

프로그램코드를 작성하다 보면 일반적인 사항과 예외적인 사항이 존재하지만 초보 개발자가 실수하는 부분은 예외보다 일반적인 사항을 먼저 생각하는 경향이 있다. 파일 안에 특정문자나 단어를 찾는 프로그램을 개발한다고 생각해 보자 무엇을 먼저 해야 할까요.  일반적으로 다음과 같이 생각할 것이다.

  1. 파일을 오픈한다.
  2. 파일을 읽으면서 원하는 단어나 문장을 찾는다.
  3. 파일을 닫는다.

더 고려할 것이 없는지 생각해 보자...

파일을 오픈하는데 파일이 없거나 파일은 있지만 파일이 비어 있어서 읽은 것이 없거나 찾을 단어나 문장이 없으면 어떻게 할 건지를 우리는 먼저 생각하고 처리 방법에 대해서 고려해야 한데 조건문은 일반적인 사항만을 생각해서 코드를 작성하면 잠재적 오류가 발생할 수 있는 요소를 가지고 있는 것으로 예외 사항을 먼저 생각하고 코드를 작성해야 한다. 다음과 같이

  1. 파일을 오픈한다.
  2. 파일이 없어으면 안내 메시지를 표시하고 프로그램을 종료한다. ( if )
  3. 파일을 읽는다.
  4. 읽을 파일이 없어으면 안내 메시지를 표시하고 프로그램을 종료한다 ( if )
  5. 읽을 파일의 사이즈가 없으면 안내 메세지를 표시하고 종료한다 ( if )
  6. 단어나 문장을 검색한다.
  7. 찾는 단어나 문장이 없으면 안내 메세지를 표시하고 프로그램을 종료한다 ( if ]
  8. 찾는 단어나 문장이 있으면 처리 한다 ( 콘솔에 표시 )
  9. 파일을 닫는다.

예외 사항을 모두 작성 하면   프로그램 코드는 많이 지나 프로그램에 잠재적 오류는 없어지므로 프로그램 오류를  찾기 위한 시간이 절약되고 향후 프로그램을 수정할 때도 편해질 수 있다.

다음 코드를 한번 보자

If 조건식 {
    실행문들 1
} else if 조건식 {
    실행문들 2
} else if 조건식 {
    실행문들 3
} else {
    실행문들 4
}

조건이 적을 때는 문제가 없지만 조건이 많을 경우 코드가 길어 지고 복잡한 코드가 되어서 읽기 어려운 코드가 될 것이다. 이것을 없애기 위해서 switch를 사용하지만 break문을 작성하지 않으면 잠재적 오류가 많아질 뿐이고 코드를 읽기는 if  문에서 크게 개선되지는 않는다. 해결하기 위한 가장 간단한 방법은 실행문들을 함수나 메서드로 만들어서 조건문 안에서는 함수호출 하는 구조로 변경을 하면 코드가 이쁘게 만들어진다. 이때 주의 사항은 함수명을 기능에 맞게 지어야 한다. 개발자가 코드 작성하는 것보다 어렵지만...
다른 방법으로는 업무에 맞는 적절한 패턴으로 개선 하는 것이지만 초보 개발자는 힘든 작업이다. 초보 개발자는 함수화를 통한 구조적으로 이쁜 코드를 작성하는 연습을 하고 코드를 작성하는 것이 좋다.

마지막으로 조건식이 복잡하면 조건식을 변수로 분할 하여 작성하는 것이다, 다음 예제를 보자

IF ( ( a==1 || b=2  ) && ( c > 10 && d < 5 ) 

Boolean isCondition1 =  a == 1 || b == 1
Boolean isCondition2 = c > 10 && d < 5
If isCondition1 && isCondition

이처럼 조건식은 참, 거짓만 값으로 가지고 있으므로 변수로 분리하고 분리한 변수의 결합으로 하는 방법으로 초보 개발자 시절부터 습관화하여 자신만의 코드 스타일을 만들면 좋다.