프로그래머로서 황당했던 기억은?

winchild의 이미지

아래의 "시스템 관리자로서 황당했던..." 을 정말 재미있게 읽었습니다. 저도 경험했던 것들이니까요. 그와 더불어 프로그래머로서 황당했던 기억들을 모아보면 그것도 재미있지 않을까 생각을 했습니다.

프로그래밍이라는 것에 발을 디딘지 그럭저럭... 내후년이 되면 20년이 되는 것 같습니다. 울나라에서 프로그래밍만 해 가지고 밥먹고 살기 정말 힘들더군요. 지난 일을 돌아보면 재미있었던 일도 많았고, 고생한 일도 많았습니다. 프로그래머로서 황당했던 기억들을 써보면 몇가지 있는 것 같습니다.

머릿글로 하나만 소개하면.... (다른것은 나중에 답글로 올리죠.) 첫 직장생활을 하면서 한 2년 하니깐 그럭저럭 프로그래밍에 관한 한 내맘대로 할 수 있는 수준이 되었을 때입니다.

상용프로그램을 운용중일 때에는 완결된 프로그램은 손을 대지 않는 것이 상책이죠? 그런데 이럭저럭 하다 심심해서 그냥 프로그램을 들여다보고 있었습니다. 그 프로그램은 Z-80 어셈블러 프로그램이었습니다.

그런데 프로그램을 훑어보던 나는 어떤 부분에 시선이 고정되었습니다.

"오잉? 이거는 틀림없이 버그인데..."

큰일이다 라는 생각에 (은행용 단말프로그램이라서 만일 버그이면 200개의 프로그램을 디스켓으로 새로 배포...) 실행프로그램의 기능을 확인해 보았습니다.

"어!!! 잘 돌아가는데..."

아무리 확인을 해봐도 잘 수행되었습니다. 이거 어쩌지... 2년차밖에 안된 나는 상관에게 보고하였지요. 그랬더니 그 과장은 하나도 안놀라면서 왈...

"가끔 버그가 있더도 잘 돌아가는 경우가 있다."

그리고 그냥 놔두라는 것입니다. 물론 그 프로그램은 고쳤지만 다음 프로그램 배포시까지 숨죽이며 기다릴 수밖에 없었지요. 어쩌다 실행프로그램은 고친 소오스를 사용한것은 아니냐구요? 글쎄요.... 그당시 실행프로그램 만들려면 컴파일과 링킹에 30분정도 걸렸습니다. 그러니 귀신이 곡할 노릇이죠. 근데 상관들은 당연한 듯이 아무런 태도변화도 보이지 않는데 더 충격을 받았습니다.

근데 요즘에 이런일을 발견하면 저도 마찬가지 반응을 보일것 같네요. 여러분들이 프로그래머로서 겪었던 황당한 기억은 무엇인지요?

댓글

winchild의 이미지

그래서 한참 멋부릴때는 설명을 되지 않은 콩구리시로 주절이 주절이 달아 놓았습니다. 하지만 그렇게 달아 놓은 설명도 나중에는 이해가 안되더군요.

그다음부터는 과감하게 한글로 설명을 마두 달아 놓습니다. 심지어는...

"요기는 이러저러해서 일단 이렇게 만들어 놓는다. 냉중에 DB 설계를 바꾸어서 이렇게 저렇게 해야 할것으로 생각됨!"

정말로 이렇게 쓰고 있습니다. 멋이고 체면이고 고생안하는게 최고니깐...

- 겨울아찌 -

- 겨울아찌 -
winchild@gmail.com

익명 사용자의 이미지

공감 또 공감...

익명 사용자의 이미지

내부서버에서 PHP로 오류 수정하고 브라우저로 리프레시 하는데 하나도 바뀌는게 보이지 않는당.... 알고보니 브라우저에서 보이는 내용은 외부서버에 있는 내용이었땅.... ㅋㅋㅋ

liberta의 이미지

황당 1>>
친구 녀석이 즈거네 학과 수치해석 과목 숙제를 하는데, 죽어라고 잘못된
값이 나오는 걸 좀 해결해 달랍니다. 그래서 메일로 "프로그램"을 보내
달라구 했죠.
(메일 내용)
쓰바, 절라 안됨.. 어쩌구 저쩌구... 밥은 묵었냐.. 등등...
(첨부 파일)
homework.exe -_-;; 이게 "프로그램"이었죠 뭐...

열라 갈궈주곤 "비주알 씨++ 소스"를 다시 보내달라고 했습니다.

황당 2>>
GNOME에서 OpenGL을 가지고 전공과목 레포트(전산물리->시물레이션)를
만드는데... (물론 gtkglarea써서..) 한창 렌더링할 때 어쩌다가
"divide by zero"같은 경우가 있었나 봅니다. 여러 번 이런 경우를
당했는데 대체적인 증상(?)은...
* X shutdown (Ctrl+Alt+Backspace 보다 더 신속.. "팍"!!)
* Panic (Input장치 완전 먹통, 한마디로 커널 패닉같은 상태...)
* 그놈 버그질라 다이어로그 (이건 그래도 양반이죠)

일단 이렇게 X가 뻗으면 도무지 리붓 말고는 대책이 없더군요. 다시
띄우면 세션이 어쩌니 하며 또 튕겨 나가고.. 몇 번 시도하다보면
시스템이 뻗고.. -_-;; 하드웨어를 low-level에서 다루는
라이브러리들, 조심해야 합니다.. 일반 유저고 루트고 구별도 없더군요..

익명 사용자의 이미지

