• [내이야기] 프로그래머는 이해해줄듯한 푸념2012.09.06 PM 02:53

게시물 주소 FONT글자 작게하기 글자 키우기

이번에 다른회사의 누군가가 만들어둔 프로그램을 복제 하라고 한다.
당 회사에서 프로그램을 만든사람은 퇴사를 해서 해당 프로그램의 유지보수가 안된다며 우리회사로 헬프를 쳤다.
원래 우리 회사에서 하는 일은 아니지만 차장님께서 그런 잡일의 부수읶을 좋아라 하여 수락하였다.
그리고 당 회사에서 프로그램 소스를 보내주었다.
차장님 : 프로그램 소스 준다고 하니 똑같이 만드는데 얼마 안걸리겠다. 이번주내로해
나 : 소스있으면 금방하겠네요

그리고 소스를 받았다.

프로그램 함수이름
F_1(P_1,P_2);
F_2(P_1,P_2);
F_3(P_1,P_2);
이렇게 되어 있었다. F 는 function 이라서 F를 쓰고 P는 Parameter라 P를 썼나?
중요한건 주석이 없었다.

변수이름
a,b,c,d,e,f,g,h,i,j,k,l,m,n....
변수이름이 a~z 다쓰면 aa~az 다쓰면 ba~bz 로 작성이 되어있었다.
물론 주석은 없었다.

DB의 Table 명이
T_1
T_2
T_3
...
이었다.
물론 ERD는 없었다.
근데 Column 명이
C_1
C_2
C_3
...
이랬다.

소스내의 Query문을 보면

"Select C_1,C_2,C_3,C_4 From T_1 Where C_2 = XX"
"Select C_1,C_2,C_3,C_4 From T_2 Where C_1 = XX"
"Select C_1,C_2,C_3,C_4 From T_3 Where C_3 = XX"
"Select C_1,C_2,C_3,C_4 From T_4 Where C_4 = XX"
대충 이렇게 보인다.
물론 주석은 없었다.

그리고 각각 페이지파일 이름들이
P_001
P_002
P_003
그리고 페이지에 서프창이 필요할경우
P_001_1
P_001_2
이런식으로 되어있었다.
물론 파일 관리 문서는 없었다.

이거 본인이 만들고 1년후에 소스 다시보면 기억 할수 있는건가?
내가 머리가 나쁜건가?
댓글 : 36 개
으 앜ㅋㅋㅋㅋㅋ 정말 빡치겠네요;;
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
어떻게보면 변수이름을 보안적으로 해놨네요 못알아보게 ㅡㅡ;
근데 정작 자기도 못알아볼 확률이 200%인게 함정
저거 코드 용량 조금이라도 줄이려고 돌리는 그거 이름이 뭐였더라...

하도 예전일이라 생각은 안나는데.....

아마 그거 돌린 소스 같은데요...

정말 미치지 않고서야 저러면 나중에 본인도 못알아보는데...

저렇게 하지는 않았을겁니다..
헐~짠사람이 대단..
;;; 워래 소스 짠 사람도 자기도 나중에 보면 헷갈릴거 같은데;;; 저 많은 변수명 어떻게 기억할라고; 관리 문서도 따로 없으면서;
와 저건 진짜 너무 했다;; 솔직히 변수나 함수 이름보고 아 이게 어떤기능을 할 변수,함수구나 대충 파악이 가능한데 저건 진짜;;;
애초에 데이타베이스에 접근하는데 ERD조차도 없으면 이건 뭐 새로 구축해야되는게 아닌가 싶네요...
아이고....
그냥 비지니스로직 따로 분석해서, 프로그램 새로 개발하는게 나을겁니다.
코드 그따위로 짠 수준이면, 코드 품질 안봐도 뻔해요.
자기 스스로 코드 유지보수 하기 힘든 프로그램 짜는 수준이면, 설계고 나발이고 그딴거 없을 확률 99% 입니다.
(일부 자기 밥그릇 챙기려고 고의로 저러는 실력있는 사람들도 있으니 1% 제외)

