취미생활

레거시 코드 속 여러가지 코딩 빌런들 - 주석 빌런 본문

끄적이

레거시 코드 속 여러가지 코딩 빌런들 - 주석 빌런

달다달아 2021. 4. 25. 16:22

나는 2020년 중반 쯔음에 취업을 해서 2021년 4월까지 근 1년에 가까운 기간 동안 업무를 하고있다.

 

내가 주로 하는 업무는 약 14년(...)에 가까운 레거시 코드의 버그를 수정하거나 기능을 추가해 고객사에 배포하는 업무를 진행하고 있는데,

 

레거시 코드를 보며 참 많은 것을 배우고 있다.

 

어떤 코드는 "와! 진짜 코딩 잘했다!" 라는 식으로 놀라는 코드도 있는가 하면

 

"내가 짜도 이거보단 잘 만들겠다" 라는 생각이 들고 있다.

 

후자의 경우 가장 기억이 남는 사람은 배열 처리 시간을 줄이겠다고 자체적인 알고리즘으로 코딩을 해서 도저히 손을 댈 수가 없는 경우도 있었는데,

 

이런 코드의 경우 그 사람이 퇴사하거나 당시에 어떤 생각으로 코딩을 했었는 지 모르겠다고 할 경우

 

그 코드는 엄청나게 난감해진다.

이런 사람들의 코드는 잘못 수정하면 그대로 폭발해버리는 불발탄과 같아서 수정이 상당히 난감하다.

 

하다못해 주석이라도 남겨주지...

 

 

서론이 길었는데 이번 글은 내가 레거시 코드를 분석하며 봤던 빌런 중, 주석 관련으로 어이가 없었던 경우를 설명하려 한다.

 

내가 신입이라서 이해를 못할 경우가 아니라,

정말로 누가 봐도 어이 없을 만한 주석 라인이 있었다.

 

주석을 달 때는 주로 수정 날짜, 이름, 목적을 적는 경우가 일반적인 케이스인데

 

이건 너무 어이가 없어서 웃음 밖에 나오질 않았을 정도니까

 

이름하야, 이모티콘 주석

#include <iostream>

using namespace std;

int main()
{
    cout << "hello world!" << endl; //20210425 (^오^)
    return 1;
}

주석을 왜 이렇게 다는거야!

당신은 이 주석을 통해 해당 코드의 수정/추가 이유를 알 수 있겠는가?

 

알 수 있다면, 축하한다.

 

당신은 유리겔러를 뛰어넘는 초능력자일 것이다.

 

 

주석을 남기는 이유가 해당 코드의 수정 내역, 수정 일자를 기록해 다른 사람, 혹은 미래의 내가

그 코드를 왜 수정했는 지 알 수 있도록 하는 역할인 줄 알았는데

 

아닌 것 같다.

 

남들이 내가 수정 했음을 알 지 못하면서 내가 해당 코드를 수정 했음을 알 수 있도록 남기는

일종의 암호 글이었던 것 같다.

 

해당 주석은 북한 간첩에게 건네주면 김정은이 보내온 지령을 알 수 있을 지 모를 정도로

일반인은 알아먹을 수가 없다.

 

일단,

내 짧은 식견으로 해당 주석이 잘못 된 점을 짚자면


누가 수정 했는 지 말해주기 전 까지 모름

 

주석의 본질은 해당 코드가 왜 수정되었는 지, 누가 수정했는 지를

다른 사람에게 알리는 것이라고 생각한다.

 

기본적인 포맷이 아무리 단순화 될 수는 있어도,

아무리 그래도 누가 수정했는 지는 알 수 있어야 하지 않을까?

 

이런 식의 주석은

본인이 수정했다는 것은 알겠지만, 당신이 말하기 전까지는 모른다.

적어도 이름을 적던가 닉네임을 적어라 제발

 

Doxygen 같은 자동 주석 프로그램을 사용하는 것도 나쁘지 않다.

 

수정 단위가 너무 적어서 Doxygen까지 쓰기엔 너무 단순한 변화라고 생각될 경우

 

그냥 이름과 날짜만이라도 적어줬으면 좋겠다.

 

 

'끄적이' 카테고리의 다른 글

디자인 패턴에 대한 짧은 고찰  (0) 2023.05.16
중국 출장 중 개인 vpn 사용기 (22.11.05 Update)  (20) 2021.07.27
Comments