win32 프로그램인데..
테스트하고자 회사 전 컴퓨터에 설치..
다음날 회사 전 컴퓨터에 바이러스 이식..^^

시치미~~

armadillo_의 이미지

하나 : 코딩끝내고 소스에서 지저분한거 - 디버깅 하느라 추가한것 들 - 지우고, 잡다구리한 화일 지우느라

#rm -rf *c

허걱 참고로 그때 작성한 프로그램은 Pro*C 프로그램으로
확장자가 *.pc 였음..
그 황당함이란..

둘 : makefile에 자동화를 추가한답시고
위의 내용을 추가해놓구 난 똑똑하다고 자화자찬하며
가볍게 make 하고 돌렸는데 소스가 없어졌을때...

셋 : 잠에 취한 상태에서 ftp에서 같은 호스트로 다시 접속해서 put했는데..허걱 화일이 없어졌다.
전자화일도, 출력된 화일도,백업도 없다.

미티 미티..

익명 사용자의 이미지

mysql DB의 회원DB에 접속해서 한개컬럼을 지우려하고 있었다...

명령어..
mysql>delete from member; where id='지울놈';

실수로 중간에 where절 전에 ';'이 들어갔다..

member자료 모두 날라감.. 흑.. --;
mysql은 rollback안됨.. 백업서버도 없음..
그날 땀으로 목욕을 했었다..

DiNe의 이미지

동지!~~~~~~ T_T

그렇게 잃어버린 데이터를 조인하는 다른 테이블에서 Primary Key 가져오고, 비밀번호는 사용자가 로그인하려고 입력하면 그 데이터를 다시 저장해버리는 사기로 해결했었죠. -_-; 다행히 사용자가 몇 아닐때라서.. ;;

iron의 이미지

http://database.sarang.net/database/mysql/tuning/optimize_mysql.html

에 있는 글입니다.

MySQL monitor 에서 UPDATE 나 DELETE를 사용하면서 WHERE 절을 생략하는 일. 만약 자신이 이런 경향이 있다면, mysql 클라이언트 프로그램을 실행할 때 --i-am-a-dummy 옵션을 추가하기 바란다.

진짜 있는 옵션이에요. --;

익명 사용자의 이미지

정말이네요...

winchild의 이미지

제3탄... 몇탄까지 갈런지는 저도 모릅니당.

예전에 TURBO-C 로 통신프로그램을 열쉬미 짜던때가 있었습니다. 여기에 있는 사람들 대개가 그렇지만 어디 집중해서 일을 하게 되면 꼼짝도 안하고 일을 하지요.

그러다 보니 점심먹구 시작해서 오후 3시가 다되도록 프로그램을 짜고 있는데 (중간에 컴파일 한번 하지 않았음...)

"팍!....." (정전! T.T)

어? 저장은 했나?
그런데 금방 전기가 들어와서 확인해 보니... 으악...
1시부터 3시까지 작업한거 말짱 도루묵.... 으으으...

할쑤없지... 운명이지뭐...

이러케 생각하고 기억을 열쉬미 되살려서 (그때만 해도 쌩쌩했으니깐...) 1시간만에 거의다 복구 (와! 능력좋고...)

"팍!....." (정전! T.T)

윽!.... 아직 저장안했는데...
그날은 일 때려치고 일찍 집으로 가버렸습니다.

- 겨울아찌 -

- 겨울아찌 -
winchild@gmail.com

ssoo76의 이미지

int iRet = any_function(); // 반환값이 0이면 성공

if(iRet = 0)
{
// 와 성공했다.
}
else
{
// 으흐 에러 났다.
}

이렇게 해놓고 에러가 없는 걸 확인하고
역쉬 난 고급 프로그래머야 하며 자화자찬하다
나중에 혼자서 소스 검토하다 오류 발견하고 아무도 몰래 수정할때.....

세상은 하나..........

익명 사용자의 이미지

저도 그런 실수를 자주 했었는데요... 아예 코딩 습관을 바꿨습니다....

if (0 == iRet)

이런식으로요... == 대신 =로 쓰면 바로 에러가 발생한다는... ^^;

익명 사용자의 이미지

보통 에러가 안나죠..

그래서 더 찾기 힘들고 == 비교 하는 type이 보통 같기 때문에

= 로 실수로 놔두어도 에러가 안납니다..

그래서 져도 여러번 실수를 해따는

익명 사용자의 이미지

쓰고 보니 (상수 = 변수) 로 바꿨다는 얘기시네요..

헤헤 나도 그 이후론 그렇게 바꿨습니다..

^^

익명 사용자의 이미지

자바에서는 아예 if(변수 = 상수) 형태를 쓸 수 없죠.

얼마나 많은 사람들이 이것때문에 고민을 했을지 짐작이 갑니다. :)

godyang_의 이미지

rm하니깐 생각나는게 있는데...

source.c를 컴파일해야 하는데, a.out이라는 파일이
보기 싫어서 -o옵션으로 생성 파일을 잡아줄려고
탭키를 눌렀습니다.

gcc -o sou[Tab] sou[Tab] [Enter]

앗차 싶을 때는 이미 늦었습니다.

익명 사용자의 이미지

make source 를 치시면,
source.c 화일에서 확장자가 없는 실행화일 source 화일이 만들어 집니다.

익명 사용자의 이미지

뼈저리게 공감합니다

익명 사용자의 이미지

$query = "!#@%#%$&$%^&";
$result = mysql_query($query);
echo("에라");
exit;
}

Oooooooooooooooooooooooooooooooops

익명 사용자의 이미지

