2008년 1월 7일 월요일

Rezzo에 대한 3가지 불만 : C언어 버전

제 차는 레조입니다. LPG를 사용하고, 수동 변속기와 수동 에어컨을 장착했습니다.
원래 차라는 것이 운용하다 보면 불만이 생기기 마련이겠죠.
차를 운영한지 2년이 좀 넘었는데, 시간이 좀 되니까 이런 저런 불만들이 구체화되어 가더군요.

이리 저리 말로 표현할 수 있는 불편들(차의 모양이 곡선이라서 운전석에서 평행 맞추기 어렵다는 등의 원시적인 것들) 말고, 설명하기는 복잡해서 차라리 C언어 스타일로(즉, 인간보다는 차라리 컴퓨터가 알아듣기 쉬운 표현으로) 표현하는 것이 더 나을 것 같아 C언어 스타일로 표현해보기로 했습니다.



사용자 삽입 이미지
1. 파워윈도우

문제점 : 인간 언어 버전
  1. Lock(잠금 스위치)이 걸린 상태에서 운전석이 아닌 자리에서 버튼을 누를 때 운전석에서 같이 누르면 운전석의 버튼도 동작하지 않는다.

  2. 운전석 윈도우는 내릴 때 (살짝 누르면 일반 모드로 동작하고, 꽉 누르면 자동 모드로 동작하는 것이 상식적이나) 무조건 자동(Auto) 모드로 동작한다.
네. 몇 줄 되지 않지만, "이해하기 어렵습니다." 제가 썼지만요.


문제점 : C 언어 스타일 버전

void 운전석윈도우스위치()
{
      if (눌렀는가)
            if (자동으로 내려가고 있는가) 내려가기 중지;
            else 자동으로 내려가;
      else if (당겼는가) 올라가;
}

void 나머지윈도우스위치()
{
      if (Lock && (각 자리 눌렀는가 || 각 자리 당겼는가)) return;
      if (운전석 눌렀는가) 내려가;
      else if (운전석 당겼는가) 올라가;
      else if (각 자리 내렸는가) 내려가;
      else if (각 자리 당겼는가) 올라가;
}



버그수정 : C 언어 스타일 버전

void 운전석윈도우스위치()
{
      if (꽉 눌렀는가)
            if (자동으로 내려가고 있는가) 내려가기 중지;
            else 자동으로 내려가;
      else if (눌렀는가) 내려가;   //누르는 경우를 구분하는 코드 1줄 추가
      else if (당겼는가) 올라가;
}

void 나머지윈도우스위치()
{
      if (운전석 눌렀는가) 내려가;
      else if (운전석 당겼는가) 올라가;
      else if (!Lock)    // Lock을 구분하는 코드는 여기 위치해야 정상
      {
            if (각 자리 눌렀는가) 내려가;
            else if (각 자리 당겼는가) 올라가;
      }
}



사용자 삽입 이미지

2. 점화스위치/오디오

문제점 : 인간 언어 버전
  1. 점화스위치를 ON→START로 돌리면 오디오 전원이 꺼졌다 켜짐

  2. 점화스위치가 START→ON으로 변할 때는 그런 일 없음
※ 특히 이 문제가 마음에 들지 않는 이유가 있습니다.
    저는 경차인 마티즈(마티즈 1 오리지날 수동)를 탔는데, 마티즈에도 이런 멍청한 문제는 없었습니다.


문제점 : C 언어 스타일 버전

void 점화스위치변경()
{
      switch (현상태)
      {
      case LOCK : 몽땅 끄기;    break;
      case ACC :
            if (시동이 걸린상태인가) 시동끄기;
            if (!(전원이 들어왔는가)) 전원 올리기;
      case ON :     break;
      case START :
            전원 내리기; //이 줄이 왜 있냐구 (1/2)
            전원 올리기; //이 줄이 왜 있냐구 (2/2)
            시동걸기;   //시동이 걸려있더라도 고고씽
      }
}


버그수정 : C 언어 스타일 버전

void 점화스위치변경()
{
      switch (현상태)
      {
      case LOCK : 몽땅 끄기;    break;
      case ACC :
            if (시동이 걸린상태인가) 시동끄기;
            if (!(전원이 들어왔는가)) 전원 올리기;
      case ON :     break;
      case START :
            if (!(시동이 걸린상태인가))  시동걸기;   //이게 맞지 않을까요
      }
}



사용자 삽입 이미지

3. 수동에어컨

문제점 : 인간 언어 버전
  1. 풍량조절스위치에 무관하게 외기차단스위치가 꺼져 있으면 외기가 들어옴

  2. 외기차단스위치가 꺼져있고, 에어컨이 켜진 경우에는 에어컨은 동작하지 않고 외기만 들어옴
풍량이 0이면 아무런 외기도 들어오지 않아야 합니다. 이 문제 역시 마티즈에도 없었습니다!!!


문제점 : C 언어 스타일 버전

void 송풍및에어컨()
{
      if (외기차단스위치 켜졌는가) 외기흡입구 열기;
      else 외기흡입구 닫기;
     
      if (풍량조절스위치 > 0) 에어컨 및 송풍 동작
      else 에어컨 동작 중지
     
      //에어컨ㆍ송풍이  동작하지 않아도 외기흡입구는 열릴 수 있음
}


버그수정 : C 언어 스타일 버전

void 송풍및에어컨()
{
      if (풍량조절스위치 > 0)
      {
            //에어컨ㆍ송풍이 동작하지 않으면 외기흡입구도 닫혀야 정상임
            if (외기차단스위치 켜졌는가) 외기흡입구 열기;
            else 외기흡입구 닫기;
           
            if (에어컨스위치 켜졌는가) 에어컨 동작;
            송풍동작;
      }
      else 외기흡입구 닫기;
}





쉽고 재미있게 표현하려고 했는데, 정작 문제는 GM DAEWOO에서 이 글을 봐줘야 한다는 것과, 이 글을 보는 사람이 C언어를 알아야 한다는 문제가 있었군요. 게다가… 돈이 안 된다는 문제도 있군요. 즉,

bool 읽고서 레조의 문제를 수정(독자 A)
{
      if (!(A가 C언어를 아는가)) return false;
      if (!(A가 GM DAEWOO 직원인가)) return false;
      if (!(A가 GM DAEWOO 에서 직급이 높은가)) return false;
      if (!(이 문제 수정하면 GM DAEWOO에는 돈이 되는가)) return false;
      if (!(GM DAEWOO 사장은 레조를 타는가)) return false;
      if (!(자발적 리콜하면 사장이 좋아하는가)) return false;
    
      수정;
      자발적 리콜;

     
return true;
}

하군요. 흠… 그냥 타야겠네요. 불만을 조용히 삼키고 말이죠.

댓글 2개:

  1. If you experience some emotional or physical problems in your life it can soon be seen in the condition of your hair, using natural
    and organic products aids in the recovery of your hair.
    s Therapy Treatment line, which is a lightweight replenishing treatment that protects and maintains hair condition.
    Its intention is to offer you ideal cosmetics which are safe and
    substantial in quality, all the way through the world.


    Review my blog post: hair products

    답글삭제
  2. Personal opinion is generally exhibited in various types of editorial
    writings. Creating your own info or e-letter communication could also be considered.

    Such a benign amalgam is the only realistic hope for reconciliation.
    But Punjabi news paper has the upper hand because almost population speaks Punjabi, the
    official language of Punjab. Newspapers internationally are becoming more than ever like a
    television network providing current breaking news stories.


    Feel free to surf to my page ... click here

    답글삭제