개발하다보면, 불필요하게 이상한짓거리를 하는 경우가 생김
개발하다보면, 불필요하게 이상한짓거리를 하는 경우가 생김
A(PC프로그램),B(장비 프로그램),C(모듈 프로그램) 3명이 개발한다.
A,B는 같은 회사. C는 다른회사.
A는 B와 대화. B는 C와 대화.
A는 C의 전화번호를 모른다.(B가 안알려줌.)
A가 통신 프로토콜을 B에게 주니, B가 일부만 C에게 주었나보다.
데이터 순서대로 명령어코드를 만들어 주었는데,
C가 명령어코드 순서를 변경했다.
B가 A에게 명령어코드 순서를 바꿔달라고 한다.
명령어 코드는 통신데이터순서와 동일하게 되어 있어,
if문 같은 비교없이, 명령어 코드로 해당 데이터를 직접 접근할 수 있게 되어 있는데,
C가 이걸 순서를 바꾸어서, if문이 필요하게 생긴 상황.(불필요한 코드 추가)
A가 C에게 프로토콜(데이터 순서와 명령어 코드)를 설명해주겠다고 하나, B가 거절.
A가 B에게 불필요한 코드가 생긴다고 설명을 몇번씩 해도, B가 못알아들음.
정리 :
C가 삽질코드를 추가할것이고, A도 변환 코드가 추가된다.
원래대로 잘 만들었으면, 삽질코드, 변환코드 추가없이 더 작고, 더 빠른, 더 간단하 코드들이 작성되었을것이다.
이런일들이 하나씩 모이다보면, 나중에는
- "이게 왜 이렇게 되었을까?" => 아무도 모름
- "이거 어떻게 좀 변경이 안될까?" => 변경이 불가능할 정도가 됨
- "코드가 왜이렇게 복잡해?"
...
이런식이 되어버린다.
그래서 자동차나, 항공기등에 들어가는 프로그램코드는 수 많은 버그를 가지고 있고,
코드를 수년간 테스트하여, 버그가 발생 안하면 그냥 사용하는것임.
즉, 이 말은, 버그가 없는 코드는 없겠지만, 언제든지 중대한 문제가 발생할 수 있다는 말이다.
또한, 불필요한 변환작업을 해야해서, 성능이 떨어지고, 덩치가 커지고, 비싸지게된다.
문제는 현재 사용하는 대부분의 가전제품에 들어가는 프로그램들이 이런식이라는점이다.
안전이 중요한 제품/장비에도 마찬가지이다.
'C언어,ARM' 카테고리의 다른 글
WIN32, MFC - 버튼 눌린 이벤트 처리 (0) | 2019.12.30 |
---|---|
MFC에서 WM_COMMAND처리 방법 (0) | 2019.12.22 |
VC++ 6.0 MSDEV2.EXE 실행시 에러 MSDEV.EXE 실행하니 잘됨. (1) | 2019.12.06 |
FreeWebCam (0) | 2019.12.04 |
warning C4800: 'BOOL' : forcing value to bool 'true' or 'false' (performance warning) (0) | 2019.11.23 |