황당 !! 두~둥..

#inlcude main()
{
code..

printf("ECHO"); <- 이 세미콜론이 저저젖 뒤에.. ;여기에 하나 더 @ㅡ,.-;
}

익명 사용자의 이미지

쓰레드때문에 자기가 국책연구기관 출신이라고

뻐기고 다니는 매니저가 자꾸 시비를 걸 때...

익명 사용자의 이미지

열심히 코딩하고 저장하고 ..
컴파일 하고 있는데 ..
winDOG$가 다운되더군요 .. -_-

재부팅하고 보니 ..
소스 절반이 잘려나갔더라는 .. -_-;
으 망할 M$ .. -_-+ 했었죠 .. -_-

익명 사용자의 이미지

그런 일 몇 번 겪고 나서 저는 winDog$s나 linux에서나 무조건 VI만 쓰죠...
swap file은 절대 남게 되니까...

익명 사용자의 이미지

맨날 vi만 쓰고 있는데...
누가 소스 좀 봐달라고 해서 달려 가서는...
UEdit열려 있는데...

열심히.....
kkkjjjhhlll...
그 다음 삽집은 계속되죠..
uuuuuu
우쉬....

익명 사용자의 이미지

저도 vi로만 계속 작업하다 보니 비슷한 실수를 많이해요.

비쥬얼 c++ 에서조차...

jjjjjjkkkklllll <--- 이런건 기본이고..

문서 편집을 마치고 ESC를 항상 누르는가 하면..

어쩔땐 ..

ESC
:wq
make

이 3단 콤보까지 들어갈때도 있어요.

써놓고 보면 좀 황당하죠. -_-

익명 사용자의 이미지

흠냐...

본이 아니게 이 언어 저 언어 왔다 갔다 하면서

코딩하다 보면 젤루 헷갈리는게

저한테는 else if 구문입니다..

어떤 언어는

else if

어떤 언어는

elseif

아님 둘다..

어떤 경우는

elif, elsif 등등...

예전에 맡았던 프로젝트... 갑의 요구사항이

코드에 있는 모든 반복 구문은 for 구문으로,

선택 구문은 if, else if, else 로 해 달라는 거였슴다..

그 결과 지금은 Case 구문이나 while, until 구문 쓰다보면

제 자신을 믿지 못하고.... 결국 if-elseif-else..

for 구문으로 바꾸고 맙니다....

Oracle 9i 공부하고 있는데.....

CASE 구문 쓸려니 영 헷갈리네요....

익명 사용자의 이미지

ㅋㅋㅋㅋ

http://inempire.com ㅋㅋㅋㅋㅋ 그때 죽는줄 알았죠

익명 사용자의 이미지

얼마전의 이야기 입니다만은..

1 #include
2 int main()
3
4 {
5 char a[10][10];
6 char p[10];
7
8 strcpy(p,"abc");
9 a[0]=p;
10 printf("%s\n",a[0]);
11 }
12

a가 상수라서 a[0]=p라는 문법이 틀릿것이 확실한데..
g++에서.. 컴파일이 되어 버렸을때...
옅에 사람이 이상한 눈빛으로 ..바라보았습니다^^
(제가 에러난다고..빡빡~~했는데..);

실험해 본 결과 ..
test.cc
test.c
중에 cc로 된건 컴파일이 되고..
c로 된 건 에러가 났습니다.흑...
그래서 Visual C++ 로 해 보았는데..
역시 에러가 뜨더군요..
이런... g++ 만 해당하는 코드가 있다니..
혹시 컴파일러 컴파일할때 option이 들어가는 건가?..
흠..햐여간.. 이상한 현상입니다.

knight2000_의 이미지

32비트 유닉스 계열에서는 포인터를 32비트 정수(int 또는 long)으로 캐스트 없이 할당하는 경우가 있습니다.
지금은 경고나 에러로 처리한다고 알고 있습니다.

knight2000_의 이미지

악! ...
포인터 문제가 아니었네요.
첫문자 할당 문제였네요.
죄송...
아무튼 이것도 유닉스 계열에서 있었던 현상입니다.

익명 사용자의 이미지

한동안 자바만 하다가.. 다시 C를 하려 했을 때...

파일 관련 함수를 짜고 있었져..

File *fp=fopen(...) 해서 fprintf 로 쉽게 쉽게~~

다 잘하고 마지막에

fp.close();

-_-;;

자바 하다 이중 포인터 한참을 안쓰니

int main(int argn, char *args[]) 에서

[]이게 먼전지 * 이제 먼전지 기억이 안나서

한참 찍어 보고 알았다는.. -_-;;;

그리고 저는 리넉 vi 로 자바코딩을 했었는데..
method 써 놓고 그 위에 커서 올리고
계속 Shift-K 를 눌러댔져 -_- 돔말 보려구

익명 사용자의 이미지

푸하학 -_- 제가 써놓고 보니 -_-;;;;;
File 이 아니라 FILE 맞져 ?-_-?

아닌가 -_- 으악 이런것마저 헛갈린다니 ㅠ.ㅠ

참고로 자바의 클래스 파일들은 대개 제일 앞자만 대문자입니다요 ㅠ.ㅠ

익명 사용자의 이미지

공감 -.-+

익명 사용자의 이미지

스트링문제.

가끔 PHP에서 배열로 처리를 할 때

$ary[i][k]

(i와 k는 변수)

이런 실수를 하는데 이런식으로 해놓으면

프로그램이 별로 길지 않아도 다른데서

버그를 찾게됩니다.

또는 for 문에서

