티스토리 뷰

C언어

남이 짠 소스코드 분석하기

바람사탕 2024. 6. 11. 23:15
반응형

회사 업무로, 남이 짠 코드 분석중인데...

아 진짜 어렵게 작성해 놓았다....

그냥 한숨만나온다...ㅎㅎ

 

아니, 이걸 꼭 이렇게 꼬아놓아야 하나?

내가 C언어만 20년 넘게 했는데, 이 코드는 도대체 뭘 하는지 알 수 가 없네...

하....답없네...

(만든 사람은 알겠지...만든 사람이 여럿. 현재 담당자도 잘 모름)

 

 

"아이고, 이걸 왜 여기에 넣어 놯어???"

 

"이걸 꼭 이렇게 작성해야해??"

(이거 몇줄 확인하느라 지금 몇시간째....)

 

 

 

안정적인 코드를 작성하려면,

- malloc, new등의 동적 메모리 사용은 최대한 금지해야합니다.

  리셋되거나, 먹통되는 주요 범임이 메모리 릭입니다.

  따라서, 365일 돌아가야하는 프로그램에서는 어쩔 수 없는 경우에만 사용해야 합니다.

 

 

이 프로그램은 쓰레드, msg,  malloc로 범벅을 해놓았네요...허허...

 

이 프로그램은 거의 대부분을 class, struct로 범벅을 해놓아서,

그냥 코드만 봐서는 내용 파악이 쉽지 않네요..

또한, c언어 호환성이 별로 없고, 운영체제 독립적이지 않아서, 

특정 버젼 이상의 컴파일러로만 컴파일이 되고,

관련 파일들도 많아서, 컴파일 시키는것도 쉽지 않네요.

아...참.....답없네....

 

 

좋은 소스코드는

- 명확하고

- 내용이 직관적이고

- 기본 C코드를 주로 사용하여, 누구나 알기 쉽고, 컴파일러 호환성이 좋은

- 등등

 

 

 

리눅스 OS 프로그램하면 대단해 보인다.

그러나 실제로 까보면, 불필요한 코드가 너무나 많다.

가끔 멈추기도하고, 재부팅되기도 하고...

그래서 주기적으로 재부팅을 해주는 경우도 많다.

이유는 간단하다. 너무 꼬아놓은 소스코드가 정확히 어떤 동작을 하는지 모르는 상태에서 프로그램을 수정하다보니, 많은 문제가 생긴다.

"동작만 되면 된다"가 현실적인 상황이다.

게다가, 이사람 저사람 코드 사용하다보니,

이 코드를 왜 사용하는지도 모르고, 이전 사람이 쓰던거니, 그냥 가져다 쓴다.

그중에 하나를 내가 분석해보니, 메모리 복사하는 것인데, 함수와 매크로 범벅이 되어 있다.

함수 이름도 동작을 알기어렵게 지어 놓았다.

나 다음 사람도 똑같이 할거다...

자동차 자율주행 같은것이 가끔 오동작하는건 바로 이런 이유에서 이다.

안정성이 중요하다보니, 동작하면, 수정금지인 경우가 많다.

그러다 가끔 사고치고...

 

i2c코드 가 멈춘다고 한다.

코드를 분석해보니, 아주 가관이다.

쉽게 작성할 수 있는 코드를 빙빙빙 돌려 작성해 놓았다.

한숨만 나올뿐...

대단하긴 뭐가 대단해....까보면 가관이구만...

사람들은 리눅스라고하면 무조건 대단하다고 생각한다.

이건 변하지 않을듯 하다...

멍청한건지...순진한건지...

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함