현재 그 코드 그냥 폐기하시고, 새로 만드세요.
지금 그 코드 분석하는 시간이면, 비지니스 로직 분석하는 시간으로 충분할 겁니다.
물론 새로 개발하는 시간이 추가로 늘지만, 허접한 개발자가 만든 저질 코드를 기반으로 유지보수하는게 앞으로 더 큰 지옥을 맛볼 수 있어요.
경력 좀 있으시면, 새로 개발해서 앞으로의 유지보수도 편하게 가는 방향이 나으리라는건 경험으로도 아실겁니다.
저런 분들을 위해 ATG Coding Standard 문서들이 존재하는 건데..
단체 작업에서 저러면 육두문자가 입으로 올라와 버리죠ㄷㄷ
음 난 왜 먼가 있어보이지 -_-
저건 애초에 나 퇴사하면 엿먹어라라는 심보로 만든거네요.
예전에 대학때 수업시간에 들은 실무자의 이야기 중에 기억남는게,
어떤사람이 변수, 함수명을 죄다 여자 이름으로 해서 나중에 그사람 퇴사하고 그거 수정하다가 개 쌍욕 했다는..ㅋㅋㅋ
변수명이 미자, 순자, 지숙이 뭐 이런걸 영문으로죄다 해뒀다는..
와 진짜 토나오네요;;
만든사람 제정신이 아닌거같음;
전 앵간하면 욕을 안하는 타입인데... 저걸 보는 순간... 자연스럽게 욕이 나오네...

각각 스타일이 있어 말은 못하겠지만.
최소 주석은 달아주어야 ㅎㄷㄷ;;
지나가다 잠시 덧글 남겨요..
자바 소스 인듯한데요.(아닌가요??)
자바는 컴파일후 class파일을 역컴파일(jad등)하면 소스 코드가 거의 노출되요.
그래서, 컴파일후 배포되는 class등의 역컴파일등을 방지하기 위해서 저런작업을 해서 역컴파일하면 저렇게 나오게 해요. 이를 Obfuscater 라고 해요.
-_ -;;진짜 프로그램을 제대로 공부 안한사람인게 분명함
네이밍규칙을 제대로 안지키는 사람일수록 대충 발로배운거임 기본이없네
그거 제대로된 소스를 안 가지고 있는 것 같은데요..
혹시 자바 아닌가요?? decompiler 돌렸을 경우 소스코드 이해 못하도록
그런식으로 소스가 생성되는거 뭔가 있는걸로 아는데.. 소스 원주인은 아닐 듯 싶습니다. 누가 개발하면서 자기도 못 알아볼 그런 함수명과 변수를 쓰나요..
헐 잠깐 사이에 뎃글이 엄청 많이 달렸군요;
차장님과 회의 끝에 안하기로 했습니다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
소스 보여주면서 단가 안나온다고 버리라고 했어요

아마 프로그램 제작한 사람도 유지보수 안돼서 땔치고 나가고
남아있는 회사사람도 불가능해서 여기저기 헬프치는 건가 봅니다.

일 하기 싫겠네...
obfuscate tool 을 쓴걸까요?

아무튼 진짜 돈 안되는 일.
만약 저렇게 해서 프로그램 짯다면;; 그 짠사람도 대단한거... 매핑이 머리속에 완전히 풀 HD급으로 재생이 가능하다는 소리 ㅋㅋㅋ 지젼 고급 인력이었을꺼임 그랬다면...
ㅇㅇ자바라면 이해되는 소슨데요 저도 개발다하고나서는 저렇게 만듭니다. 소스난독화 프로그램 돌리면 저런거는 애교죠ㅡㅡㅎ 아무래도 그 회사측에서도 개발자가 만든 제대로된 원본소스는 없는듯하네요
으아 상상만해도 짜증....
꼭 Decompile 한 소스같네요-_-;; 힘드시겠습니다.
미친ㅋㅋㅋㅋㅋㅋㅋ 신입도 저지랄은 안하겠다ㅋㅋㅋㅋㅋ
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 함수명 보소 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
우와! 암호문인가...
저두 그런거 경험함
조선족 개발자가 딱 저렇게 해놓은적 잇엇지요
변수가 죄다 a, aa, aaa 임 ㅋㅋㅋ
새로 짜시는게 낫겠네요...
앜... 생각만 해도 토나오네요.... 저걸 언제 다 해석하나...
주석은 뭐 기본 중에 기본이라고 배웠습니다. 하하핫...
최고의 보안성을 가지는 소스군요...시상에나
으아악 ㅡㅡ; 저딴걸 코드라고....
문서 없으시면 걍 새로 갈아엎어버리는게 속편하실듯
ㅎㅎ 프로그램 배운거 기억은 하나도 안나지만 그 빡치는 기분은 백프로 공감됩니다 ㅎㅎ
난 알아보겠는디... 데이터 베이스 다루시나보내... 걍 검색하는거자녀 뭐가어려워 x는 문자열 형태의 변수겠네
루리웹-k**1**6**22 // 어디서 컴활하면서 대충 수박겉 핧기로 배웠나본데.. 지금 이해를 못해서가 아니잖아... 에휴.
친구글 비밀글 댓글 쓰기