for(i=0 ; i<10 ; i++)

이런식으로 스트링을 빼먹는다든지...

눈에 익숙한 탓에 잘 안보입니다.

Renn의 이미지

친구녀석 PHP 문제 해결해 주다가 발견한...

---------------------
$connect = mysql_connect("xx.xx.xx.xx", "username", "$dfjasd");
---------------------

과연, $로 시작되는 패스워드는 조심해야 겠죠?
(싱글쿼터로 치면 상관없겠지만 말입니다)

그리고, -_-;
제가 자주 겪는 문제는... C에서 정수 a를 1감소 시키기...

--------------------
--a;
--------------------

위의 저게 왜 이모티콘으로 보일까요?
자주 지웁니다. -_-;

익명 사용자의 이미지

변수명을 의미있게 쓰는 습관을 하면 다 해결이 될텐데... ^^;;

--a; ====> --test;

이모티콘으로 보이지 않지요...

저는 바쁠때는 변수명, 함수명으로 주석을 대신하곤합니다.

익명 사용자의 이미지

전 --a 대신 a-- 형식을 즐겨 쓰는데...

문장 끝에 있거나 하면 --; 처럼 보이죠. :)

스카리의 이미지

a-- 혹은 a++ 과
--a 혹은 ++b 는 서로 다른거랍니다. ^^;

아시면서 괜히 그러신다;;

익명 사용자의 이미지

a-- 멋적어 하는 표정....
a++ 멋적다가 못해 맛간표정...

다른긴 다르죠....

익명 사용자의 이미지

단일구문은 상관없눈뎅..그얘기들하시는거 아닌감..?
--a;
ㅋㅋ//

익명 사용자의 이미지

스카리 wrote...
> a-- 혹은 a++ 과
> --a 혹은 ++b 는 서로 다른거랍니다. ^^;
>
> 아시면서 괜히 그러신다;;

단독으로 쓰이면 같은 기능을 합니다.

익명 사용자의 이미지

어느 하나를 써야 할 때는 필요한 것을 쓰는거고, 그렇지 않을 때는 습관 내지 취향의 문제 아닐까요. (설마 둘의 차이를 모르는 사람이 있겠습니까.)

하여튼 한번 프로그램 짜고 나면 iSum--; 같은 것이 자주 눈에 띄이는군요.

익명 사용자의 이미지

한 2년 쯤 전인가? 모 닷컴 기업에 놀러가서 Source를 백업 받을 일이 있었습니다. 시간도 별로 없구 해서 그냥 몽땅 java 파일을 복사할려구 나름대로 뚝딱뚝딱 Shell script을 돌렸습니다.

find . -name "*.java" -exec cp /tmp/gyver800 {} \;

그리고 돌렸더니 허거덕... 완전히 java파일이 모두 directory로 변해 있던 것이었습니다.
근데 요즘엔 cp 명령에서 아예 걸러서 Directory를 file로 copy는 안되네여...
암튼 그 때 CVS 아니었으면 남의 회사 말아 먹을 뻔 했습니다.

익명 사용자의 이미지

글을 읽어보니 c를 많이 하시는가 보네요..
저는 지금 델파이 하고 있는데.
저 같은 경우는 혼자서 아무리 해도 안되길래
고수님 초빙해서 이러이러한 상황에서 이런게 안됩니
다~라고 하는 순간 될때.
또 그 담부터는 잘 될때.
꼭 귀신에 홀린것 같더군요... 거기에만 넘 신경을
써서 그런 현상이 생기는지..
그 담엔 잘 안풀릴땐 나가서 담배두대 피고 옵니다.

그담은 sql파일이 서버에 있고 sql파일 형식이 있어서
다른 파일 열어놓고 작업하고선 save as안하고 그냥 ctrl-s 누를때.

ihavnoid의 이미지

#define ISBETWEEN(x,y,z,w) ((x)+(y)>(z)+(w) .......);
끝에 세미콜론에 주목... 생각하면 끔찍합니다...
그다음부터는 매크로로 함수를 구현하는 짓은 안하게 되었답니다.. ㅡㅡ;;

그 외에는 생각나면... ^^

Consider the ravens: for they neither sow nor reap; which neither have storehouse nor barn; and God feedeth them: how much more are ye better than the fowls?
Luke 12:24

익명 사용자의 이미지

전 프로그래머는아니지만 그냥 옛날에 프로그램 해보다가 황당했던 경우 두가지 이야기 할께요.

하나는 도스시절에 turbo-c2.0(맞나?)으로 열심히 이것저것 해보고 있는데 진짜 hello world같이 심플한걸 짜놓고 코트롤F9(아마 이게 컴파일+실행이였던거 같은데)를 눌렀는데 에러가 나는것이였습니다. 문법에러였나 그런거였는데 그 문제가 났다는 해당줄을 암만 눈씻고 찾아봐도 그런 에러는 없었습니다. 그래서 짜증이 나기 시작했습니다. 너무 간단해서 에러고 뭐시고 할것도 없는데.. 하면서... 그렇게 씩씩거리고 있다가 화면의 아래쪽에 가로 바가 쪼매해져있는것을 발견했습니다. 뭐고 싶어서 오른족으로 쭉 긁었습니다. 그랬더니 그 라인의 맨 끝에 *이게 있었습니다. 왜 있었는지는 몰겠습니다. 냠.

