개발할 때 조건문 만큼 많이 쓰이고, 또 직관적인 구문이 또 있을까.

그런데 실용적인 측면에서 보면 쓰기 전에 한 번씩 잘 썼나 확인하는 구문이다.

조건문을 잘 쓰면, 보다 더 직관적이고, 간결하면서도 성능 좋은 결과물이나온다.

뿐만아니라, 안정성의 큰 줄기는 조건문에서 나온다고 본다.

그런 의미에서, 조건문을 쓸 때는 그 외, 즉 "else"일 때를 더 신경 써줘야 한다.

 

switch(transmissionType) {
    case manual:
        // 처리
        break;
      
    case automatic:
        // 처리
        break;
        
    case unknown:
        // 처리
        break;
}

자동차의 변속기 종류에 따라 처리하는 code를 작성한다고 가정해보자.

만일 transmissionType이 enum 형의 변수라면 위의 구문으로 충분할 수도 있다. (IDE에 따라 모든 경우가 없다고 자동 경고해주기도 함)

그런데 만일 int형이라면, 혹은 다른 machine에서 전송받은 값을 처리해서 enum으로 바꾸는 구문이라면 위의 경우는 문제가 될 수 있다.

위의 transmissionType의 변수에 정확히 저 3가지 값만 들어오라고 강제할 수 없는 경우는, unknown을 차라리 else나 default같은 fallback 처리를 넣어주는 게 좋다. (비정제 data 분류할 때도 자주 이렇게 한다)

 

물론, 지정한 3가지 값 이외의 숫자가 들어오는 것 자체가 문제다. (그래서 추가로 예상치 못한 값이 들어왔을 때의 처리를 해야 함)

상황에 따라 다르겠지만, 모르는 값이 들어와서 아예 처리를 하지 않는 경우와, 기타의 경우로 대치하여 처리를 계속 하는 경우가 각각 필요한 경우가 있다.

적어도, 아예 비정상 종료를 하거나, 원치 않는 동작을 하는 것은 미리 막아두는 게 제일 낫다.



Trackbacks  | Comments