내가 왜 이런 생각을 하게 되었는지 모르겠다. 가끔씩 생각이 가지치게 되는데, 그때 마다 발견하곤 한다. 여기서 발견이라고 표현한 이유는 내가 어떠한 질문을 창조해 낸게 아닌, 내 머리가 그것을 발생시키고, 내가 그것을 인지했기 때문이다. 좀 이상한 말이였다. 사설이 길어서 여기서 이만 줄인다.

질문은 "어떤 if 문이 인간이 이해하기 더 좋을까?" 이다. 내가 지금까지 써본 if문은 다음과 같은 4가지 유형이였다. 아마도 이 if문의 유형 외로는 다른 유형을 찾기가 힘들 것이다.(없다곤 말을 못하겠다. 외계생명체가 다른 별에 있을 수 있으니까..)

3가지 유형의 예제코드

코드를 보면 알듯이 isF?() 함수들은 모두 동일한 논리를 판단해 준다.  "이 3가지 함수 중 가장 인간이 보기에 가장 이해하기 더 편한 함수는 무엇일까?"

생각이 가지를 많이 친다면, 조건을 걸고 한번 생각해 보자.

전제조건

  1. 3가지 상태를 확인해서 참일 경우에만 작업을 한다.
  2. 연산 속도에 대해서는 고려하지 않는다.

나는 isF3 과 isF4 이 좋다고 생각하며, isF3가 사용하기 제일 보기 편하다고 생각한다. 그 이유는 다음과 같다.

첫째, 함수의 루틴을 도중에 종료시켜 생각을 단위로 끊을 수 있다.

이 말이 무슨 말인고 하면, isF1 경우 true가 리턴될지 false가 리턴될지 생각하기 위해선 type --> mode --> state의 상태 순으로 상태를 누적시켜서 기억해야만 한다. 이는 isF2도 마찬가지이다. 

isF3의 경우, 최초 type을 비교하여, 조건에 맞지 않으면 false를 리턴하기에 여기서 생각을 완료 시킬 수 있다. 만약 다음 코드가 궁금하다면, 다음줄의 if문을 확인하고 거기서 다시 생각을 완료시킬수 있다.


둘째, 코드의 범위를 보다 쉽게 끊을 수 있다.

isF2의 경우, 들여쓰기로 인해서 코드의 범위가 다양해져서, 코드 범위까지 인간의 뇌로 기억하고 있어야 하기 때문이다. 여기서 말하는 코드의 범위란, 코드가 존재하는 지역의 범위를 뜻한다. 이는 코드의 량이 늘어나면 늘어날수록 더욱 확연히 들어난다.

isF3의 경우, 코드의 범위를 isF2보다 더 쉽게 보여 줄 수 있다. 이는 if문의 끝을 알 필요가 없기 때문인데, isF2의 경우, 해당 if문마다 끝이 어디서 나는지 { } 를 따라가봐야하고, 들여쓰기 까지 생각해 두어야 한다.


셋째, 코드의 수정이 용이하다.

만약, type의 조건평가 후 참일 경우. 특정 연산을 수행해야 한다면

isF1의 경우, if문을 바꾸어야만 한다.

isF2의 경우, 코드 삽입은 범위를 잘 계산하고 찾아서 해야 한다.

isF3의 경우, 간편하게 해당 if문 다음에 연산시키면 된다.

이로써 나는 isF3가 제일 보기 편하고, 구성시키기 제일 좋은 구조인것을 증명을 하였다. 해당 증명이 맞는지 검증을 받기 위해서이다.

혹시 이 증명이 틀렸다는 것을 증명하고자 하는 분이 있다면, 어느 부분의 증명이 틀렸는지 댓글 부탁드립니다.


어느 졸려운 새벽에


  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기