두번째 이야기는 그냥 그런 이야긴데. 학교에서 교양으로 C수업을 듣는데 제가 컴맹친구를 한명 꼬셔서 같이 들었드랬습니다. 역시 너무나 힘들거 했습니다. --; 저는 갈켜주기로 해놓고 잘 안갈켜줬습니다. 미안했지만.. 저도 바쁜걸 어떻게 합니다. 그럭저럭하여 학기말시험을 칠때가 다가 왔습니다. 문제는 대충 쉬웠습니다. 아마 선생님께서도 이번 강의의 목표를 프로그래밍이 어떤거다 정도로만 하실거 같았습니다.
문제는 객관식 문제로 포인터랑 구조체 이런거 복잡게 헤갈리게 써놓고 다음중 같은 의미는 지시하는게 똑같은거는 이런문제들이랑 직접 짜보는 주관식으로 구구단 1단부터 9단까지 출력하는거였습니다. 저는 그렇다치고 그 친구가 걱정이 되었습니다. 객관식이야 그냥 달달외우고 공부하는 식으로 맞출수 있었다 쳐다 개념(?)이 없는 상태에서 저거 할수 있을까 했씁니다. 근데 그친구는 자신의 방법으로 가볍게 해치웠씁니다.
81줄의 printf문을 이용하여 깔끔하게 해치웠습니다.^^
아마 어떤 주관식 문제가 나왔더라도 그 친구는 저 방법으로 가뿐하게 해치웠지 않을까 합니다.
(구구단이길 다행이지 1부터 1000까지 출력하는 거면 어떻게 했을지 몰라....)

똥꼬의 이미지

하하하.. 정말 재밋군요.

지금은 소프트웨어 프로그래머이지만.. 전공은 전자입니다.

대학때.. VHDL이란.. 하드웨어 언어로 회로망 합성이란 과목을 들을때..

교수님이 그와 같은 문제를 풀 칩을 구워오라고 했습니다

1부터 81 까지 곱셉은 아니구.. 더 난해한 ^^

한자리 숫자의 곱셉연산을 처리 할 칩을 구워오라는...

과에서 정말 .. 매서운 눈초리의 ( 하지만,,학점은 --; ) 후배녀석이 그 숙제에 A를

받았습니다 ^^...

왜 그런지 아시죠?

1 부터 9 까지의 경우의 수로 모든 수의 곱의 결과를 이진수로 넣어버린..--;

장학금이 뭔지...( 당연 그 친구는 장학금 못받았을 겁니다 )

open source의 그날까지!

white23의 이미지

푸하하핫~~~

두번째 얘기는 유머란에 올려도 상관이 없을거 같네요...^^

어떠한 역경에도 굴하지 않는 '하양 지훈' - It's Now or Never!!!

익명 사용자의 이미지

지난 여름에 놀고있던 홈페이지 무료계정에 제 개인홈을 만들까 하고 작업을 했었더랍니다.

DB를 쓰지않는 파일기반의 PHP 게시판 만드는 것 부터 시작했습니다. 속도와 확장성을 고려해 나름대로 정성껏 설계해서 그 홈페이지에 생기는 모든 게시물과 기사를 그것으로 인해 관리되게... 여타 게시판 못지않은(그 이상의 기능이 있는) 나만의 게시판 만들기를 일주일동안 여러날 새가며 열심히 작업해서 거의 완성할 무렵이었습니다.
텔넷 접속이 안되길래 서비스 홈페이지 공지를 보니 제 아이디가 계정 삭제자 명단에 끼어있더군요.
물론 3일의 기한을 주었지만 제가 확인했을땐 그 후였습니다. ㅜ.ㅜ

계정삭제 이유도 적혀있지 않아 제 생각에 확장된 회원 프로필이 비워져 있어 그런가 싶어 관리자에게 이를 포함한 문의메일을 욕나오려 하는거 참아가며 정중한 어체로 적어 보냈지만 그 이유도 명확히 답해주지 않고 위로와 함께 책임을 제게 떠넘기는 식의 답신이 오더군요.
프로필 때문이라면 바로 그 프로필에 적혀있던 메일 주소로 회원 프로필이 확장됐을때나 계정 삭제때 메일 한통이라도 보내줬어야 하는게 뻔한 이치일텐데...

암튼 그때 전후로 무료계정 회원들 몇천명이 일괄 삭제 되던군요. 메인 페이지엔 새로 생긴 유료계정 상품을 대문짝 만하게 광고하면서... 지금 접속하려 해보니 그회사 없어졌나봅니다.

익명 사용자의 이미지

인터피아말씀이신가보네요

익명 사용자의 이미지

겨울아찌님... 요즘 여기저기서 많이 뵙네요.

저두 황당했던거 하나.
어떤 컴파일러들은 헤더파일의 마지막 라인에 개행문자가 들어있지 않을 경우
프리프로세서가 요상한 동작을 하더군요.
컴파일시에 무지막지한 에러들이 떨어지는데...
문제는 에러의 위치가 그 헤더파일이 아니라 헤더를 include한 C파일로 나온다는 거죠.
소스를 아무리 들여다 봐도 잘못된 부분은 찾을수가 없고..
한 3일정도 삽질한 경험이 있는데... 환장하겠더군요.

winchild의 이미지

아마 오라클 proc 도 그렇지요?
빨랑빨랑 끝내고 우리 놉시다... 흐흐...
tux 터치스크린이 넘 맘에 듭니다.

- 겨울아지 -

- 겨울아찌 -
winchild@gmail.com

winchild의 이미지

계속해서 올려드린다구 했으니깐... 2탄...

프로그래머를 하는 사람중에는 성격으로 봐서 보통 2가지 타입인거 같습니다. 문제에 봉착하면 이사람 저사람 붙잡고 이야기를 하면서 토론을 벌여서 문제를 해결하는 사람과 몇날 몇일을 모니터가 뚜러지도록 쳐다보변서 해결하는 사람.

물론 성격차 이기는 하겠지만 아무래도 전자가 났겟지여? 쿠쿠...

저는 전자에 속합니다. 문제에 봉착하면 적어도 1시간이내에 주변에 사람이 없으면 친구에게 전화를 걸어서라도 주저리주저리 설명을 하면서 도움을 구합니다. 근데 재미있는것은 80% 정도가 주저리주저리 설명을 하는 도중에 문제점을 발견합니다.

그러면 보통 요렇게 되죠..

"주저리... 주저리... 어! 아! 알았다... 됐다 됐어!"

그러면 상대편은 정말로 "황당...." 몇번 반복하니 그다음부터는 상대편도 "그래 잘해봐..." 하지만...
꽤 오랫동안 같이 회사를 전전하면서 같이 일하던 파트너가 있었습니다. 저는 성격상으로 전자, 그 친구는 후자에 속했습니다.

어느날 바쁜일 끝내놓고 띵가띵가 하고 있다보니 그 파트너의 표정이 눈에 들어오더군요. 근데 상당히 고심하는 듯한 얼굴 표정... 심심하니깐... ㅋㅋㅋㅋ

나: "뭐야? 왜 그렇게 심각하게 하고 있어?"
너: "음.... " (이 친구 남에게 고민을 잘 이야기 하지 않는 넘입니다.)
나: "뭐냐니깐?" (거의 쳐들어 가는 수준...)
너: "이게... 프로그램을 짰는데 어떤경우에 실행시키면 core 덤프가 떨어져 버린다."
나: "어딘데?"

프로그램을 보여주는것을 보니... 파일을 읽어서 화면에 출력하는 프로그램인데 소스는 이랬습니다.

fp=fopen("xxx","r");
....
while (fgets (buffer, sizeof(buffer), fp))
{
....
printf (buffer);
....
}

등등... 근데 core 덤프가 떨어지는 위치가 printf 부분이라는 것이었습니다.

나: "그래? 프로그램은 이상할것 없는거 같은데..."
너: "이 문제를 해겱하지 못해서 3일째 헤메고 있다...어휴..."
나: "그래? 무슨 파일을 읽어서 출력시켰는데.."
너: "이거..."
나: "응????"

멀거니 쳐다보다가 완전히 혼자서 요절복통 해버렸습니다. 그 친구는 멀뚱멀뚱...
그 친구가 보여준 파일은 C 프로그램 소오스 였습니다. 샘플파일로 프로그램 소스를 출력하도록
했던것 이지요.

그런데 샘플파일에는 printf 문장이 포함되어 있었습니다.
이해가 가시나요? 안가신다구요?

샘플파일에 포함된 printf 은 "printf ("%s, %d, ....", a, b,c...);"
요렇게 되어 있었지요. 이 부분을 buffer 로 넣어서 printf 함수를 호출했으니 buffer 의 "%s..." 부분이 printf 로서는 동적 포매팅으로 인식하고 인수를 읽으려고 했겠지요. 그러다 보니 core dump....

설명해주자 그 친구는 땅을 치고.... 거의 절규수준.... 하긴 3일을 고심했다니...
그날 저녁 맛있는 거나한 삼겹살과 술한잔 얻어 먹을수 있었지요.
문제의 프로그램은 fwrite (stdout, buffer, strlen(buffer)); 로 교체 되었습니다.

- 겨울아찌 -

- 겨울아찌 -
winchild@gmail.com

bookworm_의 이미지

보안에 신경써서 프로그래밍 하셨으면, 그런 일은 안 당하셨을 것 같은데...... :-)

Bookworm

ssoo76의 이미지

크크...

printf("%s", buffer);

이게 원래 정석 아닌가?

역쉬 비슷한 일을 하는 사람들이라 그런지 재밌는 내용이 많네여...

세상은 하나..........

익명 사용자의 이미지

어떤 분은 컴퓨터 옆에 인형을 하나 둔다고 하시더군요.. :)

막히면 차근차근 인형에게 설명한답니다. 아니면 지나가던 프로그래밍을 전혀 모르는 직원을 붙잡아 놓고 설명을 한다던지..^^;

익명 사용자의 이미지

앗!!

겨울아이님 잘 지내시는지...
전 겨울아이님의 숨은 qmail 제자 랍니다-_-;;

푸푸...그런 일이 일어나는게 가능하군요 ^^;

웁-_-스~ 저두 후자쪽인데...

점점 전자쪽으로 바뀌어 가는듯...

익명 사용자의 이미지

하하...정말 재밌는 글이 많군요^^

전 여기 있는 글들을 보면서

'제가 앞으로 낼 버그'들을 예상하고 있답니다

많은 분들의 삽질경험을 토대로...-_-

보통 여기 올라오는 버그덜은 증말 -_-
뭐라고 불러야 할까요..음음..

미스테리 버그.( 직면한 상황에선 )
노 버그-_-;;

저두 요즘 작업할때 C랑 PHP랑 오가는 데...
증말 피곤합니다.

돌아가는 환경이 틀리니-_-;;;

그런데 C 랑 PHP랑 java랑 동시에 작업을 하니
각 언어의 차이점...

뭐랄까 그 차이점을 보면서 배우는게 많아 지더
군요.
배우는 걸 느낄 때마다 정말 즐겁네용...

빨리 시야가 넓어져야 할텐데...

익명 사용자의 이미지

아랫글에 덧붙여서 이런실수도 많이 합니다.

<?
fp=$fopne();
?>

머하는 짓인지...휴~~

익명 사용자의 이미지

gcc main.c -o main.c

익명 사용자의 이미지

비슷한 경우를 본적은 있습니다. 회사의 후배놈이 프로그램을 만들었는데,
디렉터리의 파일을 읽어서, 파일의 내용으로 어쩌구저쩌구하는 것이었죠.

항상, 파일의 이름이 정해진 자리수 + 확장자로 되어 있을 거니까, 안그럴경우는
그냥 그 파일을 삭제하도록 만들었다더군요. -.-; 짐작이 가시나요?

잘 코딩하고서, 컴파일, 에러수정, 컴파일..... 실행!! 하니까,
소스부터, 실행바이너리까지 싹 지워졌더군요.

그날 그놈의 절규는 아직 잊을 수가 없습니다.

익명 사용자의 이미지

오옷... 이글을 보니 예전의 악몽이....

그게 리눅스에서 미드나잇 커맨더 비슷한 프로그래을 짜고 있었는데...

그때는 아직 초보라..(지금도 허접하지만..-_-;)

rm -R 의 기능을 구현하는게 쉽진 않더군요...

마침내 구현을하고.. 시험적으로 디렉토리를 지우는 순간....

홈디렉토리가 몽땅 날라갔다는...T.T

익명 사용자의 이미지

Oh! My GOD........X됐군....

익명 사용자의 이미지

동감합니다. gcc main.c -o main.c

이 일로 이틀밤샌게 순식간에 날아갔었는데....ㅜ.ㅜ

그 때 생각을하면...

익명 사용자의 이미지

하하하...글들을 쭉 읽어봤는데

재미있는 일들이 아주 많으셨군요...^^

php를 하다보니 자바스크립트를 자주 만지게 되더라구요.

그래서 이런 실수를 많이 합니다.

<script>
$a=document.myform.name.value;
alert ('$a');
</script>

쩝....이것이 머하는 짓인지..쩝...

익명 사용자의 이미지

C언어를 처음 배울때

for(count = 0; count < 1000; count++);
{
k = k + 1;
}

음냐 죽을 맛이었습니다.

익명 사용자의 이미지

저와 비슷하시군여....

for (a=0;a<1000;a++)
{
for(b=0;b<1000;a++)
{ "이건 분명히 1000000번이 실행될거야..."}
}

익명 사용자의 이미지

몇만라인 짜리를 몇달을 밤 새가면서 모든 모듈을 손수 노가다로 다 만들어 놓고...

버그 잡아가면서.. 다 만들었는데...

실행하니 받아주는 서버들이 과부하로 맛탱이가 갈때..

익명 사용자의 이미지

extern int someVariable = 0;
~~~~~

extern 변수에 초기화하기.... -_-;

익명 사용자의 이미지

그건 컴파일 에러 아닌가요?
컴파일 에러는 그래도 아주 양호한 에러 잖아요..

익명 사용자의 이미지

라인수로는.. 5만정도 되는거였습니다.

익명 사용자의 이미지

실수.. 저 밑에 답장을 한다는게.. ^^;

익명 사용자의 이미지

아주 따끈따끈하게 몇시간 전에 제가 저지른 일입니다.
담당하는 분이 휴가를 가서 제가 그 일을 맡고 있었습니다.
근데 그 분이 휴가가면서 테스트를 안하고 가는 바람에
버그가있는 소스가 실행되고 있는 것이었습니다.
제가 고쳐야 하기 때문에 계정을 얻어서 소스가 있는 곳으로
들어갔습니다. 들어가서 소스를 뒤적거리면서 버그가
있는 소스를 확인한 순간..제 손가락이란 놈이 지멋대로
rm 화일이름 <엔터>
를 쳐버리는 것이었습니다 -_-;
그때의 황당함은 이루 말할수가 없었습니다.

그래도 쉬운 소스라서 대충 다른 소스 구조랑 비슷해서
이차여차 하니까 쉽게 해결은 되었습니다.

rm을 친후의 그 황당함이란 제 손가락은 가끔
뇌와 다른 자아를 같고 있는것 같습니다.
손가락에 입을 달아주면 아주 재미있을것 같은데..

아무튼.. ^^;
rm은 정말 조심해야 합니다 rm -i 로 alias 걸어놓고
백업도 생활화 하고. cvs같은 툴로 관리하고.. 버그잡는
것보다 관리가 더 중요한것 같습니다.

까비_의 이미지

alias rm='rm -i'를 아무리 해논들,

손가락은 rm -fr을 치고있는데 무슨수로 당합니다.

에휴우... ㅠ_ㅠ

^^;

--
ㄲ ㅏ ㅂ ㅣ T o D y

ㄲ ㅏ ㅂ ㅣ T o D y

익명 사용자의 이미지

저도 rm 자주 써 먹어요...
프로그램 통째로 새로 짠 적도 있답니다. ㅠ.ㅠ

익명 사용자의 이미지

요구사항이 수시로 바뀔때... -_-

익명 사용자의 이미지

아주 기본적인 웹채팅 프로그램요구를 받아서...

그래도 서버 짜 넣고 DHTML로 열심히 잘 만들어 주니...

검수 시점에는 결국 say랑 비교를 하더군요...

XXXXXX

익명 사용자의 이미지

컴터 잡지에 등장한 온갖 현란한 키워드로 도배한 제안서 들고와서

없는 인력 가지고 검증도 안 되고 생산성도 떨어지는 기술로

제안서에 짜맞춰 가며 프로젝트 진행할 때.

말이 너무 길었나여?

-_-;

익명 사용자의 이미지

마자여~ 마자~

것 만큼 짜증스러운 일도 없져.

근데 너무나 자주 일어나져.

익명 사용자의 이미지

아주 간단한 모듈을 짜더라도..

한번에 에러없이 컴파일되면

그렇게 황당할 수가 없습니다.

분명히 잘못된 곳이 있을텐데.어디서 어떻게 잡아야할지

막막해지거든요..T.T..

(지금껏 50줄 이상되는 루틴들이 수십번 정도는 에러없이
컴파일되었었지만 그 중에서 정말 문제가 없었던 모듈은
한 개도 없었던듯)

yootiong의 이미지

저도 한 번 경험해 보았습니다 -.-;;

평소에는 20줄만 되는 프로그램을 짜도 에러가 주르룩 뜨는 데..

3달전인가?

200줄이 넘는 프로그램을 짰는 데 단 한번에 컴파일이 되고 실행도 완벽하게 되더군요.

그 때의 황당함이란... -_-;;

그 이후 잠시동안 약간의 자만심 갖긴 했지만 그런 일이 다시는 일어나지 않더군요 -_-;;

--
나는 언제나 하이파이브에 목마르다.( 유수영, 2002 )

익명 사용자의 이미지

하나 더 생각났는데..

버그를 수정한답시고 서너군데 고치다가 괄호를 하나 빼먹는 경우가 있습니다.

요즘엔 주석처리를 막고 풀면서 그런 부분을 찾거나 하는데 옛날에 그걸 몰랐을 때는

정말 그 부분을 새로 짰었던 적도 있습니다.

조성호의 이미지

저는 에러는 많이 신경쓰지 않는데 조금 중요하다 싶은 경우에는 쬐끔 신경을 쓰죠.
혼자 서버 프로그램을 작성할 때 생긴 에러인데 원인이 없더군요.
계속 core만 생기고 원인은 없고... ==;
가끔가다가 생기는 에러라 무엇이 원인인지도 파악도 못했었는데 나중에 찾았죠.
우연히... ^^;
원인이 strcpy()에 있더군요. 표준 함수라서 믿고 있었는데 배신을 땡기다니...
이유는 src의 마지막이 NULL이 아닐 때 발생을 하더군요. 그래서 꼭 src는 1바이트를
더 넣어주는 습관이 생겨버렸다는... ^^;

한참 후에 다른곳에서 프로그램을 작성하는데 같이 일하는 사람이 이상하다고 봐달라고
하더군요. 그사람이 실력이 꽤 좋은데...
프로그램은 간단하게 메시지를 만들어서 다른 컴퓨터에 전달하는 프로그램인데 이놈이
보낼 때 이상하게 앞부분만 보내더군요. 헉~ 이상하다...
한참을 소스를 가지고 지지고 볶고 했었는데... 이런... '\'를 잘못써서 그런 경우가
발생을 하더군요. sprintf에서 '\'를 집어 넣을 때는 '\\' 해주어야 하는데 그냥 '\'를
해놔서... ^^;
결국에 저녁에 소주한잔 얻어먹었죠.

또있는데... 크크...(원래 일을 잘 못해서 버그를 많이 발생시키죠.)
이것도 다른 사람이 작성한 프로그램이였는데 문제는 네트워크를 할때 디버깅할때는
잘 되는데 일반 모드로 바꾸면 이상하게 메시지가 안간다는 황당한 문제였죠.
(이건 Windows나 LINUX모두 그렇지만...)
저두 이것 저것 해봤는데 모르겠더군요. 그런데 그 분이 말하는게 디버깅하려고
'printf()를 넣으면 잘되는데...' 거기서 힌트를 얻었죠.
'그럼 send를 하고나서 fflush (stdout);을 넣어봐요.'
결과는 잘간다고 하더군요.
이유는 조금만 찾아보면 나오니까... ^^;

더있으면 적을려구 했는데 기억나는게 없네요. 흐~ 하여간 머리도 나쁘면서 프로그램
짤려니 힘드네요. ^^;

익명 사용자의 이미지

ㅎㅎ

쪽팔려서 이야기 못했는데..

요기서는 해두 될거 같네요..^^;;

PHP시작한지 꽤됏는데두.. 한참 에러를 찾은 적이있습니다.


<?
include "./dbconn.inc";

$que = "select * from member";

$result = mysql_result($que);

?>

자꾸 에러가 나는 것이없습니다.

한 2시간 찾아 해멧줘..

알고보니.. mysql_query함수를 잘못적어서.. ㅋㅋㅋ

익명 사용자의 이미지

주제완 상관 없지만...
별다른 이유 없이 inc 확장자는 쓰는건 삼가합시다.
어차피 PHP 소스코드니 php 확장자 쓰시길...

익명 사용자의 이미지

어차피 확장자는 중요한게 아닌거 아닌가요.

.inc든 .include든...

.php든...

익명 사용자의 이미지

.inc 하면 웹 브라우저에서 그냥 소스 보이거든요..

익명 사용자의 이미지

아파치에서 설정해주면 상관없습니다.

익명 사용자의 이미지

더불어 .inc 파일은 웹브라우져로 접근을 못 하도록(.ht로 시작하는 파일은
접근 못 하게 하는 설정이 기본으로 들어있으니 배끼면 됩니다) 세팅해
주는 것도 좋죠.

__
SOrCErEr

페이지

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.